Kazalo:
- 1. korak: Navodila za namestitev
- 2. korak: Predstavitev nadzora
- 3. korak: Seznam delov/programske opreme, uporabljene v projektu
- 4. korak: Seznam I/0
- 5. korak: Shema ožičenja
- Korak 6: Koda Arduino
- 7. korak: Raspberry Pi 3 B+
- 8. korak: Python
- 9. korak: MySQL
- 10. korak: Node-Red
Video: UCL - IIOT rastlinjak: 11 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta projekt je podaljšek našega prejšnjega projekta z rastlinjakom (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
V ta projekt smo dodali bazo podatkov, v kateri zabeležimo vse svoje podatke in jih nato vizualiziramo z rdečim vozliščem za večji pregled.
Vsebina, ki jo vpisujemo v našo bazo podatkov, je vlažnost, temperatura in vlaga tal, ki je prikazana na različnih diagramih.
Poleg podatkovnega vhoda lahko nadzorujemo tudi profil, ki je aktiven v rastlinjaku, in ga nadziramo na daljavo.
Potem lahko črpalko in ventilator upravljamo tudi ročno.
1. korak: Navodila za namestitev
Prvi korak je namestitev vseh različnih komponent.
Znotraj oklepajev () smo navedli, kje je komponenta priključena. Tako je na primer Arduino povezan z Raspberry Pi prek kabla USB.
Uporabljena strojna oprema:
- Arduino (Raspberry Pi)
- Malina Pi 3 B+
- Higrometer tal (Arduino)
- Senzor DHT11 (Arduino)
- HG-320 potopna vodna črpalka (rele)
- Rele 5V (Arduino)
- Računalniški ventilator (rele)
- 230V napajanje (črpalka)
Uporabljena programska oprema:
- Raspbian (OS za Raspberry Pi)
- Arduino IDE
- Python (Raspberry Pi)- PySerial- MySQLclient
- Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Nadzorna plošča
- Strežnik MySQL (freemysqlhosting.net)
Najprej boste morali priključiti komponente strojne opreme, zato za izgradnjo rastlinjaka upoštevajte ta priročnik: Vodič za namestitev.
Potem boste morali v svoj Raspberry Pi namestiti Raspbian OS. Po tem boste morali namestiti Python in nato namestiti knjižnice python.
Naslednji korak je, da na Raspberry Pi namestite Node-Red, nato pa se pomaknite do upravitelja palet in namestite prej navedene module.
Nato pojdite na to spletno mesto Brezplačni strežnik MySQL in ustvarite brezplačen strežnik MySQL.
Ko je vse to narejeno, ste pripravljeni prenesti skript python v svoj Raspberry Pi, uvoziti skript Node-Red in naložiti kodo za Arduino.
2. korak: Predstavitev nadzora
3. korak: Seznam delov/programske opreme, uporabljene v projektu
Za izdelavo rastlinjaka smo uporabili naslednjo tehnologijo
- Arduino
- Malina Pi
- Node-Red
- Python
- PHPMyAdmin
4. korak: Seznam I/0
5. korak: Shema ožičenja
Korak 6: Koda Arduino
Koda Arduino deluje tako, da podatke, merjene s senzorji, natisne na serijsko povezavo, kjer jih prebere Raspberry Pi in prenese v bazo podatkov.
Arduino ima tudi nekaj digitalnih vhodov, povezanih z Raspberry Pi, ki jih Arduino bere, in če eden od treh postane HIGH, se profil spremeni zaradi stavka IF.
Prav tako smo nadgradili kodo tako, da uporabljamo Millis namesto zamika, kar omogoča, da se gumbi in preostala koda berejo ves čas namesto intervala po stari zamudi.
7. korak: Raspberry Pi 3 B+
Za povezavo našega Arduina z internetom in bazo podatkov MySQL smo uporabili Raspberry Pi 3 B+. To nam je omogočilo shranjevanje podatkov iz naših senzorjev in izdelavo vizualnega vmesnika za končnega uporabnika. Za uporabniški vmesnik smo uporabili Node-Red s paleto Dashboard.
Toda preden smo lahko prikazali podatke svojih senzorjev na Node-Redu, smo potrebovali način za nalaganje podatkov v bazo podatkov MySQL in za to smo izdelali skript Python, ki bi se izvajal na našem Raspberry Pi.
8. korak: Python
Skript Python se uporablja za sprejemanje podatkov iz serijske komunikacije, ki prihaja iz Arduina. Skript nato pošlje podatke v bazo podatkov MySQL.
Uporabili smo dve knjižnici, pyserial in mysqlclient.
Torej, prvi korak bi bil prenos teh dveh knjižnic:
- PySerial
- MySQLclient
PySerial se uporablja za zbiranje podatkov iz Arduina prek serijske komunikacije.
naprava = '/dev/ttyUSB0'
arduino = serijski. Serijski (naprava, 9600)
Prva vrstica se uporablja za opredelitev naših vrat COM. Na Raspberry Pi uporabljamo /dev /ttyUSB0 za Arduino. Druga vrstica je za odpiranje serijskih vrat za Arduino. Določimo le, katera vrata COM in s kakšno hitrostjo teče povezava.
Preostali del kode se izvaja v zanki while.
Nato uporabimo več blokov Try in Except. Najprej se koda poskuša zagnati v bloku Try, če to ne uspe, pa zažene blok Except. Če pa blok Try deluje brezhibno, ne zažene bloka Except, ampak zažene preostanek kode.
Torej v blokih Try imamo kodo, ki bo prebrala serijsko komunikacijo in jo nato poslala v našo bazo podatkov MySQL.
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humidlist = arduino.readlines (3)
Zgornja koda je torej za branje vrstic v serijski komunikaciji. Številka na koncu kode določa vrstico, ki je bila prebrana v zaporedju. Zato so te vrstice razvrščene v različne spremenljivke.
Ko smo prejeli podatke iz Arduina, smo za pošiljanje podatkov na strežnik MySQL uporabili modul mysqlclient.
db = _mysql.connect (gostitelj = "sql7.freemysqlhosting.net", uporabnik = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Ta vrstica je za povezavo z našo bazo podatkov MySQL. Določa strežnik, uporabniško ime, geslo in bazo podatkov, s katero se mora povezati v strežniku. Tu morate določiti povezavo z bazo podatkov MySQL.
db.query ("INSERTINTO` TempHumid` (`temp`,` humid`, `hygro`) VREDNOSTI (%s, %s, %s)" %(temp, vlažno, higro))
Torej vzamemo našo povezavo z DB in izvedemo poizvedbo SQL. Poizvedba pravi, da je treba vrednosti vnesti v tabelo »TempHumid« in nato v stolpce »temp«, »vlažno« in »higro«. Zadnji del »(%s, %s, %s)« je oblikovanje nizov in se uporablja za podajanje oblike zapisa zbirki podatkov.
In vse to dejanje je postavljeno v zanko while, tako da še naprej pošiljamo podatke na strežnik MySQL.
Če želite videti vso kodo, prenesite skript python (TempHumid.py).
9. korak: MySQL
Za strežnik MySQL smo uporabili brezplačno storitev na www.freemysqlhosting.net. Lahko bi naredili strežnik lokalno na Raspberry Pi, vendar smo z brezplačno storitvijo poskrbeli, da je popolnoma povezan z oblakom/internetom.
Za dostop do MySQL morate iti na phpmyadmin.co in se prijaviti s poverilnicami iz svojega računa freemysqlhosting.
Ko ste notri, morate ustvariti tabelo z imenom "TempHumid", znotraj te tabele pa morate ustvariti 4 stolpce, imenovane "ID", "temp", "humid" in "hygro". V prvem stolpcu (ID) morate označiti polje A_I (Samodejno povečanje). To je zato, da stolpec ID vsakemu nizu podatkov dodeli ID. Vse naslednje stolpce je treba nastaviti kot INT (celo število) in standardno vrednost nastaviti na NULL.
10. korak: Node-Red
V našem projektu smo za izdelavo grafičnega vmesnika uporabili Node-Red. Node-Red deluje na Raspberry Pi in zbira podatke iz naše zbirke podatkov MySQL in prikazuje te podatke z merilniki v obliki krofa in grafičnimi grafikoni, tako da lahko končni uporabnik spremlja podatke. Najbolj pametno pri Node-Redu je, da si ga je mogoče ogledati na kateri koli napravi, kar pomeni, da se bo velikost strani spremenila za dano napravo, ki gleda vsebino.
Če želite namestiti naše programiranje Node-Red, si oglejte 1. korak in prenesite dokument z imenom "Node-Red.docx". Nato kopirajte in prilepite besedilo v Node-Red s funkcijo uvoza v zgornjem desnem kotu.
Po tem spremenite nastavitve baze podatkov za vašo bazo podatkov MySQL.
Priporočena:
Samodejni notranji rastlinjak na osnovi Ikee Socker: 5 korakov
Samodejni notranji rastlinjak na osnovi Ikee Socker: Živjo, to je moj prvi pouk. S to skupnostjo sem se veliko naučil in mislim, da je čas, da vrnem svoje skromne ideje. Žal mi je za moj angleški jezik, je slab, vendar bom naredil vse, kar je v moji moči. Ideja je bila narediti rastlinjak deskop, ki mi bo omogočil gojenje semen in
Odličen rastlinjak s samodejnim zalivanjem, internetno povezavo in še veliko več: 7 korakov (s slikami)
Čudovit rastlinjak s samodejnim zalivanjem, internetno povezavo in še veliko več: Dobrodošli v tem navodilu. Na začetku marca sem bil v vrtni trgovini in videl nekaj rastlinjakov. In ker sem že dolgo želel narediti projekt z rastlinami in elektroniko, sem šel naprej in ga kupil: https://www.instagram.com/p
MAG (miniaturni avtomatski rastlinjak): 9 korakov
MAG (Miniaturni avtomatski rastlinjak): Moja mama je večinoma precej zaposlena. Zato sem ji želel pomagati z avtomatizacijo rastlinjakov. Tako lahko prihrani nekaj časa, saj ji rastlin ne bo treba zalivati. To bom dosegel z MAG (Miniature Automatic Garden). Tako kot v
IGreenhouse - Inteligentni rastlinjak: 17 korakov (s slikami)
IGreenhouse - Inteligentni rastlinjak: Domače sadje in zelenjava sta pogosto boljša od tistih, ki jih kupujete, včasih pa lahko izgubite pogled na svoj rastlinjak. V tem projektu bomo naredili inteligentni rastlinjak. Ta rastlinjak bo samodejno odprl in zaprl okna in vrata
Škatla s senzorji za rastlinjak: 5 korakov
Škatla s senzorji za rastlinjak: Hej. Širši družbi želim predstaviti še en svoj projekt. Namen projekta je avtomatizirati rastlinjak, ki sem ga zgradil na svojem dvorišču. To je prvi korak- ustvarjanje kompleksa senzorjev za rastlinjak. Kasneje v prihodnosti na podlagi