Sisällysluettelo:

UCL - IIOT Kasvihuone: 11 vaihetta
UCL - IIOT Kasvihuone: 11 vaihetta

Video: UCL - IIOT Kasvihuone: 11 vaihetta

Video: UCL - IIOT Kasvihuone: 11 vaihetta
Video: UCL-IIoT-Datalogger 2024, Heinäkuu
Anonim
UCL - IIOT Kasvihuone
UCL - IIOT Kasvihuone

Tämä projekti on jatkoa aikaisemmalle Greenhouse-hankkeellemme (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Tässä projektissa lisäsimme tietokannan, johon kirjaamme kaikki tietomme ja visualisoimme ne sitten solmupunaisella saadaksesi paremman yleiskuvan.

Tietokantaamme kirjaama sisältö on maaperän kosteus, lämpötila ja kosteus, jotka näkyvät eri kaavioissa.

Datalogginin lisäksi voimme myös hallita, mikä profiili on aktiivinen kasvihuoneessa ja etäohjata sitä.

Sitten voimme myös ohjata pumppua ja tuuletinta manuaalisesti.

Vaihe 1: Asennusopas

Asennusohje
Asennusohje

Ensimmäinen askel on asentaa kaikki eri komponentit.

Suluissa () on lueteltu, mihin komponentti on kytketty. Esimerkiksi Arduino on kytketty Raspberry Pi -laitteeseen USB -kaapelilla.

Käytetty laitteisto:

  • Arduino (Vadelma Pi)
  • Raspberry Pi 3 B+
  • Maaperän kosteusmittari (Arduino)
  • DHT11 -anturi (Arduino)
  • HG-320 upotettava vesipumppu (rele)
  • 5V rele (Arduino)
  • Tietokoneen tuuletin (rele)
  • 230V virtalähde (pumppu)

Käytetty ohjelmisto:

  • Raspbian (käyttöjärjestelmä Raspberry Pi: lle)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Solmu-punainen (Raspberry Pi)- Pythonshell- Yhteenveto- MySQL- Kojelauta
  • MySQL -palvelin (freemysqlhosting.net)

Ensin sinun on liitettävä laitteistokomponentit, joten rakenna kasvihuone noudattamalla tätä opasta: Asennusopas.

Sitten sinun on asennettava Raspbian OS Raspberry Pi -laitteeseesi. Tämän jälkeen sinun on asennettava Python ja asennettava sitten python -kirjastot.

Seuraava askel on asentaa Node-Red Raspberry Pi -laitteeseen ja siirtyä sitten palettienhallintaan ja asentaa aiemmin mainitut moduulit.

Siirry sitten tälle sivustolle Ilmainen MySQL -palvelin ja luo ilmainen MySQL -palvelin.

Kun kaikki tämä on tehty, olet valmis siirtämään python-komentosarjan Raspberry Pi -laitteeseesi, tuomaan Node-Red-komentosarjan ja lataamaan Arduinon koodin.

Vaihe 2: Hallinnan esittely

Image
Image

Vaihe 3: Projektissa käytettyjen osien/ohjelmistojen luettelo

Olemme käyttäneet kasvihuoneen valmistuksessa seuraavaa tekniikkaa

  • Arduino
  • Raspberry Pi
  • Solmu-Punainen
  • Python
  • PHPMyAdmin

Vaihe 4: I/0 -luettelo

Kytkentäkaavio
Kytkentäkaavio

Vaihe 5: Kytkentäkaavio

Vaihe 6: Arduino -koodi

Arduino -koodi toimii tulostamalla anturien mittaamat tiedot sarjaliitäntään, josta Raspberry Pi lukee ja siirtää tietokantaan.

Arduinolla on myös joitain digitaalisia sisääntulonappeja, jotka on liitetty Raspberry Pi -laitteeseen, jonka Arduino lukee ja jos kolmesta kolmesta tulee HIGH, profiili muuttuu IF -lausekkeen vuoksi.

Olemme myös päivittäneet koodin käyttämään Milliä viiveen sijasta, mikä mahdollistaa koodin päiden ja muun koodin lukemisen koko ajan vanhan viiveen sijaan.

Vaihe 7: Raspberry Pi 3 B+

Raspberry Pi 3 B+
Raspberry Pi 3 B+

Käytimme Raspberry Pi 3 B+ -laitetta Arduinon yhdistämiseen Internetiin ja MySQL -tietokantaan. Tämä mahdollisti sen, että voimme tallentaa antureidemme tietoja ja luoda visuaalisen käyttöliittymän loppukäyttäjälle. Käyttöliittymässä käytimme Node-Redia Dashboard-paletin kanssa.

Mutta ennen kuin voisimme näyttää anturitietomme solmupunaisella, tarvitsimme tavan ladata tiedot MySQL-tietokantaan, ja teimme sitä varten Python-komentosarjan, joka toimisi Raspberry Pi -laitteellamme.

Vaihe 8: Python

Python
Python

Python-komentosarjaa käytetään tietojen vastaanottamiseen Arduinolta tulevasta sarjaliikenteestä. Sitten skripti lähettää tiedot MySQL -tietokantaan.

Käytimme kahta kirjastoa, pyserial ja mysqlclient.

Joten ensimmäinen askel olisi ladata nämä kaksi kirjastoa:

  1. PySerial
  2. MySQLclient

PySerialia käytetään tietojen keräämiseen Arduinosta sarjaliikenteen kautta.

device = '/dev/ttyUSB0'

arduino = sarja. sarja (laite, 9600)

Ensimmäistä riviä käytetään COM-porttimme määrittämiseen. Raspberry Pi -laitteessa se on /dev /ttyUSB0, jota käytämme Arduinossa. Toinen rivi on sarjaportin avaaminen Arduinolle. Määritämme vain, mikä COM-portti ja millä nopeudella yhteys toimii.

Loput koodista ovat käynnissä jonkin aikaa.

Seuraavaksi käytämme useita Try and Except -lohkoja. Ensin koodi yrittää ajaa Try -lohkon sisällä, jos se epäonnistuu, se suorittaa Except -lohkon. Mutta jos Kokeile -lohko toimii hyvin, se ei suorita Paitsi -lohkoa, se ajaa vain loput koodista.

Joten Try-lohkojen sisällä on koodi, joka lukee sarjaliikenteen ja lähettää sen sitten MySQL-tietokantaamme.

hygrolist = arduino.readlines (1)

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

Yllä oleva koodi on siis sarjaliikenteen rivien lukemiseen. Koodin lopussa oleva numero määrittelee sarjassa luetun rivin. Joten nämä rivit luokitellaan eri muuttujiin.

Kun tiedot Arduinolta vastaanotetaan, käytimme mysqlclient -moduulia tietojen lähettämiseen MySQL -palvelimellemme.

db = _mysql.connect (isäntä = "sql7.freemysqlhosting.net", user = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

Tämä rivi on tarkoitettu yhteyden muodostamiseen MySQL -tietokantaamme. Se määrittää palvelimen, käyttäjätunnuksen, salasanan ja mihin tietokantaan se muodostaa yhteyden palvelimen sisällä. Tässä sinun on määritettävä yhteys MySQL -tietokantaasi.

db.query ("INSERTINTO` TempHumid "(` lämpötila ",` kostea`, `hygro`) ARVOT (%s, %s, %s)" %(lämpötila, kostea, hygro))

Joten tässä otamme DB -yhteyden ja teemme SQL -kyselyn. Kysely sanoo, että arvot on lisättävä taulukon "TempHumid" sisälle ja sitten sarakkeisiin "temp", "humid" ja "hygro". Viimeinen osa "(%s, %s, %s)" on merkkijonomuotoilu ja sitä käytetään antamaan tietokannalle muoto, jonka se voi lukea.

Ja kaikki tämä toiminto on sijoitettu hetken silmukkaan, jotta saamme jatkuvasti tietoja MySQL -palvelimelle.

Jos haluat nähdä koko koodin, lataa python -komentosarja (TempHumid.py).

Vaihe 9: MySQL

MySQL
MySQL
MySQL
MySQL

MySQL -palvelimelle käytimme ilmaista palvelua osoitteessa www.freemysqlhosting.net. Olisimme voineet tehdä palvelimen paikallisesti Raspberry Pi: llä, mutta menimme ilmaisen palvelun kanssa tekemään siitä täydellisen yhteyden pilveen/Internetiin.

Päästäksesi MySQL: ään sinun on mentävä osoitteeseen phpmyadmin.co ja kirjauduttava sisään freemysqlhosting -tilisi tunnistetiedoilla.

Kun olet sisällä, sinun on luotava taulukko nimeltä "TempHumid", tämän taulukon sisälle sinun on luotava 4 saraketta nimeltä "ID", "temp", "kostea" ja "hygro". Ensimmäisessä sarakkeessa (ID) on valittava ruutu A_I (automaattinen lisäys). Näin ID -sarake antaa jokaiselle tietojoukolle tunnuksen. Kaikki seuraavat sarakkeet on asetettava INT (kokonaisluku) -arvoksi ja vakioarvoksi on asetettava NULL.

Vaihe 10: Solmu-punainen

Solmu-Punainen
Solmu-Punainen
Solmu-Punainen
Solmu-Punainen
Solmu-Punainen
Solmu-Punainen

Projektissamme käytimme solmupunaista graafisen käyttöliittymän luomiseen. Node-Red toimii Raspberry Pi -laitteella ja kerää tietoja MySQL-tietokannastamme ja näyttää nämä tiedot donitsin muotoisilla mittareilla ja graafisilla kaavioilla, jotta loppukäyttäjä voi seurata tietoja. Node-Redin älykäs asia on, että sitä voi katsella millä tahansa laitteella, mikä tarkoittaa, että sivuston kokoa muutetaan sille laitteelle, joka katselee sisältöä.

Jos haluat asentaa solmu-punaisen ohjelmointimme, katso vaihe 1 ja lataa asiakirja nimeltä "Node-Red.docx". Kopioi ja liitä teksti solmupunaiseksi oikeassa yläkulmassa olevan tuontitoiminnon avulla.

Muuta sen jälkeen MySQL DB: n DB -asetuksia.

Suositeltava: