Turinys:
- 1 žingsnis: diegimo vadovas
- 2 žingsnis: Valdymo demonstravimas
- 3 žingsnis: Projekte naudojamų dalių/programinės įrangos sąrašas
- 4 žingsnis: I/0 sąrašas
- 5 žingsnis: laidų schema
- 6 žingsnis: „Arduino“kodas
- 7 žingsnis: Raspberry Pi 3 B+
- 8 žingsnis: „Python“
- 9 veiksmas: „MySQL“
- 10 žingsnis: mazgas raudonas
Video: UCL - IIOT šiltnamis: 11 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Šis projektas yra mūsų ankstesnio projekto su šiltnamiu pratęsimas (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
Šiame projekte mes pridėjome duomenų bazę, kurioje registruojame visus savo duomenis ir vizualizuojame juos naudodami mazgą raudona, kad gautumėte geresnę apžvalgą.
Turinys, kurį registruojame savo duomenų bazėje, yra dirvožemio drėgnumas, temperatūra ir drėgmė, kuris parodytas skirtingose diagramose.
Be duomenų katalogo, mes taip pat galime valdyti, kuris profilis yra aktyvus šiltnamyje, ir nuotoliniu būdu jį valdyti.
Tada mes taip pat galime rankiniu būdu valdyti siurblį ir ventiliatorių.
1 žingsnis: diegimo vadovas
Pirmasis žingsnis yra įdiegti visus skirtingus komponentus.
Skliausteliuose () mes nurodėme, kur komponentas yra prijungtas. Pavyzdžiui, „Arduino“yra prijungtas prie „Raspberry Pi“per USB kabelį.
Naudota aparatinė įranga:
- „Arduino“(„Raspberry Pi“)
- Raspberry Pi 3 B+
- Dirvožemio higrometras (Arduino)
- DHT11 jutiklis („Arduino“)
- HG-320 povandeninis vandens siurblys (relė)
- 5 V relė („Arduino“)
- Kompiuterio ventiliatorius (relė)
- 230 V maitinimo šaltinis (siurblys)
Naudojama programinė įranga:
- „Raspbian“(„Raspberry Pi“OS)
- „Arduino IDE“
- „Python“(„Raspberry Pi“)- „PySerial“- „MySQLclient“
- Raudonas mazgas (Raspberry Pi)- Pythonshell- Santrauka- MySQL- Prietaisų skydelis
- „MySQL“serveris (freemysqlhosting.net)
Pirmiausia turėsite prijungti aparatūros komponentus, todėl, norėdami pastatyti šiltnamį, vadovaukitės šiuo vadovu: Įdiegimo vadovas.
Tada turėsite įdiegti Raspbian OS savo Raspberry Pi. Po to turėsite įdiegti „Python“ir įdiegti „python“bibliotekas.
Kitas žingsnis yra įdiegti „Node-Red“į „Raspberry Pi“, tada pereiti prie paletės tvarkyklės ir įdiegti anksčiau nurodytus modulius.
Tada eikite į šią svetainę „Free MySQL Server“ir sukurkite nemokamą „MySQL“serverį.
Kai visa tai bus padaryta, būsite pasiruošę perkelti „python“scenarijų į „Raspberry Pi“, importuoti „Node-Red“scenarijų ir įkelti „Arduino“kodą.
2 žingsnis: Valdymo demonstravimas
3 žingsnis: Projekte naudojamų dalių/programinės įrangos sąrašas
Šiltnamiui gaminti panaudojome šią technologiją
- Arduino
- Raspberry Pi
- Mazgas-raudonas
- Python
- PHPMyAdmin
4 žingsnis: I/0 sąrašas
5 žingsnis: laidų schema
6 žingsnis: „Arduino“kodas
„Arduino“kodas spausdina jutiklių išmatuotus duomenis prie nuoseklaus ryšio, kur juos skaito „Raspberry Pi“ir perkelia į duomenų bazę.
„Arduino“taip pat turi keletą skaitmeninių įėjimų, prijungtų prie „Raspberry Pi“, kuriuos skaito „Arduino“ir jei vienas iš trijų tampa HIGH, profilis pasikeis dėl IF teiginio.
Taip pat atnaujinome kodą, kad vietoj delsos būtų naudojamas „Millis“, o tai leidžia visą laiką skaityti užpakalį ir likusią kodo dalį, o ne intervalą pagal seną vėlavimą.
7 žingsnis: Raspberry Pi 3 B+
Norėdami prijungti „Arduino“prie interneto ir „MySQL“duomenų bazės, naudojome „Raspberry Pi 3 B+“. Tai leido mums saugoti jutiklių duomenis ir sukurti vizualią sąsają galutiniam vartotojui. Naudotojo sąsajai naudojome „Node-Red“su prietaisų skydelio palete.
Tačiau prieš parodydami jutiklių duomenis „Node-Red“, mums reikėjo būdų, kaip įkelti duomenis į „MySQL“duomenų bazę, ir tam sukūrėme „Python“scenarijų, kuris veiktų mūsų „Raspberry Pi“.
8 žingsnis: „Python“
„Python“scenarijus naudojamas duomenims iš serijinio ryšio gauti iš „Arduino“. Tada scenarijus siunčia duomenis į „MySQL“duomenų bazę.
Mes naudojome dvi bibliotekas - pyserial ir mysqlclient.
Taigi pirmas žingsnis būtų atsisiųsti šias dvi bibliotekas:
- PySerial
- „MySQLclient“
„PySerial“naudojamas duomenims iš „Arduino“rinkti naudojant serijinį ryšį.
device = '/dev/ttyUSB0'
arduino = serijinis. Serijinis (prietaisas, 9600)
Pirmoji eilutė naudojama mūsų COM prievadui apibrėžti. „Raspberry Pi“yra /dev /ttyUSB0, kurį naudojame „Arduino“. Antroji eilutė skirta atidaryti nuoseklųjį prievadą „Arduino“. Mes tiesiog apibrėžiame, kuris COM prievadas ir kokiu greičiu veikia ryšys.
Likusi kodo dalis vykdoma ciklo ciklu.
Toliau naudojame kelis „Try and Except“blokus. Pirmiausia kodas bando paleisti „Try“bloko viduje, jei nepavyksta, jis paleidžia „Except“bloką. Bet jei „Try“blokas veikia gerai, jis nepaleidžia „Except“bloko, jis tiesiog paleidžia likusį kodą.
Taigi „Try“blokų viduje turime kodą, kuris nuskaitys nuoseklųjį ryšį ir išsiųs jį į mūsų „MySQL“duomenų bazę.
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humidlist = arduino.readlines (3)
Taigi aukščiau pateiktas kodas skirtas eilutinio ryšio eilučių skaitymui. Skaičius kodo pabaigoje apibrėžia eilutę, kuri buvo perskaityta serijoje. Taigi šios eilutės yra suskirstytos į skirtingus kintamuosius.
Kai gaunami duomenys iš „Arduino“, mes naudojome „mysqlclient“modulį duomenims siųsti į „MySQL“serverį.
db = _mysql.connect (host = "sql7.freemysqlhosting.net", user = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Ši linija skirta prisijungti prie mūsų „MySQL“duomenų bazės. Jis nurodo serverį, vartotojo vardą, slaptažodį ir prie kurios duomenų bazės jis turėtų prisijungti prie serverio. Čia turėtumėte nurodyti ryšį su „MySQL DB“.
db.query ("INSERTINTO` TempHumid` (`temp`,` drėgnas`, `hygro`) VERTĖS (%s, %s, %s)" %(temp, drėgna, hygro))
Taigi čia mes paimame DB ryšį ir sukuriame SQL užklausą. Užklausoje teigiama, kad vertės turi būti įterptos į lentelę „TempHumid“, o tada į stulpelius „temp“, „drėgnas“ir „hygro“. Paskutinė dalis „(%s, %s, %s)“yra eilutės formatavimas ir naudojama duomenų bazei suteikti formatą, kurį ji gali skaityti.
Ir visas šis veiksmas yra įtrauktas į tam tikrą ciklą, kad duomenys būtų siunčiami į „MySQL“serverį.
Jei norite pamatyti visą kodą, atsisiųskite „python“scenarijų (TempHumid.py).
9 veiksmas: „MySQL“
„MySQL“serveriui naudojome nemokamą paslaugą svetainėje www.freemysqlhosting.net. Mes galėjome sukurti serverį vietoje „Raspberry Pi“, tačiau pasirinkome nemokamą paslaugą, kad ji būtų visiškai prijungta prie debesies/interneto.
Norėdami pasiekti „MySQL“, turite eiti į phpmyadmin.co ir prisijungti naudodami kredencialus iš savo „freemysqlhosting“paskyros.
Kai esate viduje, turite sukurti lentelę, pavadintą „TempHumid“, šios lentelės viduje turite sukurti 4 stulpelius, pavadintus „ID“, „temp“, „drėgnas“ir „hygro“. Pirmame stulpelyje (ID) turite pažymėti langelį A_I (automatinis padidinimas). Taip stulpelyje ID kiekvienam duomenų rinkiniui suteikiamas ID. Visi šie stulpeliai turi būti nustatyti kaip INT (sveikasis skaičius), o standartinė vertė - NULL.
10 žingsnis: mazgas raudonas
Mūsų projekte grafinei sąsajai sukurti naudojome „Node-Red“. „Node-Red“veikia „Raspberry Pi“ir renka duomenis iš mūsų „MySQL“duomenų bazės ir rodo šiuos duomenis su spurgos formos matuokliais ir grafinėmis diagramomis, kad galutinis vartotojas galėtų stebėti duomenis. Išmanusis „Node-Red“dalykas yra tas, kad jį galima peržiūrėti bet kuriame įrenginyje, o tai reiškia, kad svetainės dydis bus pakeistas tam tikram įrenginiui, kuris peržiūri turinį.
Norėdami įdiegti „Node-Red“programavimą, peržiūrėkite 1 veiksmą ir atsisiųskite dokumentą „Node-Red.docx“. Tada nukopijuokite ir įklijuokite tekstą į „Node-Red“naudodami importavimo funkciją viršutiniame dešiniajame kampe.
Po to pakeiskite „MySQL DB“DB nustatymus.
Rekomenduojamas:
Automatinis šiltnamis patalpose, pagrįstas „Ikea Socker“: 5 žingsniai
Automatinis šiltnamis patalpose, pagrįstas „Ikea Socker“: Sveiki, tai mano pirmasis nurodymas. Su šia bendruomene aš daug išmokau ir manau, kad atėjo laikas grąžinti savo kuklias idėjas. Atsiprašau, kad mano anglų kalba yra prasta, bet aš padarysiu viską, ką galiu. Idėja buvo sukurti šiltnamį, kuris leistų man auginti sėklas ir
Nuostabus šiltnamis su automatiniu laistymu, interneto ryšiu ir dar daugiau: 7 žingsniai (su nuotraukomis)
Nuostabus šiltnamis su automatiniu laistymu, interneto ryšiu ir dar daugiau: Sveiki atvykę į šią instrukciją. Kovo pradžioje buvau sodo parduotuvėje ir pamačiau keletą šiltnamių. Ir kadangi jau seniai norėjau sukurti projektą su augalais ir elektronika, ėmiausi ir nusipirkau: https://www.instagram.com/p
„IGreenhouse“- protingas šiltnamis: 17 žingsnių (su nuotraukomis)
„IGreenhouse“- intelektualus šiltnamis: namuose užauginti vaisiai ir daržovės dažnai būna geresni už tuos, kuriuos perkate, tačiau kartais galite pamiršti savo šiltnamį. Šiame projekte mes pagaminsime protingą šiltnamį. Šis šiltnamis automatiškai atidarys ir uždarys jo langus ir duris
Išmanusis šiltnamis: 12 žingsnių
Išmanusis šiltnamis: Ar kada nors turėjote problemų, kad jūsų šiltnamyje buvo per karšta, todėl visi jūsų augalai mirė, nes pamiršote atidaryti oro išleidimo angas? Nežiūrėkite toliau, išmanusis šiltnamis yra šios problemos sprendimas. Toliau pateikiamas žingsnis kaip tave pastatyti
„TerraDome“: mini tropinis šiltnamis su „Arduino“: 18 žingsnių (su nuotraukomis)
„TerraDome“: mini atogrąžų šiltnamis su „Arduino“: „TerraDome“yra patalpų šiltnamis augalams ir atogrąžų gėlių formos aštuonkampio formos kupolui. Jį valdo „Arduino Mega“, reguliuojanti temperatūrą ir apšvietimą per įvairius jutiklius ir LCD ekraną. Jis taip pat turi duris į Juros periodo parką (arba