Cuprins:

Afișare temperatură și umiditate și colectare de date cu Arduino și procesare: 13 pași (cu imagini)
Afișare temperatură și umiditate și colectare de date cu Arduino și procesare: 13 pași (cu imagini)

Video: Afișare temperatură și umiditate și colectare de date cu Arduino și procesare: 13 pași (cu imagini)

Video: Afișare temperatură și umiditate și colectare de date cu Arduino și procesare: 13 pași (cu imagini)
Video: Cum programam butoanele termostatului cu Arduino | LIVE#47 2024, Iulie
Anonim
Afișare temperatură și umiditate și colectare de date cu Arduino și procesare
Afișare temperatură și umiditate și colectare de date cu Arduino și procesare

Introducere: Acesta este un proiect care folosește o placă Arduino, un senzor (DHT11), un computer Windows și un program de procesare (descărcare gratuită) pentru a afișa datele despre temperatură, umiditate în format digital și grafic cu bare, afișează ora și data și rulează un număr cronometrul în timpul programului și înregistrați toate datele într-un format.csv când programul este închis.

Inspirație:

Mai întâi TREBUIE să spun că sunt un începător total și am învățat foarte multe din acest proiect. Astfel, încerc să scriu acest instructabil pentru a fi citit și înțeles de un începător total.

Am văzut diverse proiecte Arduino pentru a măsura temperatura și umiditatea, dar am vrut un program care:

1) Temperatura și umiditatea măsurate

2) Am afișat datele atât într-un grafic (am ales graficul cu bare), cât și sub formă digitală

3) Are o funcție de ceas

4) Are un cronometru „Run Time”

5) Salvează aceste date într-un format de fișier.csv (excel).

M-am inspirat din programele create de Sowmith Mandadi, R-B și aaakash3, dar niciuna dintre acestea nu era exact ceea ce îmi doream. Așa că am învățat să scriu câteva coduri de bază și am făcut ceea ce îmi doream.

Pasul 1: De ce veți avea nevoie:

Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie

Părți și materiale: * Computer - Am folosit un computer Windows cu sistemul de operare Windows 10

(Sunt sigur că Linux sau Mac ar putea fi folosit, pur și simplu nu am nici unul, așa că nu voi acoperi cum să folosesc aceste sisteme de operare)

* Placa Arduino - Am folosit o placă Arduino Uno, dar orice placă Arduino cu USB o va face

* Cablu USB - Cablu USB A / B - la fel ca "cablu imprimantă" de tip vechi (de obicei vine cu placa Arduino)

* Senzor de temperatură / umiditate DHT 11 - ieftin de la 4 la 8 USD

(Notă: există 2 versiuni Am folosit versiunea cu 3 pini, versiunea cu 4 pini va necesita utilizarea unei plăci de rezistență și a unui rezistor de 10 K, 3 pini are o placă de circuite imprimate care include rezistența de 10 K) vezi diagramele Fritzing în pașii următori

* Firele de conectare

Cabluri Dupont (capete duble feminine) dacă se conectează la DHT11 cu 3 pini fără panou

Cabluri M / F jumper standard (un capăt tată unul capăt femelă) și fire jumper M / M (ambele capete tată) pentru a conecta DHT11 cu 4 pini - consultați pasul 2 pentru mai multe informații

* Arduino IDE - un program pentru scrierea programelor Arduino (numite schițe) gratuit @

www.arduino.cc/en/Main/Software

* Procesare - un program pentru a scrie schițe de procesare gratuit @

processing.org/download/

* Fișier „DHTLib” - un fișier bibliotecă (acesta este un fișier care intră în programul Arduino IDE din folderul numit „Bibliotecă”, acesta va trebui adăugat la schița Arduino înainte ca Arduino să poată citi datele din DHT11-a se vedea pasul 5 pentru descărcare fișier și instrucțiuni

Pasul 2: Conectați Arduino la DHT11

Conectați Arduino la DHT11
Conectați Arduino la DHT11
Conectați Arduino la DHT11
Conectați Arduino la DHT11
Conectați Arduino la DHT11
Conectați Arduino la DHT11
Conectați Arduino la DHT11
Conectați Arduino la DHT11

Mai întâi determinați ce DHT11 aveți

Am folosit pinul 3 deoarece are deja rezistența necesară de 10K.

Dacă aveți 4 pini, veți avea nevoie de un rezistor de 10K și o placă de măsurare

Conectați DHT11 la placa Arduino. Acest program solicită conectarea pinului de semnal DHT 11 la pinul Arduino # 7, pinul Pos (+) conectat la 5V pe Arduino și Neg (-) la GND pe Arduino.

Consultați Diagrame și Diagrame Fritzing

Pasul 3: Descărcați Arduino IDE

Descărcați Arduino IDE
Descărcați Arduino IDE

Descărcați Arduino IDE și instalați-l pe computer

www.arduino.cc/en/Main/Software

Pasul 4: Conectați Arduino la computer

Conectați Arduino la computer
Conectați Arduino la computer

Instalați mai întâi Arduino IDE, acesta are drivere pentru conexiunea USB Arduino.

Conectați Arduino la computer prin USB.

Așteptați ca computerul să recunoască placa Arduino și să instaleze orice drivere.

Deschideți programul IDE și verificați conexiunea serială.

Dacă placa Arduino nu apare în Instrumente> port (cerc roșu), închideți IDE și redeschideți.

* Important * odată ce IDE este deschis și placa Arduino este conectată prin USB. Placa Arduino trebuie să fie conectată la portul serial corect. Pe computerele Windows, acest lucru este denumit port COM. Pentru a face acest lucru în IDE, accesați Instrumente> Port:> Porturi seriale. După cum se vede în diagramă, portul serial (cercul roșu) trebuie să se potrivească cu portul listat în colțul din dreapta jos al programului IDE (cercul galben).

Pasul 5: Încărcați biblioteca

Încărcați biblioteca
Încărcați biblioteca
Încărcați biblioteca
Încărcați biblioteca
Încărcați biblioteca
Încărcați biblioteca
Încărcați biblioteca
Încărcați biblioteca

Încărcați biblioteca pentru DHT11. Acest lucru a fost confuz pentru mine la început, dar este într-adevăr destul de simplu.

Descărcați fișierul numit „DHTLib” și dezarhivați. Copiați fișierul „DHTLib” dezarhivat.

Referințele despre această bibliotecă pot fi găsite la:

playground.arduino.cc/Main/DHTLib

(A fost scris de Rob Tillaart pe baza lucrărilor altora)

Găsiți folderul Arduino de pe computer și deschideți-l. (Va fi oriunde ați descărcat IDE și l-ați instalat pe computer)

Vezi Diagrama

Găsiți fișierul numit „biblioteci” și deschideți-l, apoi lipiți folderul „DHTLib” în fișierul „biblioteci”. Închideți-l și apoi reporniți IDE-ul.

Vezi Diagrama

Odată ce IDE s-a redeschis, puteți verifica dacă biblioteca DHT a fost instalată. Schiță> Includeți biblioteca.

Vezi Diagrama

Notă Dacă faceți clic pe DHTLib în fila „include biblioteca” va plasa biblioteca în codul Arduino ca „#include dht.h”.

Nu trebuie să faceți acest lucru, deoarece este deja în codul pe care îl veți descărca în pasul următor.

Pasul 6: Obțineți codul Arduino

Obțineți codul Arduino
Obțineți codul Arduino

Descărcați fișierul Temp_Hum_Instructable.zip și dezarhivați. Deschideți Temp_Hum_Instructable.ino cu IDE-ul Arduino.

Alternativ, uitați-vă la următorul cod și copiați și lipiți sau tastați exact în ID-ul Arduino:

#include

dht DHT; #define DHT11PIN 7 // setează pinul 7 pentru conexiunea de semnal DHT11 void setup () {Serial.begin (9600); // deschide serial} void loop () {int chk = DHT.read11 (DHT11PIN); // citește DHT11 Serial.print (DHT.temperature, 0); // imprimă temp în serial Serial.print (","); // tipărește virgula în serial Serial.print (DHT.humidity, 0); // tipărește umiditatea în serial Serial.println (); // întârziere returnare transport (2000); // așteptați 2 secunde}

Când ați terminat, ar trebui să arate ca Diagrama de mai sus

Pasul 7: Încărcați codul pe Arduino

Încărcați codul pe Arduino
Încărcați codul pe Arduino
Încărcați codul pe Arduino
Încărcați codul pe Arduino
Încărcați codul pe Arduino
Încărcați codul pe Arduino
Încărcați codul pe Arduino
Încărcați codul pe Arduino

Mai întâi Salvați schița în locație și cu un nume pe care îl veți aminti, Exemplu: Temp_Hum.

Apoi, trebuie să încărcați schița pe placa Arduino apăsând butonul săgeată spre dreapta (încărcare).

Vezi Diagrama

Aceasta va dura câteva secunde; veți vedea o bară de progres în dreapta jos.

Apoi veți vedea: Finalizat încărcarea mesajului în partea stângă jos și textul alb în partea de jos a IDE, care vă spune despre memorie

Vezi Diagrama

Dacă primiți un cod de eroare (text portocaliu în partea de jos a IDE), acesta ar trebui să fie unul dintre următoarele

  1. Biblioteca „DHTlib” nu a fost copiată corect
  2. Portul COM nu este setat corect
  3. Senzorul nu a fost conectat corect
  4. Codul nu a fost încărcat corect în IDE. Textul portocaliu poate fi parcurs și va oferi o idee despre ceea ce este greșit. Reveniți înapoi și verificați dacă este probabil o simplă greșeală.

Odată ce ați făcut acest lucru, priviți cu atenție placa Arduino. La fiecare câteva secunde, LED-ul mic de lângă literele „TX” va clipi. Acesta este Arduino care trimite informații înapoi la computer. Pentru a verifica acest lucru, faceți clic pe simbolul lupă din colțul din dreapta sus al IDE.

Vezi Diagrama

Aceasta va deschide monitorul serial și va afișa datele de temperatură și umiditate separate printr-o virgulă. Veți observa că datele despre temperatură sunt listate în grade Celsius. Asta este OK, ne vom converti în Fahrenheit mai târziu (sau nu dacă ați ales).

Vezi Diagrama

Apoi închideți monitorul serial și apoi închideți IDE-ul. (Ți-ai amintit să-l salvezi, nu-i așa?). Acum, uitați-vă din nou la placa Arduino (nu o deconectați de la USB-ul de unde este alimentată și trimite datele la portul serial de pe computer). Clipește încă? Da, minunat. Odată ce programul este încărcat pe Arduino, acesta va rula atâta timp cât are putere.

Notă despre cod: dacă vă uitați la codul Arduino începând cu „void loop ();”. Următoarele 5 linii de cod îi spun Arduino să citească datele din DHT și să le tipărească pe magistrala serial separată printr-o virgulă. Următoarea linie „întârziere (2000);” îi spune lui Arduino să aștepte 2 secunde (2000 milisecunde), astfel încât datele să fie primite la fiecare 2 secunde. Apoi revine la „void loop (); - o comandă care îi spune lui Arduino să o facă din nou. Schimbarea valorii în linia de întârziere va schimba frecvența cu care sunt primite datele. Exemplu: schimbarea la (600000) se va schimba până la 10 minute (600000 milisecunde = 10 minute). Primirea datelor la fiecare 2 secunde ajunge să fie o mulțime de date, așa că acum știți cum să schimbați frecvența cu care sunt citite datele. Amintiți-vă doar dacă schimbați valoarea ulterior trebuie să încărcați noul program.

OK stai pe spate și respiră, ești la mai mult de jumătate. Da!!

Pasul 8: Descărcați și instalați Procesarea

Descărcați și instalați procesarea
Descărcați și instalați procesarea
Descărcați și instalați procesarea
Descărcați și instalați procesarea

processing.org/download/

Destul de direct selectați programul care corespunde computerului dvs. pentru Windows 64 biți vs. 32 biți. Dacă nu știți, deschideți Panoul de control de pe computer (vizualizare pictogramă nu vizualizare categorie) și accesați sistemul, acesta va fi listat acolo.

Vezi Diagrama

Descărcați și apoi instalați programul.

Prima dată când deschideți și rulați procesarea, veți primi probabil un mesaj de securitate Java. Faceți clic pe „permite” pentru rețelele private. Java este limbajul de calculator utilizat de Processing (și Arduino IDE). Interesant este că nu am primit niciodată mesajul de securitate cu Arduino IDE, ci doar Procesare.

Pasul 9: Procesarea codului

Cod de procesare
Cod de procesare

OK acum pentru codul de procesare.

Aceasta a fost partea cea mai provocatoare pentru mine, dar și cea mai mare oportunitate de învățare. În timp ce codul Arduino avea aproximativ 20 de linii, acest cod are +/- 270 de linii în codul principal și încă 70 + în clase.

Acum, primul lucru pe care ar trebui să-l întrebi este „Ce sunt cursurile?”. Buna intrebare. Aceasta se referă la programarea orientată pe obiecte. Pe scurt, există o grămadă de lucruri care se întâmplă în codul principal: definirea dimensiunii și culorii afișajului, un ceas, un cronometru, cod pentru a arăta locația cursorului, cod pentru a salva datele într-un fișier.csv și câteva linii care se ocupă cu codul care afișează graficele cu bare. În timp ce IDE-ul Arduino avea tot codul pe o singură pagină, acest cod de procesare are trei file. Primul este codul principal, iar următoarele două sunt codul care afișează graficele cu bare. (Acest cod este de fapt stocat în trei fișiere separate în folderul Cod de procesare.) Filele separate sunt numite „clase” și sunt definite în liniile 48 și 56 și apoi afișate de liniile 179-182 ale codului principal. Oamenii care au scris Programul de procesare numesc această programare orientată obiect. (a se vedea: https://processing.org/tutorials/objects/ pentru o scurtă descriere).

Practic, ceea ce fac clasele (Recta1, Recta2) din acest cod este de a crea dreptunghiuri care se deplasează în sus și în jos pe baza datelor primite de la DHT11 prin serial. Gândiți-vă la termometrul de modă veche cu cât mercurul este mai mare cu atât este mai fierbinte, dar acest lucru se face cu date, nu cu mercur. În realitate, clasele creează patru dreptunghiuri, două dreptunghiuri statice care reprezintă fundalul termometrului și două dreptunghiuri dinamice care răspund la date și se deplasează în sus și în jos. În plus față de mutarea dreptunghiurilor, codul schimbă culoarea dreptunghiului dinamic și culoarea afișajului digital Temp și Umiditate pe baza datelor primite prin serial.

Pasul 10: Procesarea fișierelor de cod

Doar câteva elemente de bază privind codul de procesare:

Vă recomand cu drag să citiți Make: Getting Started withProcessing de Casey Reas și Ben Fry, fondatorii procesării.

processing.org/books/#reasfry2

Nu voi încerca să explic toate aspectele procesării sau scrierii codului pentru procesare. După cum am spus mai devreme, sunt începător și cred că există oameni mult mai buni de la care să învețe. Cu toate acestea, înțeleg codul pe care l-am scris (încercarea și eroarea sunt profesori buni).

1. Mai întâi trebuie să includă biblioteci (la fel ca în Arduino) și să declare variabile (Liniile 1-25)

2. Apoi configurați afișajul (Liniile 27-63)

3. Rulați o parte repetată a codului - ceea ce vreau să spun este că această parte a codului se va repeta atâta timp cât programul rulează. Îți vei aminti în Arduino „void loop ();” (Pasul 6). În procesare, acesta este acum „draw nul ();” (Liniile 65-184)

4. Următorul este obținerea de date de la portul serial și atribuirea variabilelor (int, float, șir)

int-

pluti-

Şir-

(Liniile 185-245)

4. În cele din urmă o modalitate de a închide programul și de a salva datele (Liniile 246-271)

Ok: Descărcați fișierul Temp_Hum_F_3_2 (pentru Fahrenheit)

Sau Temp_Hum_C_3_1 (pentru centigradi)

și dezarhivați fișierul. Deschideți cu Procesare.

Pasul 11: Font în procesare

Font în procesare
Font în procesare

Important: vă atrag atenția asupra liniilor 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // încarcă fontul stocat în date

folderul 37 textFont (font);

Această bibliotecă de fonturi „SourceCodePro-Bold-48.vlw” este inclusă în procesarea descărcărilor de fișiere și nu trebuie modificată pentru a funcționa.

Cu toate acestea, pentru a schimba fontul cu altceva, va trebui să încărcați noul font în schița de procesare ȘI să înlocuiți „SourceCodePro-Bold-48.vlw” cu noul font.

. Din fericire Procesarea a făcut prima parte foarte ușoară.

Mai întâi deschideți schița a apoi faceți clic pe:

Instrumente> Creați font

aceasta afișează o fereastră

Vezi diagrama

Derulați în jos la noul font dorit, faceți clic pe acesta și apoi faceți clic pe OK. Fontul a fost acum încărcat în dosarul de schiță.

Înlocuiți apoi textul „SourceCodePro-Bold-48.vlw” cu numele exact al noului font (inclusiv formatul de fișier.vlw)

Dacă acest lucru nu se face, noul font nu se va încărca în cod și codul va da erori (la fel ca erorile din Arduino - în caseta neagră din partea de jos a programului).

Pasul 12: Finalizare

Terminand
Terminand
Terminand
Terminand
Terminand
Terminand
Terminand
Terminand

Pentru a porni programul de procesare, faceți clic pe săgeată, puteți primi un avertisment Java, faceți clic pe: Permiteți accesul.

Vezi Diagrama

OK, a funcționat programul? Dacă da, veți obține un afișaj precum cel din diagramă.

(Nu? Consultați depanarea la pasul următor)

Da? Acum încercați să țineți DHT11 în palma închisă sau puneți-l sub fluxul de aer cald al unui uscător de păr. Numerele ar trebui să se schimbe. Da? Grozav. asta înseamnă că totul funcționează bine.

Pentru a închide programul și a salva date, faceți clic pe caseta pe care scrie „Faceți clic aici pentru a închide și salva date”.

Acum, pentru a găsi datele salvate, accesați folderul Temp_Hum_F_3_1 sau Temp_Hum_C_3_1 Procesare (ar trebui să puteți găsi acest lucru pe cont propriu până acum) deschideți-l și găsiți folderul Data. Deschideți acest lucru și ar trebui să vedeți un fișier.csv numit după data și ora la care ați închis programul (Exemplul 1-10-18--22-30-16.csv înseamnă 10 ianuarie 2018 22:30:16 PM). Deschideți acest lucru cu Excel (sau echivalentul cu foaia de calcul Open office). Ar trebui să vedeți ceva de genul diagramei. Coloane pentru dată, oră, durată, temperatură și umiditate cu date. Acum puteți grafica datele cu Excel sau orice doriți să faceți cu ea. (Notă: dacă vă uitați la prima intrare de date, datele Temp și Umiditate nu sunt corecte, acest lucru este normal și este doar o eroare la pornirea programului pentru prima dată)

OK da !!!!!

Tu ai făcut-o

Dacă aveți întrebări, vă rugăm să postați și voi face tot posibilul să răspund și să vă ajut.

Vă mulțumim că ați rămas cu asta și mult noroc. Sper că acesta este doar un început …..

Următorul pentru mine Bluetooth și, eventual, Android….

Pasul 13: Depanare

Depanare
Depanare
Depanare
Depanare

Probleme Arduino

Dacă primiți un cod de eroare (text portocaliu în partea de jos a IDE), acesta ar trebui să fie unul dintre următoarele Biblioteca "DHTlib" nu a fost copiată corect

Portul COM nu este setat corect

Senzorul nu a fost conectat corect

Codul nu a fost încărcat corect în IDE

Dacă tot Arduino pare să funcționeze OK, nu uitați să deschideți Serial Monitor și să vedeți dacă sunt afișate date

Dacă vedeți date corecte, acest lucru înseamnă că partea Arduino funcționează.

Probleme de procesare:

Acestea vor fi afișate în partea de jos a programului de procesare.

Dacă apare o eroare la descrierea „fontului”, reveniți la pasul 11 și încărcați fontul așa cum este descris.

Dacă primiți o eroare care arată ca: Eroare, dezactivarea serialEvent () pentru COM4 nul - reporniți schița de procesare făcând clic pe săgeată ca la pasul 12

Dacă apare o eroare care precizează: Eroare la deschiderea portului serial - încercați să schimbați liniile 32-34 cu ceva de genul în care „COM4” se potrivește cu portul COM din schița dvs. Arduino

myPort = newSerial (this, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // așteptați până când serialul are date

Recomandat: