Cuprins:
- Pasul 1: Ghid de instalare
- Pasul 2: Vitrina de control
- Pasul 3: Lista pieselor / software-urilor utilizate în proiect
- Pasul 4: Lista I / 0
- Pasul 5: Diagrama de cablare
- Pasul 6: Codul Arduino
- Pasul 7: Raspberry Pi 3 B +
- Pasul 8: Python
- Pasul 9: MySQL
- Pasul 10: Nod-Roșu
Video: Seră UCL - IIOT: 11 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Acest proiect este o extensie a proiectului nostru anterior cu sera (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
În acest proiect am adăugat o bază de date, unde ne înregistrăm toate datele și apoi le vizualizăm cu nod roșu pentru o prezentare mai bună.
Conținutul pe care îl conectăm în baza noastră de date este Umiditatea, Temperatura și umiditatea solului, care este prezentat în diferite diagrame.
Pe lângă dataloggin, putem controla și ce profil este activ în seră și îl putem controla de la distanță.
Apoi, putem controla manual pompa și ventilatorul.
Pasul 1: Ghid de instalare
Primul pas este instalarea tuturor componentelor.
În interiorul parantezelor (), am enumerat unde este conectată componenta. De exemplu, Arduino este conectat la Raspberry Pi printr-un cablu USB.
Hardware folosit:
- Arduino (Raspberry Pi)
- Raspberry Pi 3 B +
- Higrometru pentru sol (Arduino)
- Senzor DHT11 (Arduino)
- HG-320 Pompa submersibilă de apă (releu)
- Releu 5V (Arduino)
- Un ventilator de computer (releu)
- Alimentare 230V (pompa)
Software folosit:
- Raspbian (SO pentru Raspberry Pi)
- IDE Arduino
- Python (Raspberry Pi) - PySerial- MySQLclient
- Node-Red (Raspberry Pi) - Pythonshell- Summariser- MySQL- Dashboard
- Server MySQL (freemysqlhosting.net)
Mai întâi va trebui să conectați componentele hardware, deci urmați acest ghid pentru a construi sera: Ghid de instalare.
Apoi va trebui să instalați Raspbian OS pe Raspberry Pi. După aceea, va trebui să instalați Python, apoi să instalați bibliotecile Python.
Următorul pas este instalarea Node-Red pe Raspberry Pi, apoi navigați la managerul de palete și instalați modulele menționate anterior.
Apoi accesați acest site Server MySQL gratuit și creați un server MySQL gratuit.
Când toate acestea sunt terminate, sunteți gata să transferați scriptul python pe Raspberry Pi, să importați scriptul Node-Red și să încărcați codul pentru Arduino.
Pasul 2: Vitrina de control
Pasul 3: Lista pieselor / software-urilor utilizate în proiect
Am folosit următoarea tehnologie pentru a crea sera
- Arduino
- Raspberry Pi
- Nod-roșu
- Piton
- PHPMyAdmin
Pasul 4: Lista I / 0
Pasul 5: Diagrama de cablare
Pasul 6: Codul Arduino
Codul Arduino funcționează prin imprimarea datelor, măsurate de senzori, la conexiunea serială unde este citită de Raspberry Pi și transferată în baza de date.
Arduino are, de asemenea, câteva pinuri de intrare digitale conectate la Raspberry Pi pe care le citește Arduino și dacă unul dintre cele trei devine HIGH, profilul se va schimba din cauza unei instrucțiuni IF.
De asemenea, am actualizat codul pentru a utiliza Millis în loc de întârziere, care permite citirea continuă a fundului și a restului codului în loc de un interval de întârziere veche.
Pasul 7: Raspberry Pi 3 B +
Am folosit un Raspberry Pi 3 B + pentru conectarea Arduino-ului nostru la internet și la o bază de date MySQL. Acest lucru ne-a făcut posibil să stocăm date de la senzorii noștri și să creăm o interfață vizuală pentru utilizatorul final. Pentru interfața cu utilizatorul am folosit Node-Red cu paleta Dashboard.
Dar, înainte de a putea arăta datele senzorilor pe Node-Red, aveam nevoie de o modalitate de a încărca datele pe o bază de date MySQL și, pentru aceasta, am creat un script Python care să ruleze pe Raspberry Pi.
Pasul 8: Python
Scriptul Python este utilizat pentru primirea datelor de la comunicarea în serie provenind de la Arduino. Scriptul trimite apoi datele către o bază de date MySQL.
Am folosit două biblioteci, pyserial și mysqlclient.
Deci, primul pas ar fi descărcarea acestor două biblioteci:
- PySerial
- MySQLclient
PySerial este utilizat pentru colectarea datelor de pe Arduino prin comunicare în serie.
device = '/ dev / ttyUSB0'
arduino = serial. Serial (dispozitiv, 9600)
Prima linie este utilizată pentru definirea portului nostru COM. Pe Raspberry Pi este / dev / ttyUSB0, pe care îl folosim pentru Arduino. A doua linie este pentru deschiderea portului serial către Arduino. Tocmai definim la ce port COM și la ce viteză rulează conexiunea.
Restul codului rulează într-o buclă while.
Apoi vom folosi mai multe blocuri Try and Except. Mai întâi, codul încearcă să ruleze în interiorul blocului Try, dacă nu reușește, atunci rulează blocul Except. Dar dacă blocul Încercați funcționează bine, nu rulează blocul Except, ci doar restul codului.
Deci, în interiorul blocurilor Încercați avem un cod care va citi comunicarea în serie și apoi îl va trimite la baza noastră de date MySQL.
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humidlist = arduino.readlines (3)
Deci, codul de mai sus este pentru citirea liniilor în comunicarea în serie. Numărul de la sfârșitul codului definește linia care a fost citită în serial. Deci, aceste linii sunt clasificate în diferite variabile.
Când sunt primite date de la Arduino, am folosit modulul mysqlclient pentru trimiterea datelor către serverul nostru MySQL.
db = _mysql.connect (host = "sql7.freemysqlhosting.net", user = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Această linie este pentru conectarea la baza noastră de date MySQL. Specifică serverul, numele de utilizator, parola și baza de date la care ar trebui să se conecteze. Aici trebuie să specificați conexiunea la baza de date MySQL.
db.query ( INSERTINTO` TempHumid` (`temp`,` umid`, `hygro`) VALORI (% s,% s,% s)„% (temp, umed, higro))
Deci, aici luăm conexiunea noastră DB și facem o interogare SQL. Interogarea spune că valorile trebuie inserate în tabelul „TempHumid” și apoi în coloanele „temp”, „umed” și „hygro”. Ultima parte „(% s,% s,% s)” este formatarea șirurilor și este utilizată pentru a da bazei de date un format pe care îl poate citi.
Și toată această acțiune este pusă într-o buclă de timp, astfel încât să continuăm să primim date trimise către serverul MySQL.
Dacă doriți să vedeți tot codul, descărcați scriptul python (TempHumid.py).
Pasul 9: MySQL
Pentru serverul MySQL, am folosit un serviciu gratuit pe www.freemysqlhosting.net. Am fi putut crea un server local pe Raspberry Pi, dar am mers cu serviciul gratuit pentru a-l conecta complet la cloud / internet.
Pentru a vă accesa MySQL, trebuie să accesați phpmyadmin.co și să vă conectați cu acreditările din contul dvs. freemysqlhosting.
Când vă aflați în interior, trebuie să creați un tabel numit "TempHumid", în interiorul acestui tabel trebuie să creați 4 coloane numite, "ID", "temp", "umed" și "hygro". Prima coloană (ID) trebuie să bifați caseta A_I (Auto Increment). Aceasta este astfel încât coloana ID să ofere fiecărui set de date un ID. Toate coloanele următoare trebuie să fie setate ca INT (număr întreg) și să seteze valoarea standard la NULL.
Pasul 10: Nod-Roșu
În proiectul nostru am folosit Node-Red pentru realizarea unei interfețe grafice. Node-Red rulează pe Raspberry Pi și colectează date din baza noastră de date MySQL și afișează aceste date cu indicatoare în formă de gogoși și diagrame grafice, astfel încât utilizatorul final să poată monitoriza datele. Lucrul inteligent despre Node-Red este că este vizibil pe orice dispozitiv, ceea ce înseamnă că site-ul va fi redimensionat pentru dispozitivul dat care vizualizează conținutul.
Pentru a instala programarea noastră Node-Red, consultați pasul 1 și descărcați documentul numit „Node-Red.docx”. Apoi copiați și lipiți textul în Node-Red prin intermediul funcției de import din colțul din dreapta sus.
După aceea modificați setările DB pentru MySQL DB.
Recomandat:
Seră interioară automată bazată pe Ikea Socker: 5 pași
Seră interioară automată bazată pe Ikea Socker: Bună, acesta este primul meu instructable. Am învățat multe cu această comunitate și cred că este timpul să-mi întorc ideile umile. Îmi pare rău pentru limba mea engleză, este săracă, dar voi face tot ce pot. Ideea a fost să fac o seră care să mă lase să cresc semințe și
Seră minunată cu udare automată, conexiune la internet și multe altele: 7 pași (cu imagini)
Seră minunată cu udare automată, conexiune la internet și multe altele: Bine ați venit la acest instructable. La începutul lunii martie, eram într-un magazin de grădină și am văzut câteva sere. Și din moment ce am vrut să fac un proiect cu plante și electronice de mult, am continuat și am cumpărat unul: https://www.instagram.com/p
MAG (seră automată în miniatură): 9 pași
MAG (Miniatura Automatic Greenhouse): Mama mea este de cele mai multe ori destul de ocupată. Așa că am vrut să o ajut automatizând serele. În acest fel, ea poate economisi puțin timp, deoarece nu va trebui să udă plantele. Voi reuși acest lucru cu MAG (Miniature Automatic Garden). Ca și în
IGreenhouse - Seră inteligentă: 17 pași (cu imagini)
Seră - Seră inteligentă: fructele și legumele cultivate în casă sunt adesea mai bune decât cele pe care le cumpărați, dar uneori puteți pierde din vedere sera. În acest proiect vom face o seră inteligentă. Această seră își va deschide și închide automat ferestrele și ușa
Cutie senzori pentru seră: 5 pași
Cutie senzori pentru seră: Hei. Vreau să mai prezint un proiect al meu societății largi. Proiectul își propune să automatizeze sera pe care am construit-o în curtea mea. Acesta este primul pas - crearea unui complex de senzori pentru seră. Mai târziu în viitor, pe baza