Dansk Elektronik Forum

Generel Elektronik => Digitalteknik => Programmering => Emne startet af: Danni-Hansen efter December 09, 2013, 14:38:46

Titel: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter December 09, 2013, 14:38:46
Hej folkens.

Setup er rigtigt, og det er koden der laver ballade, flg. Er kode start til LED driver projektet, som senere skal styres.

Kode:
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include "DHT.h"

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
DHT dht;

void setup()
{
  lcd.init();                      // initialize the lcd
  lcd.backlight();
  dht.setup(8); // data pin 2
}

void loop()
{
  delay(dht.getMinimumSamplingPeriod());
  float temperature = dht.getTemperature();
  lcd.print("temp");
  lcd.print(temperature);
 
  delay(2500);
  lcd.clear();
}
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: bws efter December 09, 2013, 18:48:27
hey

hvad er problemmet når du eksekvere ? og hvad er den her DHT klasse ?

gætter på det er til en arduino ?

MVH
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter December 09, 2013, 19:02:20
På LCD displayet som køres af 4 pins (5v og GND, samt A4 og A5 på arduino UNO) til et i2c board, som styre LCD'et, viser det sig som et tegn jeg ikke engang aner hvad er.

Den skriver:
Temperature*nan

* er erstattelsen for tegnet som jeg ikke kan gengive.
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter December 09, 2013, 19:40:15
Kode:
 delay(dht.getMinimumSamplingPeriod());
  float temperature = dht.getTemperature();
  lcd.print("temp");
  lcd.print(temperature);
Skriver de to 'lcd.print' ikke bare oven i hindanden??

måske du mangler linieskift, fordi den laver overflow på linien!?? kun et gæt!
Kode:
lcd.begin(1, 2);
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter December 09, 2013, 20:55:39
Hej Jesper.

Koden ser (efter dit forslag) sådan her ud:
Kode:
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include "DHT.h"

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
DHT dht;

void setup()
{
  lcd.init();                      // initialize the lcd
  lcd.backlight();
  dht.setup(8); // data pin 2
}

void loop()
{
  delay(dht.getMinimumSamplingPeriod());
  float temperature = dht.getTemperature();
  lcd.print("temp");
  lcd.begin(1, 2);
  lcd.print(temperature);
 
  delay(2500);
  lcd.clear();
}

Og viser så det hele på samme linje, dog som opdatering, hvis man kan sige det sådan..?
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter December 09, 2013, 21:06:58
hmm... har ikke rodet med LiquidCrystal_I2C, har du prøvet at lave andre sketchs? for at se om det er i I2C-delen den fejler!?
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter December 09, 2013, 22:56:24
Vidste sig at jeg havde glemt noget så basalt som at connecte DHT11 måleren til GND, så den gav 'bare op'...

Nu står jeg så bare med en knap der ikke virker, og denne gang har jeg gået det igennem flere gange, ser mig fuldstændig blind.

Når jeg trykker på knappen der er sat til Pin 4, så skal den vise temperaturen i displayet, som virker nu, den viser dog ikke en brik..

Kode:
  #include <Wire.h> 
  #include <LiquidCrystal_I2C.h>
  #include "DHT.h"
 
  LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
  DHT dht;
 
  int buttonPin = 4;
 
  void setup()
  {
    lcd.init();                      // initialize the lcd
    lcd.backlight();
    dht.setup(8); // data pin 2
    pinMode(buttonPin, INPUT);
  }
 
  void loop()
  {
   
    int buttonSTATE = digitalRead(buttonPin);
   
    if(buttonSTATE == LOW){
      delay(dht.getMinimumSamplingPeriod());
      float temperature = dht.getTemperature();
      lcd.print("temp ");
      lcd.print(temperature);
      delay(2500);
    }
 }
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter December 10, 2013, 16:50:11
har du pull-up på pin 4 det kan hjælpe!   

   *----knap----*----modstand----*
gnd               pin4                        +5v

hvis det giver mening!?  ;)
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter December 11, 2013, 09:18:45
Sådanner, så fik jeg det til at virke :)
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter December 11, 2013, 21:41:40
super! hvad var der galt?  :)
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter December 12, 2013, 00:24:08
Endnu en dårlig opsætning :-/
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter December 12, 2013, 18:58:07
men hey... som man siger: man lære bedst af sine fejl!  :)

jeg fejler ekstrem meget mht. programmering... men så lære jeg en masse, i processen med at få det til at spille!!  ;)
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter December 12, 2013, 23:40:34
Hej Jesper.

