Tartalomjegyzék:
- 1. lépés: Telepítési útmutató
- 2. lépés: A vezérlés bemutatása
- 3. lépés: A projektben használt alkatrészek/szoftverek listája
- 4. lépés: I/0 lista
- 5. lépés: bekötési rajz
- 6. lépés: Az Arduino kód
- 7. lépés: Raspberry Pi 3 B+
- 8. lépés: Python
- 9. lépés: MySQL
- 10. lépés: Node-Red
Videó: UCL - IIOT Üvegház: 11 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Ez a projekt kiterjeszti a Greenhouse-szal korábbi projektünket (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
Ebben a projektben hozzáadtunk egy adatbázist, ahol naplózzuk az összes adatunkat, majd vizualizáljuk őket a csomópont vörössel a jobb áttekintés érdekében.
Az adatbázisunkba bejegyzett tartalom a talaj páratartalma, hőmérséklete és nedvessége, amelyet különböző diagramok mutatnak be.
A dataloggin mellett szabályozhatjuk, hogy melyik profil aktív az üvegházban, és távolról is irányíthatjuk azt.
Ezután manuálisan is vezérelhetjük a szivattyút és a ventilátort.
1. lépés: Telepítési útmutató
Az első lépés az összes különböző összetevő telepítése.
A zárójelben () felsoroltuk, hogy az alkatrész hova van csatlakoztatva. Így például az Arduino USB -kábellel csatlakozik a Raspberry Pi -hez.
Használt hardver:
- Arduino (Raspberry Pi)
- Raspberry Pi 3 B+
- Talaj higrométer (Arduino)
- DHT11 érzékelő (Arduino)
- HG-320 merülő vízpumpa (relé)
- 5V relé (Arduino)
- Számítógép ventilátor (relé)
- 230V -os tápegység (szivattyú)
Használt szoftver:
- Raspbian (Raspberry Pi operációs rendszer)
- Arduino IDE
- Python (Raspberry Pi)- PySerial- MySQLclient
- Node-Red (Raspberry Pi)- Pythonshell- Összefoglaló- MySQL- Irányítópult
- MySQL szerver (freemysqlhosting.net)
Először csatlakoztatnia kell a hardver összetevőit, ezért kövesse ezt az útmutatót az üvegház építéséhez: Telepítési útmutató.
Ezután telepítenie kell a Raspbian OS -t a Raspberry Pi -re. Ezt követően telepítenie kell a Python -ot, majd telepítenie kell a python -könyvtárakat.
A következő lépés a Node-Red telepítése a Raspberry Pi-re, majd navigáljon a palettakezelőhöz, és telepítse a korábban megadott modulokat.
Ezután lépjen a Free MySQL Server webhelyre, és hozzon létre egy ingyenes MySQL szervert.
Ha mindez megtörtént, készen áll a python-szkript átvitelére a Raspberry Pi-re, importálni a Node-Red parancsfájlt, és feltölteni az Arduino kódját.
2. lépés: A vezérlés bemutatása
3. lépés: A projektben használt alkatrészek/szoftverek listája
Az alábbi technológiát használtuk az üvegház előállításához
- Arduino
- Raspberry Pi
- Node-Red
- Piton
- PHPMyAdmin
4. lépés: I/0 lista
5. lépés: bekötési rajz
6. lépés: Az Arduino kód
Az Arduino kód úgy működik, hogy az érzékelők által mért adatokat kinyomtatja a soros kapcsolathoz, ahol a Raspberry Pi elolvassa és továbbítja az adatbázisba.
Az Arduino rendelkezik néhány digitális bemeneti tűvel is a Raspberry Pi -hez csatlakoztatva, amelyeket az Arduino olvas, és ha a három közül az egyik MAGAS lesz, a profil megváltozik egy IF utasítás miatt.
Továbbá frissítettük a kódot, hogy késleltetés helyett Millis -t használjon, amely lehetővé teszi a kód és a többi rész folyamatos olvasását a régi késleltetés intervalluma helyett.
7. lépés: Raspberry Pi 3 B+
A Raspberry Pi 3 B+ -ot használtuk az Arduino internethez és a MySQL adatbázishoz való csatlakoztatásához. Ez lehetővé tette számunkra érzékelőink adatainak tárolását és vizuális felület létrehozását a végfelhasználó számára. A felhasználói felülethez a Node-Red-t használtuk a Dashboard palettával.
Mielőtt azonban megmutathatnánk érzékelőink adatait a Node-Red-en, szükségünk volt egy módra, hogy feltölthessük az adatokat egy MySQL adatbázisba, és ehhez készítettünk egy Python-szkriptet, amely a Raspberry Pi-n fut.
8. lépés: Python
A Python szkript az adatok fogadására szolgál az Arduino-ból érkező soros kommunikációból. A szkript ezután elküldi az adatokat a MySQL adatbázisba.
Két könyvtárat használtunk, a pyserial és a mysqlclient.
Tehát az első lépés a két könyvtár letöltése lenne:
- PySerial
- MySQLclient
A PySerial az adatok Arduino-ból történő gyűjtésére szolgál soros kommunikáción keresztül.
device = '/dev/ttyUSB0'
arduino = soros. Soros (eszköz, 9600)
Az első sort a COM-portunk meghatározására használjuk. A Raspberry Pi -n a /dev /ttyUSB0 az Arduino. A második sor a soros port megnyitására szolgál az Arduino számára. Csak meghatározzuk, hogy melyik COM-port és milyen sebességgel fut a kapcsolat.
A kód többi része egy while ciklusban fut.
Ezután több Try and Except blokkot használunk. Először a kód a Try blokkon belül próbál futni, ha ez nem sikerül, akkor a Kivétel blokkot futtatja. De ha a Try blokk jól fut, akkor nem az Except blokkot futtatja, csak a kód többi részét.
Tehát a Try blokkok belsejében van egy kód, amely beolvassa a soros kommunikációt, majd elküldi azt a MySQL adatbázisunkba.
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humidlist = arduino.readlines (3)
Tehát a fenti kód a soros kommunikáció sorainak olvasására szolgál. A kód végén található szám határozza meg a sorozatban olvasott sort. Tehát ezeket a sorokat különböző változókba sorolják.
Amikor az Arduino adatai érkeznek, a mysqlclient modult használtuk az adatok MySQL szerverünkre történő elküldésére.
db = _mysql.connect (host = "sql7.freemysqlhosting.net", user = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Ez a vonal a MySQL adatbázisunkhoz való kapcsolódáshoz szolgál. Megadja a szervert, a felhasználónevet, a jelszót és azt, hogy melyik adatbázishoz kell csatlakoznia a szerveren belül. Itt kell megadni a kapcsolatot a MySQL DB -vel.
db.query ("INSERTINTO` TempHumid` (`temp", `nedves`,` hygro`) ÉRTÉKEK (%s, %s, %s) " %(hőmérséklet, nedves, hygro))
Tehát itt fogjuk a DB -kapcsolatot, és SQL -lekérdezést készítünk. A lekérdezés szerint az értékeket be kell illeszteni a „TempHumid” táblázatba, majd a „temp”, „nedves” és „hygro” oszlopokba. Az utolsó rész („(%s, %s, %s)” a karakterláncok formázása, és arra szolgál, hogy az adatbázis számára formátumot biztosítson.
Mindezeket a műveleteket egy idő ciklusba helyezzük, így folyamatosan kapunk adatokat a MySQL szerverre.
Ha látni szeretné az összes kódot, töltse le a python parancsfájlt (TempHumid.py).
9. lépés: MySQL
A MySQL szerverhez ingyenes szolgáltatást használtunk a www.freemysqlhosting.net webhelyen. Létrehozhattunk volna szervert helyben a Raspberry Pi -n, de az ingyenes szolgáltatással együtt teljes mértékben csatlakoztattunk a felhőhöz/internethez.
A MySQL eléréséhez lépjen a phpmyadmin.co weboldalra, és jelentkezzen be a freemysqlhosting fiók hitelesítő adataival.
Amikor bent van, létre kell hoznia egy "TempHumid" nevű táblázatot, ezen belül pedig 4 oszlopot, "ID", "temp", "nedves" és "hygro". Az első oszlopban (azonosító) be kell jelölnie az A_I (Automatikus növelés) négyzetet. Ez azért van így, mert az ID oszlop minden adatkészlethez azonosítót ad. A következő oszlopokat INT (egész szám) értékre kell állítani, és a standard értéket NULL értékre kell állítani.
10. lépés: Node-Red
Projektünkben Node-Red-t használtunk grafikus felület létrehozásához. A Node-Red a Raspberry Pi-n fut, és adatokat gyűjt a MySQL adatbázisunkból, és ezeket az adatokat fánk alakú mérőeszközökkel és grafikus diagramokkal jeleníti meg, hogy a végfelhasználó figyelemmel kísérhesse az adatokat. Az okos dolog a Node-Red-ben az, hogy bármilyen eszközön megtekinthető, ami azt jelenti, hogy a webhely átméreteződik a tartalmat megtekintő adott eszközre.
Node-Red programozásunk telepítéséhez nézze meg az 1. lépést, és töltse le a "Node-Red.docx" nevű dokumentumot. Ezután másolja és illessze be a szöveget a Node-Red-be a jobb felső sarokban található importálás funkció segítségével.
Ezt követően módosítsa a MySQL DB DB beállításait.
Ajánlott:
Automatikus beltéri üvegház az Ikea Socker alapján: 5 lépés
Automatikus beltéri üvegház az Ikea Socker alapján: Szia, ez az első tanítható. Sokat tanultam ebből a közösségből, és azt hiszem, itt az ideje, hogy visszatérjek szerény ötleteimhez. Sajnálom az angol nyelvtudásomat, szegény, de mindent megteszek. Az ötlet az volt, hogy egy deskop üvegházat készítsek, amely lehetővé teszi a magvak termesztését és
Üvegház automatizálása a LoRa segítségével! (2. rész) -- Motoros ablaknyitó: 6 lépés (képekkel)
Üvegház automatizálása a LoRa segítségével! (2. rész) || Motoros ablaknyitó: Ebben a projektben megmutatom, hogyan hoztam létre motoros ablaknyitót az üvegházamhoz. Ez azt jelenti, hogy megmutatom, milyen motort használtam, hogyan terveztem a tényleges mechanikai rendszert, hogyan hajtom a motort, és végül hogyan használtam egy Arduino LoRa -t
Félelmetes üvegház automatikus öntözéssel, internetkapcsolattal és még sok mással: 7 lépés (képekkel)
Félelmetes üvegház automatikus öntözéssel, internetkapcsolattal és még sok mással: Üdvözöljük az utasításokban. Március elején egy kerti boltban voltam, és láttam néhány üvegházat. És mivel már régóta szerettem volna egy projektet készíteni növényekkel és elektronikával, előre mentem és vettem egyet: https://www.instagram.com/p
MAG (miniatűr automatikus üvegház): 9 lépés
MAG (Miniatűr automata üvegház): Anyám legtöbbször elég elfoglalt. Úgyhogy segíteni akartam neki az üvegházak automatizálásával. Ily módon időt takaríthat meg, mivel nem kell öntöznie a növényeket. Ezt a MAG (Miniatűr automata kert) segítségével fogom tudni elérni. Ahogy a
Üvegház automatizálása a LoRa segítségével! (1. rész) -- Érzékelők (hőmérséklet, páratartalom, talajnedvesség): 5 lépés
Üvegház automatizálása a LoRa segítségével! (1. rész) || Érzékelők (hőmérséklet, páratartalom, talajnedvesség): Ebben a projektben megmutatom, hogyan automatizáltam az üvegházat. Ez azt jelenti, hogy megmutatom, hogyan építettem fel az üvegházat, és hogyan kötöttem be az áram- és automatizálási elektronikát. Azt is megmutatom, hogyan kell programozni egy Arduino táblát, amely L -t használ