Arduino Ethernet modul + DHT11 + Led vezérlés

Ennek a feladatnak a megvalósításához két megoldást is mellékelek. A példakódok azt valósítják meg, hogy egy link vagy nyomógomb segítségével ki és bekapcsoljuk a ledünket, plusz alá kiíratjuk a DH11 értékeit. Az ethernet modul kapcsolásának összeállításához segítség itt. Ezen kívül már csak másik két egységnek kell az illesztését megoldanunk. Az egyik a LED, ami a D5-ös pinre kerül. A másik pedig a DHT11, aminek a DATA lábát a D2-es pinre kell csatlakoztatni. Ha készen vagyunk a kapcsolás összeállításával, és még nem telepítettük az Ethernet modulhoz az “ethercard” library-t, akkor töltsük le a lenti linkről. Plusz arra felhívnám a figyelmet, hogy a példafeladatban nem azt a régebbi DHT library-t használtam ami a fenti linken elérhető korábbi teszthez van mellékelve, ezért a helyes működéshez ezt cseréljük le a lenti linken található könyvtárra.

Libraries:

Ha készen vagyunk a kapcsolás összeállításával és a könyvtárakat is telepítettük, akkor nem marad más hátra, hogy kipróbáljuk a példakódokat.

Példakódok:

Ha az első példakódot lefuttattuk, akkor ezt az eredményt kell látnunk:

ether1

Ha a második példakódot lefuttattuk, akkor pedig ezt az eredményt kell látnunk:

ether2

A példafeladatoknál a leírásom nem fog kiterjedni a HTML-re és a “GET” és “POST” metódus magyarázására. Viszont a kezdőknek és a teljesen laikusoknak mellékelek pár linket, ahol ezekről olvashat bővebben.

HTML –> http://www.w3schools.com/

“GET” és “POST” metódus –> http://web.progtanulo.hu/

Sajnos SD kártya nélkül, nem lehet nagyon komplikált feladatokat megvalósítani ezzel, mert a program a memóriának a felét így is lefoglalja. A későbbiekben készítek majd leírást arról is, hogy hogyan lehet megoldani a vezérlést úgy hogy a HTML kód az sd-ről legyen betöltve.

Utóljára, hogy ne szaporítsam tovább a sorokat még a változók HTML kódba történő beillesztését szeretném részletesebben bemutatni, és az “strncmp” függvényről mellékelek egy leírást a teljesség kedvéért. A többinek a “ethercard” library reference segítségével, már egyértelműnek kell lenni.

A változók HTML kódba történő beillesztéséről és a mutatók használatáról az Ethercard könyvtár készítőinek az oldalán találunk egy pontos és tökéletes leírást, én is ez alapján oldottam meg a páratartalom és a hőmérsékleti érték beszúrását az oldalra.

https://www.aelius.com/njh/ethercard/class_buffer_filler.html

Egy dologra kell figyelni, hogy amikor beolvassuk a DHT11 értékeit, akkor ne “float” típust használjunk, hanem az “uint16_t” típust. Amint azt látjuk a táblázatban ennek a “$D” a mutatója ha decimális megjelenítést akarunk alkalmazni. Tovább ezt sem szeretném részletezni, mert a fenti linken az “examples” rész egy kiválóan érhető példával taglalja a BufferFiller függvény pointereinek a működését.

Nos és, hogy miért is írtam, hogy az “strncmp” függvényről mellékelek egy leírást? A válasz egyszerű az első példafeladatban, a “GET” metódus értékeit ezzel a függvénnyel vizsgáljuk.

 

else if (strncmp("?led=on ", data, 8) == 0) {
                // Set ledStatus true and redirect to home page
                ledStatus = true;
                bfill.emit_p(http_Found);
            }

Szóval a pontos megértéshez szükségünk van arra, hogy tudjuk milyen visszatérő értéket ad ez a “string” összehasonlító függvény.

http://www.cplusplus.com/reference/cstring/strncmp/

A legjobb példa erre a C++ reference oldalán található. Amennyiben a tesztelésnél elakadunk és nem tudjuk, hogy még is milyen értéket hasonlítunk össze az általunk megadott “?led=on ” stringgel, akkor a soros monitorra írassuk ki a data változót. Ekkor látni fogjuk, hogy mit hasonlítunk össze mivel.

Remélem segítettem a megértésben, sajnos az alapok bemutatására nem terjed ki sem az időm, sem a türelmem. Kívánok mindenkinek ereményes tesztelést.

(Statisztika: 33 megtekintés)

Vélemény, hozzászólás?

Az email címet nem tesszük közzé.