Jeg forstår det bare ikke, var ellers ret sikker på at jeg havde sat det rigtigt op, må åbenbart have misforstået knappens funktion.. :S
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter December 13, 2013, 17:27:52
lavede du den med pull-up så?  :)

de første opsætninger jeg lavede var uden pull-up.... og det "virkede"... for det meste....
nu roder jeg lidt med encoder, og der får man kun 'lort' hvis der ikke er pull-up med!
Af skade bliver man klog, sjældent rig! (sagde en klog mand en gang... den kan også bruges her, hvis rigdom er = tid med loddekolbe osv. osv.)  ;D
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter December 16, 2013, 08:53:25
Brugte den kode jeg havde smidt op i tråden her, også brugte din opsætning.

Eller jeg lavede det da, så da jeg trykkede på knappen, så viste den temperaturen i et par sekunder.
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: bws efter December 17, 2013, 01:50:32
FYI:

hey vil lige sige at der faktisk findes en måde at bruge Atmels AVR intern pull-up system når du leger med arduino'en, se beskrivelsen her:

http://arduino.cc/en/Reference/PinMode

hvis du sætter det pågælende ben til parameteren "INPUT_PULLUP" vil du ikke have brug for pull-uppen eksternt men kun en evt. prel fjernelse ved hjælp af en høj kondsator værdi ;)

MVH
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter Januar 12, 2014, 01:09:22
Hej og tilbage til dette emne.

Jeg har siddet med setup'et igen idag, og tænker lidt at jeg ville tilføje mit arduino Ethernet Shield til projektet, så alle data blev forbundet til et site med login (på www)

Problemet er, at hvis jeg en dag skal have det her projekt til at fungere, så skal jeg have data fra DHT11 til at blive sat direkte i en database på min website, som man kan aflæse v. login.

Nogen der har erfarring med emnet?

Jeg tænker lidt i stil med:
Arduino Mega 2560 + Arduino Ethernet shield + DHT11
Aflæsning hvert 30sek eller 60sek, tilføjet online til MySQL serveren, og derefter kan jeg altid programmer en masse web halløj i php.

Senere hen tilføjet andre komponenter.

Nogen der er frisk på sammenarbejde?
Kræver at man har arduino kenskab og interessen i at være med. Der kan dog forkomme pauser (Priotere I-K-K-E projektet som nr.1, grundet sygdom)
---
Når projektet engang er færdig, tænker jeg lidt i at lave et færdig print, hvor nogle af delene kan skiftes ud, fx. Et header plugin til flg. http://www.chip45.com/products/crumb2560-1.1_avr_atmega_module_board_atmega2560_usb_rs232_rs485.php (http://www.chip45.com/products/crumb2560-1.1_avr_atmega_module_board_atmega2560_usb_rs232_rs485.php)
Også div. moduler kan sættes på og kobles af, afhængig i hvad man er interesseret i.

Forslag?
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: gerd efter Januar 12, 2014, 11:28:41
Hej Danni,

>Nogen der er frisk på sammenarbejde?
Jeg hjælpe gerne. Her i forummet ... eller du laver dit projekt som et open-source projekt. Jeg arbejder gerne med Google Code og SVN. (Men har ingen problemer med andre systemer som Sourceforge eller Github ...)

Et år siden lavede jeg et projekt med et GSM modul. Det sendte hver 15 minutter data til en databse. Her er et skærmbillede af web-portalen. Du kan se strømforbruget i januar 2013:
(http://elektronik-forum.dk/gallery/374_12_01_14_11_22_21.png)

gerd
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: janengelbrecht efter Januar 12, 2014, 17:12:06
Jeg kobler mig lige på projektet :) Sidder selv og roder med et Arduino m. Ethernetshield projekt der skal sende data fra LM35 temparatur sensor til en mysql server og via php vise det på en hjemmeside :)
Mit eneste problem pt. er at min stofanet forbindelse er baseret på et kabelmodem der ikke router servere til internet forbindelsen hvis de er koblet på en trådet forbindelse...kun via wifi...så ser ud til jeg skal købe et WiFi shield først :(
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter Januar 12, 2014, 18:22:52
hej
jeg har lavet noget der ligner, til mit ølbrygning, bare uden sql delen.. så jeg er også med på en 'kigger'
det kunne da være fedt at have en graf eller noget i den stil (gærings temp osv osv)
:)
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: janengelbrecht efter Januar 12, 2014, 18:27:12
Ølbrygning ? :P Det vil vi have en artikel om :) Endelig noget der er RIGTIG interessant :P
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter Januar 12, 2014, 18:33:10
Hej Jan.

Skift din LM35 ud med DHT serien, inten 11 eller lign, så kan du koble flere sensore på samme board... Det kan du såvidt jeg ved ikke med LM35.. Samt at LM35 køre på Analog læsning, hvor DHT køre på digital læsning :)

OG Gerd, total i orden :D

Jesper Kool også :)
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter Januar 12, 2014, 18:33:29
det lyder som en ide Jan!

jeg skal brygge i næste weekend, så 'knipser' jeg lige nogle billeder  ;D

og hov... jeg bruger onewire fra dallas i mit setup.. det er præsist!
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: janengelbrecht efter Januar 12, 2014, 18:53:02
Og ja en digital (I2C f.eks.) temparatur føler er da interessant. At være afhængig af en A/D converter kan være en pestilens :) ... medmindre man har over 8 ved hånden man ikke bruger til noget ellers i en AVR f.eks :P
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: gerd efter Januar 12, 2014, 19:40:55
Citér
det kunne da være fedt at have en graf eller noget i den stil
Jeg gjorde det med "morris.js" http://www.oesmith.co.uk/morris.js/
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter Januar 12, 2014, 19:49:39
Citér
det kunne da være fedt at have en graf eller noget i den stil
Jeg gjorde det med "morris.js" http://www.oesmith.co.uk/morris.js/
det vil jeg lige se lidt på ved lejlighed! tak for linket
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: gerd efter Januar 12, 2014, 20:08:54
Og når der er mere end en sensor, er mit forslag at sende data med JSON (http://no.wikipedia.org/wiki/JSON).

PHP kan direkte afkode JSON (http://no.wikipedia.org/wiki/JSON) med json_decode($string);
Sådan ser det ud:
Kode:
{
    "system": "Dannis Arduino",
    "time": "20:04 12. Jan. 2014",
    "temperature sensors": {
        "Sensor_A": 23.4,
        "Sensor_B": 22.9,
        "Test_Sensor": -10.9
    },
    "humidity sensors": {
        "Sensor_A": 59,
        "Sensor_B": 61,
        "Test_Sensor": 100
    }
   ]
}
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: gerd efter Januar 15, 2014, 14:24:05
Hej Danni,

skulle dette være med en raspberry pi som webserver eller med en webserver fra en webhoster ?
Hvad jeg mener: Er webserveren i dit hus?

gerd
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter Januar 15, 2014, 15:52:16
Hej Gerd.

Nej, jeg tænkte på at det skulle være sådan at man satte en server op på internettet (Unden for mit hus) som registere alle data fra alle de opsatte huse, også udfra det, kan man tjekke data på apperartet online.

Mvh. Danni.
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Jesper_Munkholm efter Januar 15, 2014, 19:12:03
Hej Gerd.

Nej, jeg tænkte på at det skulle være sådan at man satte en server op på internettet (Unden for mit hus) som registere alle data fra alle de opsatte huse, også udfra det, kan man tjekke data på apperartet online.

Mvh. Danni.

Hej Danni

Må jeg foreslå en webserver inde på dit LAN, og så lave en regel i din router, evt. sætte den op mod dyndns eller noget!! :)
Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: gerd efter Januar 15, 2014, 21:35:31
Her er en idé:

Du gør det med smartVISU (http://smartvisu.de/).
smartVISU er en software til en lokal web-server med en KNX/EIB bus system.
Klik på "demo", og se hvad der er muligt.

Jeg har installerede det på min webserver og jeg skrev et lille script til Arduino.
Åbn dette i browser: http://sebulli.com/smartVISU/JSONsync/test.html
(http://elektronik-forum.dk/gallery/374_18_01_14_4_17_04.png)
Ændre temperaturen "GF.outdoor.temperature.avg.12h.0", fra 5.1 til f.eks. 9.9.
Klik på "send now".

Klik nu på icon "Office" / Icon "LED lamp".
Klick igen på "send now" og nu du har en svar i "Received JSON data:"

Titel: Sv: Nogen der ved hvad jeg gør forkert?
Indlæg af: Danni-Hansen efter Januar 18, 2014, 17:59:11
Elefantastisk Gerd, det ser jo fint ud :)

Men skal have gjort elektronikken færdig først, så vil jeg konsentere mig om programmeringen bag efter.

Indtil videre har jeg lavet et board som kan sættes til den her fætter:
http://www.chip45.com/products/crumb2560-1.1_avr_atmega_module_board_atmega2560_usb_rs232_rs485.php

Men, det er kun en DHT11, PIR modul samt 1 LDR til at måle lys niveauet.

Grunden til LDR, er at når det er mørkt, så slår den PIR modulet til at måle, så den ikke har nøde at være aktiv om dagen, alså PIR modulet.