Sadržaj:

UCL - IIOT staklenik: 11 koraka
UCL - IIOT staklenik: 11 koraka

Video: UCL - IIOT staklenik: 11 koraka

Video: UCL - IIOT staklenik: 11 koraka
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Juli
Anonim
UCL - IIOT staklenik
UCL - IIOT staklenik

Ovaj projekt je produžetak našeg ranijeg projekta sa Staklenikom (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

U ovaj projekt dodali smo bazu podataka u koju zapisujemo sve svoje podatke, a zatim ih vizualiziramo crvenim čvorom za bolji pregled.

Sadržaj koji prijavljujemo u našu bazu podataka je Vlažnost, Temperatura i vlažnost tla, što je prikazano na različitim dijagramima.

Osim dataloggin -a, također možemo kontrolirati koji je profil aktivan u stakleniku i daljinski ga kontrolirati.

Tada smo u mogućnosti i ručno upravljati pumpom i ventilatorom.

Korak 1: Vodič za instalaciju

Vodič za instalaciju
Vodič za instalaciju

Prvi korak je instaliranje svih različitih komponenti.

Unutar zagrada () naveli smo gdje je komponenta spojena. Na primjer, Arduino je povezan s Raspberry Pi putem USB kabela.

Korišteni hardver:

  • Arduino (Raspberry Pi)
  • Malina Pi 3 B+
  • Higrometar tla (Arduino)
  • DHT11 senzor (Arduino)
  • HG-320 Potopna pumpa za vodu (relejna)
  • 5V relej (Arduino)
  • Računarski ventilator (relej)
  • 230V napajanje (pumpa)

Korišteni softver:

  • Raspbian (OS za Raspberry Pi)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Nadzorna ploča
  • MySQL server (freemysqlhosting.net)

Prvo ćete morati spojiti hardverske komponente, pa slijedite ovaj vodič za izgradnju staklenika: Vodič za instalaciju.

Tada ćete morati instalirati Raspbian OS na svoj Raspberry Pi. Nakon toga ćete morati instalirati Python, a zatim instalirati python biblioteke.

Sljedeći korak je instaliranje Node-Red na Raspberry Pi, a zatim idite do upravitelja paleta i instalirajte module navedene ranije.

Zatim idite na ovu web lokaciju Free MySQL Server i kreirajte besplatni MySQL server.

Kad sve ovo obavite, spremni ste za prijenos python skripte na svoj Raspberry Pi, uvoz Node-Red skripte i učitavanje koda za Arduino.

Korak 2: Izlog kontrole

Image
Image

Korak 3: Lista dijelova/softvera koji se koriste u projektu

Za izradu staklenika koristili smo sljedeću tehnologiju

  • Arduino
  • Raspberry Pi
  • Node-Red
  • Python
  • PHPMyAdmin

Korak 4: I/0 lista

Shema ožičenja
Shema ožičenja

Korak 5: Shema ožičenja

Korak 6: Arduino kod

Arduino kôd radi ispisujući podatke, mjerene senzorima, na serijsku vezu gdje ih čita Raspberry Pi i prenosi u bazu podataka.

Arduino također ima neke digitalne ulazne priključke povezane s Raspberry Pi koje Arduino čita i ako jedno od tri postane VISOKO profil će se promijeniti zbog IF naredbe.

Također smo nadogradili kod tako da koristi Millis umjesto odgode koja omogućava da se zadnjice i ostatak koda čitaju cijelo vrijeme umjesto intervala po starom kašnjenju.

Korak 7: Raspberry Pi 3 B+

Malina Pi 3 B+
Malina Pi 3 B+

Koristili smo Raspberry Pi 3 B+ za povezivanje našeg Arduina s internetom i MySQL bazom podataka. To nam je omogućilo pohranu podataka sa naših senzora i izradu vizualnog sučelja za krajnjeg korisnika. Za korisničko sučelje koristili smo Node-Red s paletom nadzorne ploče.

No, prije nego što smo mogli prikazati naše senzorske podatke na Node-Redu, trebao nam je način za postavljanje podataka u MySQL bazu podataka, a za to smo napravili Python skriptu koja će se izvoditi na našem Raspberry Pi.

Korak 8: Python

Python
Python

Python skripta se koristi za prijem podataka iz serijske komunikacije koja dolazi sa Arduina. Skripta zatim šalje podatke u bazu podataka MySQL.

Koristili smo dvije biblioteke, pyserial i mysqlclient.

Dakle, prvi korak bi bio preuzimanje ove dvije biblioteke:

  1. PySerial
  2. MySQLclient

PySerial se koristi za prikupljanje podataka s Arduina putem serijske komunikacije.

uređaj = '/dev/ttyUSB0'

arduino = serijski. Serijski (uređaj, 9600)

Prva linija koristi se za definiranje našeg COM-porta. Na Raspberry Pi -u koristimo /dev /ttyUSB0 za Arduino. Druga linija je za otvaranje serijskog porta za Arduino. Samo definiramo koji COM-port i kojom brzinom se veza povezuje.

Ostatak koda radi u while petlji.

Zatim koristimo više blokova Try i Except. Prvo se kôd pokušava pokrenuti unutar bloka Try, ako to ne uspije, tada pokreće blok Except. Ali ako blok Try radi dobro, ne pokreće blok Except, već samo pokreće ostatak koda.

Dakle, unutar blokova Try imamo kod koji će čitati serijsku komunikaciju, a zatim je poslati u našu MySQL bazu podataka.

hygrolist = arduino.readlines (1)

templist = arduino.readlines (2) humidlist = arduino.readlines (3)

Dakle, gornji kod služi za čitanje redova u serijskoj komunikaciji. Broj na kraju koda definira redak koji je pročitan u serijskom broju. Dakle, ove su linije kategorizirane u različite varijable.

Kada su primljeni podaci s Arduina, koristili smo mysqlclient modul za slanje podataka na naš MySQL poslužitelj.

db = _mysql.connect (host = "sql7.freemysqlhosting.net", korisnik = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

Ova linija služi za povezivanje s našom MySQL bazom podataka. Određuje server, korisničko ime, lozinku i bazu podataka s kojom bi se trebao povezati unutar poslužitelja. Ovdje trebate navesti vezu sa MySQL DB.

db.query ("INSERTINTO` TempHumid` (`temp`,` humid`, `hygro`) VRIJEDNOSTI (%s, %s, %s)" %(temp, vlažno, higro))

Dakle, ovdje uzimamo našu DB vezu i postavljamo SQL upit. Upit kaže da se vrijednosti moraju umetnuti unutar tablice "TempHumid", a zatim u stupce "temp", "humid" i "hygro". Posljednji dio “(%s, %s, %s)” je oblikovanje niza i koristi se za davanje bazi podataka formata koji može čitati.

I sve ove radnje stavljaju se u while petlju, tako da neprestano šaljemo podatke na MySQL server.

Ako želite vidjeti sav kôd, preuzmite python skriptu (TempHumid.py).

Korak 9: MySQL

MySQL
MySQL
MySQL
MySQL

Za MySQL server koristili smo besplatnu uslugu na www.freemysqlhosting.net. Mogli smo napraviti server lokalno na Raspberry Pi -u, ali smo otišli s besplatnom uslugom kako bismo ga potpuno povezali s oblakom/internetom.

Da biste pristupili svom MySQL -u, morate otići na phpmyadmin.co i prijaviti se sa vjerodajnicama sa svog računa freemysqlhosting.

Kad ste unutra, morate stvoriti tablicu pod nazivom "TempHumid", unutar ove tablice morate stvoriti 4 kolone pod nazivom "ID", "temp", "vlažno" i "higro". U prvoj koloni (ID) morate označiti okvir A_I (Automatsko povećanje). To je tako da stupac ID svakom skupu podataka daje ID. Svi sljedeći stupci moraju biti postavljeni kao INT (cijeli broj) i postaviti standardnu vrijednost na NULL.

Korak 10: Node-Red

Node-Red
Node-Red
Node-Red
Node-Red
Node-Red
Node-Red

U našem projektu koristili smo Node-Red za izradu grafičkog sučelja. Node-Red radi na Raspberry Pi-u i prikuplja podatke iz naše MySQL baze podataka i prikazuje te podatke mjeračima u obliku krofni i grafičkim grafikonima, tako da krajnji korisnik može pratiti podatke. Pametna stvar u vezi s Node-Redom je to što se može vidjeti na bilo kojem uređaju, što znači da će se veličina web stranice promijeniti za dati uređaj koji pregledava sadržaj.

Da biste instalirali naše programiranje Node-Red, pogledajte korak 1 i preuzmite dokument pod nazivom "Node-Red.docx". Zatim kopirajte i zalijepite tekst u Node-Red putem funkcije uvoza u gornjem desnom kutu.

Nakon toga promijenite postavke baze podataka za MySQL DB.

Preporučuje se: