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, Srpanj
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 vlaga 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 također možemo 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. Tako je, na primjer, Arduino povezan s Raspberry Pi putem USB kabela.

Korišteni hardver:

  • Arduino (Raspberry Pi)
  • Malina Pi 3 B+
  • Higrometar tla (Arduino)
  • Senzor DHT11 (Arduino)
  • Potopna pumpa za vodu (relejna) HG-320
  • 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 poslužitelj (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 knjižnice.

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 stranicu Besplatni MySQL poslužitelj i stvorite besplatni MySQL poslužitelj.

Kad sve to učinite, 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: Popis dijelova/softvera korištenih u projektu

Za izradu staklenika koristili smo sljedeću tehnologiju

  • Arduino
  • Malina Pi
  • Čvor-Crveno
  • Piton
  • PHPMyAdmin

Korak 4: Popis I/0

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 kôd tako da koristi Millis umjesto odgode koja omogućuje da se gume i ostatak koda čitaju cijelo vrijeme umjesto intervala po starom kašnjenju.

Korak 7: Malina 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 s 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 prijenos podataka u bazu podataka MySQL, a za to smo napravili Python skriptu koja će se izvoditi na našem Raspberry Pi.

Korak 8: Python

Piton
Piton

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

Koristili smo dvije knjižnice, pyserial i mysqlclient.

Dakle, prvi korak bio bi preuzimanje ove dvije knjižnice:

  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)

Prvi redak koristi se za definiranje našeg COM-porta. Na Raspberry Pi -u koristimo /dev /ttyUSB0 za Arduino. Druga linija služi 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 izvodi 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 kôd služi za čitanje redaka 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.

Kad su primljeni podaci s Arduina, koristili smo modul mysqlclient 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 poslužitelj, korisničko ime, lozinku i bazu podataka s kojom bi se trebao povezati unutar poslužitelja. Ovdje biste trebali navesti vezu s MySQL DB.

db.query ("UMETNI` TempHumid` (`temp`,` vlažan`, `higro`) 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 sva se ta radnja stavlja u vremensku petlju, tako da neprestano šaljemo podatke na MySQL poslužitelj.

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

Korak 9: MySQL

MySQL
MySQL
MySQL
MySQL

Za MySQL poslužitelj koristili smo besplatnu uslugu na www.freemysqlhosting.net. Mogli smo napraviti poslužitelj 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 s vjerodajnicama sa svog računa freemysqlhosting.

Kad ste unutra, morate stvoriti tablicu pod nazivom "TempHumid", unutar ove tablice morate stvoriti 4 stupca zvana "ID", "temp", "humid" i "hygro". U prvom stupcu (ID) morate označiti okvir A_I (Automatsko povećanje). Tako 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

Čvor-Crveno
Čvor-Crveno
Čvor-Crveno
Čvor-Crveno
Čvor-Crveno
Čvor-Crveno

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 te prikazuje te podatke mjeračima u obliku krafni i grafičkim grafikonima, tako da krajnji korisnik može pratiti podatke. Pametna stvar u vezi s Node-Redom je š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 1. korak 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čeni: