Tartalomjegyzék:

Hőmérséklet és páratartalom kijelző és adatgyűjtés Arduino -val és feldolgozás: 13 lépés (képekkel)
Hőmérséklet és páratartalom kijelző és adatgyűjtés Arduino -val és feldolgozás: 13 lépés (képekkel)

Videó: Hőmérséklet és páratartalom kijelző és adatgyűjtés Arduino -val és feldolgozás: 13 lépés (képekkel)

Videó: Hőmérséklet és páratartalom kijelző és adatgyűjtés Arduino -val és feldolgozás: 13 lépés (képekkel)
Videó: Arduino Based Thermometer 2024, Július
Anonim
Hőmérséklet és páratartalom kijelző és adatgyűjtés az Arduino és a feldolgozás segítségével
Hőmérséklet és páratartalom kijelző és adatgyűjtés az Arduino és a feldolgozás segítségével

Intro: Ez egy olyan projekt, amely egy Arduino táblát, egy érzékelőt (DHT11), egy Windows számítógépet és egy Processing (ingyenesen letölthető) programot használ a hőmérséklet, páratartalom adatok digitális és oszlopdiagram formában történő megjelenítésére, az idő és a dátum megjelenítésére, valamint a számlálás lebonyolítására időzítő a program alatt, és a program bezárásakor rögzítse az összes adatot.csv formátumban.

Ihlet:

Először azt kell mondanom, hogy teljesen kezdő vagyok, és rengeteget tanultam ebből a projektből. Így megpróbálom megírni ezt az utasítást, hogy egy teljesen kezdő olvassa és megértse.

Láttam különböző Arduino projekteket a hőmérséklet és a páratartalom mérésére, de olyan programot akartam, amely:

1) Mért hőmérséklet és páratartalom

2) Az adatokat grafikonon (én oszlopdiagramot választottam) és digitális formában is megjelenítettem

3) Óra funkcióval rendelkezik

4) Van egy visszaszámláló „Futási idő” időzítő

5) Ezeket az adatokat.csv (excel) fájlformátumba menti.

Inspirációt kaptam a Sowmith Mandadi, az R-B és az aaakash3 programjaiból, de ezek egyike sem volt az, amit szerettem volna. Így megtanultam néhány alapvető kódot írni, és megcsináltam, amit akartam.

1. lépés: Amire szüksége lesz:

Amire szüksége lesz
Amire szüksége lesz
Amire szüksége lesz
Amire szüksége lesz

Alkatrészek és anyagok:*Számítógép - Windows számítógépes Windows 10 operációs rendszert használtam

(Biztos vagyok benne, hogy Linux vagy Mac használható, csak nekem nincs, így nem fogok kitérni ezekre az operációs rendszerekre)

*Arduino tábla - Arduino Uno táblát használtam, de minden USB -vel rendelkező Arduino kártya megteszi

*USB kábel -USB A/B kábel -ugyanaz, mint a régi típusú "nyomtatókábel" (általában az Arduino kártyával együtt)

*DHT 11 hőmérséklet /páratartalom érzékelő- olcsó 4-8 dollár

(Megjegyzés: 2 verzió van, amelyeket a 3 tűs verzióhoz használtam, a 4 tűs változathoz kenyérsütő deszkát és 10K ellenállást kell használni, a 3 tűs nyomtatott áramkörhöz tartozik a 10K ellenállás) lásd Fritzing diagramok a következő lépésekben

*Csatlakozó vezetékek

Dupont vezetékek (dupla hüvelyes vég), ha 3 tűs DHT11 -hez csatlakozik kenyértábla nélkül

Szabványos áthidaló M/F vezetékek (egyik végén hüvely, egyik vég hüvely) és M/M jumper vezetékek (mindkét végén hüvelyes) a 4 tűs DHT11 csatlakoztatásához - további információkért lásd a 2. lépést

*Arduino IDE - program Arduino programok (vázlatok) írására ingyenes @

www.arduino.cc/en/Main/Software

*Feldolgozás - program a feldolgozási vázlatok ingyenes írására @

processing.org/download/

* "DHTLib" fájl -könyvtári fájl (ez egy olyan fájl, amely az Arduino IDE programba kerül a "Library" nevű mappa alatt. Ezt hozzá kell adni az Arduino vázlathoz, mielőtt az Arduino ki tudja olvasni az adatokat a DHT11 -ből) 5. lépés a fájl letöltéséhez és az utasításokhoz

Lépés: Csatlakoztassa az Arduino -t a DHT11 -hez

Csatlakoztassa az Arduino -t a DHT11 -hez
Csatlakoztassa az Arduino -t a DHT11 -hez
Csatlakoztassa az Arduino -t a DHT11 -hez
Csatlakoztassa az Arduino -t a DHT11 -hez
Csatlakoztassa az Arduino -t a DHT11 -hez
Csatlakoztassa az Arduino -t a DHT11 -hez
Csatlakoztassa az Arduino -t a DHT11 -hez
Csatlakoztassa az Arduino -t a DHT11 -hez

Először határozza meg, hogy melyik DHT11 van

A 3 tűt használtam, mivel már rendelkezik a szükséges 10K ellenállással.

Ha rendelkezik a 4 tűvel, szüksége lesz egy 10K ellenállásra és egy kenyérlapra

Csatlakoztassa a DHT11 -et az Arduino Board -hoz. Ez a program megköveteli, hogy a DHT 11 jelű tüskét csatlakoztassák az Arduino #7 tűhöz, a Pos (+) tűt az 5 A-hoz az Arduino-hoz, és a Neg (-) -et a GND-hez az Arduino-n.

Lásd: Diagramok és Fritzing diagramok

Lépés: Töltse le az Arduino IDE -t

Töltse le az Arduino IDE -t
Töltse le az Arduino IDE -t

Töltse le az Arduino IDE -t, és telepítse a számítógépre

www.arduino.cc/en/Main/Software

Lépés: Csatlakoztassa az Arduino -t a számítógéphez

Csatlakoztassa az Arduino -t a számítógéphez
Csatlakoztassa az Arduino -t a számítógéphez

Először telepítse az Arduino IDE -t, amely rendelkezik illesztőprogramokkal az Arduino USB -kapcsolathoz.

Csatlakoztassa az Arduino -t a számítógéphez USB -n keresztül.

Várja meg, amíg a számítógép felismeri az Arduino kártyát, és telepítse az illesztőprogramokat.

Nyissa meg az IDE programot, és ellenőrizze a soros kapcsolatot.

Ha az Arduino kártya nem jelenik meg az Eszközök> portban (piros kör), zárja be az IDE -t, és nyissa meg újra.

* Fontos* ha az IDE nyitva van, és az Arduino kártya USB -n keresztül csatlakozik. Az Arduino kártyát a megfelelő soros porthoz kell csatlakoztatni. Windows számítógépeken ezt COM portnak nevezik. Ehhez az IDE -ben válassza az Eszközök> Port:> Soros portok lehetőséget. Amint az ábrán látható, a soros portnak (piros kör) meg kell egyeznie az IDE program jobb alsó sarkában felsorolt porttal (sárga kör).

5. lépés: Töltse be a könyvtárat

Töltse be a Könyvtárat
Töltse be a Könyvtárat
Töltse be a Könyvtárat
Töltse be a Könyvtárat
Töltse be a Könyvtárat
Töltse be a Könyvtárat
Töltse be a Könyvtárat
Töltse be a Könyvtárat

Töltse be a DHT11 könyvtárát. Ez először zavaros volt számomra, de tényleg nagyon egyszerű.

Töltse le a „DHTLib” nevű fájlt, és bontsa ki. Másolja ki a kicsomagolt „DHTLib” fájlt.

A könyvtár hivatkozása a következő címen található:

playground.arduino.cc/Main/DHTLib

(Rob Tillaart írta mások munkája alapján)

Keresse meg az Arduino mappát a számítógépén, és nyissa meg. (Bárhol lesz, ahonnan letöltötte az IDE -t, és telepítette a számítógépre)

Lásd Diagram

Keresse meg a „könyvtárak” nevű fájlt, és nyissa meg, majd illessze be a „DHTLib” mappát a „könyvtárak” fájlba. Zárja be, majd indítsa újra az IDE -t.

Lásd Diagram

Miután az IDE újra megnyílt, ellenőrizheti, hogy a DHT könyvtár telepítve van -e. Vázlat> Könyvtár felvétele.

Lásd Diagram

Megjegyzés: A DHTLib gombra kattintva a "könyvtár felvétele" lapon a könyvtár az Arduino kódba kerül, mint "#include dht.h".

Ezt nem kell megtennie, mert már benne van a következő lépésben letöltendő kódban.

6. lépés: Szerezze be az Arduino kódot

Szerezd meg az Arduino kódot
Szerezd meg az Arduino kódot

Töltse le a Temp_Hum_Instructable.zip fájlt, és bontsa ki. Nyissa meg a Temp_Hum_Instructable.ino fájlt az Arduino IDE segítségével.

Alternatív megoldásként nézze meg a következő kódot, és másolja, illessze be vagy írja be pontosan az Arduino IDE -be:

#befoglalni

dht DHT; #define DHT11PIN 7 // beállítja a 7 -es tűt a DHT11 jelkapcsolat void setup () {Serial.begin (9600); // megnyitja a soros} void loop () {int chk = DHT.read11 (DHT11PIN); // beolvassa a DHT11 Serial.print (DHT.temperature, 0); // a temp sorozatot nyomtat Serial.print (","); // vesszőt nyomtat Serial.print (DHT.humidity, 0); // páratartalmat nyomtat Serial.println (); // kocsi visszatérési késleltetés (2000); // várjon 2 másodpercet}

Ha elkészült, a fenti diagramnak kell kinéznie

7. lépés: Töltse be a kódot az Arduino -ba

Töltse be a kódot az Arduino -ba
Töltse be a kódot az Arduino -ba
Töltse be a kódot az Arduino -ba
Töltse be a kódot az Arduino -ba
Töltse be a kódot az Arduino -ba
Töltse be a kódot az Arduino -ba
Töltse be a kódot az Arduino -ba
Töltse be a kódot az Arduino -ba

Először mentse a vázlatot a helyére és olyan névre, amelyre emlékezni fog, például: Temp_Hum.

Ezután be kell töltenie a vázlatot az Arduino táblára a jobbra mutató nyíl gomb megnyomásával (feltöltés).

Lásd Diagram

Ez néhány másodpercet vesz igénybe; a jobb alsó sarokban egy folyamatjelző sávot fog látni.

Ezután látni fogja: Kész üzenet feltöltése a bal alsó sarokban, és fehér szöveg az IDE alján, amely a memóriáról szól

Lásd Diagram

Ha hibakódot kap (narancssárga szöveg az IDE alján), akkor a következők egyikének kell lennie

  1. A "DHTlib" könyvtár nem volt megfelelően másolva
  2. A COM port nincs megfelelően beállítva
  3. Az érzékelő nincs megfelelően csatlakoztatva
  4. A kód nincs megfelelően betöltve az IDE -be. A narancssárga szöveg görgethető, és nyomot adhat a hibáról. Menj vissza, és nézd meg, valószínűleg egyszerű hiba.

Ha ez megtörtént, nézze meg alaposan az Arduino tábláját. Pár másodpercenként a „TX” betűk melletti kis LED villog. Ez az Arduino, amely információkat küld vissza a számítógépre. Ennek ellenőrzéséhez kattintson a kis nagyító szimbólumra az IDE jobb felső sarkában.

Lásd Diagram

Ez megnyitja a soros monitort, és vesszővel elválasztva jeleníti meg a hőmérséklet és páratartalom adatait. Megjegyzi, hogy a hőmérsékleti adatok Celsius -ban vannak feltüntetve. Ez rendben van, később Fahrenheitre konvertáljuk (vagy nem, ha úgy döntött).

Lásd Diagram

Ezután zárja be a soros monitort, majd zárja be az IDE -t. (Ugye emlékezett rá, hogy elmentette?). Most nézze meg újra az Arduino táblát (ne válassza le az USB -ről, ahol áramot kap, és adatokat küld a számítógép soros portjára). Még mindig villog? Igen, nagyszerű. Miután a program betöltődött az Arduino -ba, addig fut, amíg van ereje.

Megjegyzés a kóddal kapcsolatban: ha megnézi az „void loop ();” kezdetű Arduino kódot. A következő 5 kódsor azt mondja az Arduino -nak, hogy olvassa el az adatokat a DHT -ből, és nyomtatja ki azokat a soros buszra, vesszővel elválasztva. A következő sor „késleltetés (2000)”; utasítja az Arduino -t, hogy várjon 2 másodpercet (2000 milliszekundum), így az adatok 2 másodpercenként érkeznek. Ezután visszatér a „void loop (); parancshoz - ez a parancs azt mondja az Arduino -nak, hogy ismételje meg. Ha módosítja az értéket a késleltetési sorban, megváltozik az adatok fogadásának gyakorisága. Példa: változtatás (600000) értékre 10 percre (600000 milliszekundum = 10 perc). Az adatok 2 másodpercenként történő fogadása sok adatot eredményez, így most már tudja, hogyan módosíthatja az adatok olvasási gyakoriságát. Ne feledje, ha később módosítja az értéket fel kell tölteni az új programot.

OK, dőljön hátra és vegyen levegőt, már több mint a felénél jár. Igen!!

8. lépés: Töltse le és telepítse a feldolgozást

Letöltés és telepítés Feldolgozás
Letöltés és telepítés Feldolgozás
Letöltés és telepítés Feldolgozás
Letöltés és telepítés Feldolgozás

processing.org/download/

Elég egyszerűen válassza ki azt a programot, amely megfelel a számítógépének a 64 bites és a 32 bites rendszerekhez. Ha nem tudja, nyissa meg a Vezérlőpultot a számítógépén (ikonnézet, nem kategória nézet), és lépjen a rendszerhez, és ott megjelenik.

Lásd Diagram

Töltse le és telepítse a programot.

A feldolgozás első megnyitásakor és futtatásakor valószínűleg Java biztonsági üzenetet kap. Privát hálózatok esetén kattintson az "engedélyezés" gombra. A Java a Processing (és az Arduino IDE) által használt számítógépes nyelv. Érdekes módon soha nem kaptam biztonsági üzenetet az Arduino IDE -vel, csak feldolgozás.

9. lépés: A kód feldolgozása

Feldolgozási kód
Feldolgozási kód

Rendben most a feldolgozó kóddal.

Ez volt a legnagyobb kihívás számomra, de a legnagyobb lehetőség a tanulásra is. Míg az Arduino kód körülbelül 20 sor volt, ennek a kódnak +/- 270 sora van a fő kódban, és további 70 + sor az osztályokban.

Most az első dolog, amit meg kell kérdeznie: „Mik azok az órák?”. Jó kérdés. Ez az objektumorientált programozásra vonatkozik. Röviden, egy csomó dolog zajlik a fő kódban: a kijelző méretének és színének meghatározása, egy óra, egy időzítő, a kurzor helyét megjelenítő kód, az adatok.csv fájlba mentésére szolgáló kód és néhány sor amelyek az oszlopdiagramokat megjelenítő kóddal foglalkoznak. Míg az Arduino IDE -ben az összes kód egy oldalon volt, ennek a feldolgozási kódnak három lapja van. Az első a fő kód, a következő kettő pedig az oszlopdiagramokat megjelenítő kód. (Ez a kód valójában három különálló fájlban van tárolva a Processing code mappában.) A különálló füleket „osztályoknak” nevezik, és a 48. és 56. sorban vannak definiálva, majd a fő kód 179-182. Azok, akik a Processing programot írták, ezt az objektum -orientált programozást hívják. (rövid leírásért lásd:

A kódban szereplő osztályok (Recta1, Recta2) alapvetően az, hogy olyan téglalapokat hoznak létre, amelyek felfelé és lefelé mozognak a DHT11 -től soros úton kapott adatok alapján. Gondoljunk csak a régimódi hőmérőre, minél magasabb a higany, annál melegebb, de ezt nem higanyos adatokkal teszik. Valójában az osztályok négy téglalapot hoznak létre, két statikus téglalapot, amelyek a hőmérő hátterét képviselik, és két dinamikus téglalapot, amelyek reagálnak az adatokra, és felfelé és lefelé mozognak. A téglalapok mozgatása mellett a kód megváltoztatja a dinamikus téglalap színét, valamint a hőmérséklet és páratartalom digitális kijelzőjének színét a soros által fogadott adatok alapján.

10. lépés: A kódfájlok feldolgozása

Csak néhány alapvető tudnivaló a kódfeldolgozásról:

Nagyon ajánlom a Make: Getting Started withProcessing című könyvet, melyet Casey Reas és Ben Fry, a Processing alapítói olvashatnak.

processing.org/books/#reasfry2

Nem fogom megpróbálni elmagyarázni a feldolgozás összes aspektusát, vagy kódot írni a feldolgozáshoz. Ahogy korábban mondtam, kezdő vagyok, és azt hiszem, sokkal jobb emberektől lehet tanulni. Viszont megértem az általam írt kódot (a próba és hiba jó tanárok).

1. Először is tartalmaznia kell a könyvtárakat (akárcsak az Arduino-ban), és deklarálnia kell a változókat (1-25. Sor)

2. Ezután állítsa be a kijelzőpanelt (27-63. Sor)

3. Futtassa a kód egy ismételt részét- úgy értem, hogy ez a kódrész a program futása alatt megismétlődik. Emlékszel az Arduino -ban „void loop ();” (6. lépés). A feldolgozás során ez most „void draw ();” (65-184. Sorok)

4. A következő lépés az adatok beszerzése a soros portról, és hozzárendelésük a változókhoz (int, float, String)

int-

úszó-

Húr-

(185-245. Sor)

4. Végül a program bezárásának és az adatok mentésének módja (246-271. Sor)

Ok: töltse le a Temp_Hum_F_3_2 fájlt (Fahrenheit esetén)

Vagy Temp_Hum_C_3_1 (Celsius fok esetén)

és bontsa ki a fájlt. Nyissa meg feldolgozással.

11. lépés: Betűtípus a feldolgozás során

Betűtípus feldolgozás alatt
Betűtípus feldolgozás alatt

Fontos: Felhívom a figyelmet a 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // betölti az adatokban tárolt betűtípust

mappa 37 textFont (betűtípus);

Ez a "SourceCodePro-Bold-48.vlw" betűtípuskönyvtár a Fájlok feldolgozása letöltések között található, és nem kell működésre módosítani.

A betűtípus megváltoztatásához azonban be kell töltenie az új betűtípust a feldolgozási vázlatba, ÉS le kell cserélnie a "SourceCodePro-Bold-48.vlw" betűtípust az új betűtípussal.

. Szerencsére a Processing nagyon megkönnyítette az első részt.

Először nyissa meg a vázlatot, majd kattintson:

Eszközök> Betűtípus létrehozása

ez ablakot hoz fel

Lásd a diagramot

Görgessen le a kívánt új betűtípushoz, kattintson rá, majd kattintson az OK gombra. A betűtípus most betöltődött a vázlatmappába.

Ezután cserélje ki a "SourceCodePro-Bold-48.vlw" szöveget az új betűtípus pontos nevével (beleértve a.vlw fájlformátumot)

Ha ezt nem teszi meg, akkor az új betűtípus nem töltődik be a kódba, és a kód hibákat ad (Mint az Arduino hibái- a program alján lévő fekete mezőben).

12. lépés: A befejezés

Befejezés
Befejezés
Befejezés
Befejezés
Befejezés
Befejezés
Befejezés
Befejezés

A Feldolgozó program elindításához kattintson a nyílra, és Java figyelmeztetést kaphat. Kattintson: Hozzáférés engedélyezése.

Lásd Diagram

Rendben, működött a program? Ha igen, akkor az ábrán láthatóhoz hasonló kijelzőt kap.

(Nem? Lásd a hibaelhárítást a következő lépésben)

Igen? Most próbálja a DHT11 -et a zárt tenyerében tartani, vagy a hajszárító meleg levegője alá helyezni. A számoknak változniuk kell. Igen? Nagy. ez azt jelenti, hogy minden jól működik.

A program bezárásához és az adatok mentéséhez kattintson a „Kattintson ide az adatok bezárásához és mentéséhez” mezőbe.

Most, hogy megtalálja a mentett adatokat, lépjen a Temp_Hum_F_3_1 vagy Temp_Hum_C_3_1 Processing mappába (ezt már önállóan meg kell találnia), nyissa meg, és keresse meg az Data mappát. Nyissa meg ezt, és látnia kell egy.csv fájlt, amely a program bezárásának dátumáról és időpontjáról kapta a nevét (1-10-18--22-30-16.csv. Példa: 2018. január 10. 10:30:16). Nyissa meg ezt az Excel segítségével (vagy az Open office táblázatlap megfelelőjével). Valami olyasmit kell látnia, mint a diagram. Oszlopok Dátum, Idő, futási idő, hőmérséklet és páratartalom adatokkal. Most grafikonnal ábrázolhatja az adatokat excellel, vagy bármit, amit szeretne vele csinálni. (Megjegyzés: ha megnézi az első adatbevitelt, a hőmérséklet és a páratartalom adatok nem helyesek, ez normális, és csak hiba a program első indításakor)

OK igen !!!!!

Megcsináltad

Ha bármilyen kérdése van, írjon, és mindent megteszek, hogy válaszoljak és segítsek.

Köszönöm, hogy ezzel maradsz, és sok sikert. Remélem ez még csak a kezdet …..

Következő számomra a Bluetooth és esetleg az Android….

13. lépés: Hibaelhárítás

Hibaelhárítás
Hibaelhárítás
Hibaelhárítás
Hibaelhárítás

Arduino problémák

Ha hibakódot kap (narancssárga szöveg az IDE alján), akkor az a következők egyike lehet

A COM port nincs megfelelően beállítva

Az érzékelő nincs megfelelően csatlakoztatva

A kód nincs megfelelően betöltve az IDE -be

Ha úgy tűnik, hogy minden Arduino rendben van, ne felejtse el megnyitni a Soros monitort, és nézze meg, hogy az adatok megjelennek -e

Ha helyes adatokat lát, ez azt jelenti, hogy az Arduino oldal minden működik. Ne feledje: Zárja be a soros monitort a feldolgozás megkezdése előtt, ha a soros monitor nyitva van. A feldolgozás nem tudja leolvasni az adatokat.

Feldolgozási problémák:

Ezek a feldolgozó program alsó részén jelennek meg.

Ha hibaüzenetet kap a "betűtípus" leírásakor, térjen vissza a 11. lépéshez, és töltse be a betűtípust a leírtak szerint.

Ha olyan hibaüzenetet kap, amely így néz ki: Hiba, a serialEvent () letiltása a COM4 null esetén- csak indítsa újra a feldolgozási vázlatot a nyílra kattintva, a 12. lépésben leírtak szerint.

Ha a következő hibaüzenetet kapja: Hiba a soros port megnyitása során, próbálja meg a 32-34-es sorokat olyanra váltani, ahol a "COM4" megegyezik az Arduino-vázlat COM-portjával

myPort = newSerial (ez, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // várja meg, amíg a sorozat rendelkezik adatokkal

Ajánlott: