Sisukord:

UCL - IIOT kasvuhoone: 11 sammu
UCL - IIOT kasvuhoone: 11 sammu

Video: UCL - IIOT kasvuhoone: 11 sammu

Video: UCL - IIOT kasvuhoone: 11 sammu
Video: UCL-IIoT-Datalogger 2024, Juuli
Anonim
UCL - IIOT kasvuhoone
UCL - IIOT kasvuhoone

See projekt on laiendus meie varasemale projektile Greenhouse'iga (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Sellesse projekti lisasime andmebaasi, kus logime kõik oma andmed ja visualiseerime need seejärel suurema punasega, et saada parem ülevaade.

Meie andmebaasi logitud sisu on mulla niiskus, temperatuur ja niiskus, mis on näidatud erinevatel diagrammidel.

Lisaks andmeallikale saame ka kontrollida, milline profiil on kasvuhoones aktiivne, ja seda kaugjuhtida.

Siis saame ka pumpa ja ventilaatorit käsitsi juhtida.

Samm: paigaldusjuhend

Paigaldusjuhend
Paigaldusjuhend

Esimene samm on kõigi erinevate komponentide installimine.

Sulgudes () oleme loetlenud, kuhu komponent on ühendatud. Nii on näiteks Arduino USB -kaabli kaudu ühendatud Raspberry Pi -ga.

Kasutatud riistvara:

  • Arduino (Vaarika Pi)
  • Vaarika Pi 3 B+
  • Pinnase hügromeeter (Arduino)
  • DHT11 andur (Arduino)
  • HG-320 sukeldatav veepump (relee)
  • 5 V relee (Arduino)
  • Arvuti ventilaator (relee)
  • 230V toide (pump)

Kasutatud tarkvara:

  • Raspbian (Raspberry Pi OS)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Sõlm-punane (Raspberry Pi)- Pythonshell- Kokkuvõte- MySQL- Armatuurlaud
  • MySQL -server (freemysqlhosting.net)

Kõigepealt peate ühendama riistvarakomponendid, seega järgige kasvuhoone ehitamiseks seda juhendit: Installijuhend.

Seejärel peate oma Raspberry Pi -sse installima Raspbian OS -i. Pärast seda peate installima Pythoni ja seejärel installima pythoni teegid.

Järgmine samm on installida Node-Red Raspberry Pi-le ja seejärel navigeerida palettide haldurisse ning installida varem märgitud moodulid.

Seejärel minge sellele saidile Free MySQL Server ja looge tasuta MySQL -server.

Kui see kõik on tehtud, olete valmis pythoni skripti oma Raspberry Pi-sse üle kandma, Node-Red skripti importima ja Arduino koodi üles laadima.

2. samm: kontrolli esitusviis

Image
Image

3. samm: projektis kasutatud osade/tarkvara loend

Kasvuhoone valmistamiseks kasutasime järgmist tehnoloogiat

  • Arduino
  • Vaarika Pi
  • Sõlm-punane
  • Python
  • PHPMyAdmin

Samm 4: I/0 loend

Juhtmestiku skeem
Juhtmestiku skeem

Samm: ühendusskeem

6. samm: Arduino kood

Arduino kood töötab andurite abil mõõdetud andmete trükkimisega jadaühendusse, kus Raspberry Pi loeb neid ja edastab need andmebaasi.

Arduinol on Raspberry Pi -ga ühendatud ka mõned digitaalsed sisendnupud, mida Arduino loeb ja kui üks kolmest muutub HIGH -ks, muutub profiil IF -avalduse tõttu.

Samuti oleme uuendanud koodi, et viivituse asemel kasutada Millist, mis võimaldab vana tagumiku asemel intervallide asemel kogu aeg tagumikke ja ülejäänud koodi lugeda.

7. samm: Vaarika Pi 3 B+

Vaarika Pi 3 B+
Vaarika Pi 3 B+

Arduino ühendamiseks Interneti ja MySQL -i andmebaasiga kasutasime Raspberry Pi 3 B+. See võimaldas meil salvestada anduritelt saadud andmeid ja teha lõppkasutajale visuaalse liidese. Kasutajaliidese jaoks kasutasime juhtpaneeli paletiga sõlme-punast.

Kuid enne, kui saime oma anduriandmeid Node-Redis näidata, oli meil vaja viis MySQL-i andmebaasi andmete üleslaadimiseks ja selleks koostasime Pythoni skripti, mis töötab meie Raspberry Pi-l.

Samm: Python

Python
Python

Pythoni skripti kasutatakse andmete vastuvõtmiseks Arduinost pärinevast jadaühendusest. Seejärel saadab skript andmed MySQL -i andmebaasi.

Kasutasime kahte raamatukogu, pyserial ja mysqlclient.

Nii et esimene samm oleks nende kahe raamatukogu allalaadimine:

  1. PySerial
  2. MySQLclient

PySerialit kasutatakse andmete kogumiseks Arduino jadaühenduse kaudu.

seade = '/dev/ttyUSB0'

arduino = jada. Seeria (seade, 9600)

Esimest rida kasutatakse meie COM-pordi määratlemiseks. Raspberry Pi -l on see /dev /ttyUSB0, mida kasutame Arduino jaoks. Teine rida on jadaporti avamiseks Arduinole. Me lihtsalt määratleme, milline COM-port ja millise kiirusega ühendus töötab.

Ülejäänud kood töötab mõnda aega.

Järgmisena kasutame mitmeid proovi- ja välja arvatud plokke. Esiteks proovib kood käivitada proovimisploki sees, kui see ei õnnestu, käivitab see ploki Välja arvatud. Aga kui proovimisplokk töötab hästi, siis ei tööta see plokk Välja arvatud, vaid lihtsalt käivitab ülejäänud koodi.

Nii et Try-plokkide sees on meil kood, mis loeb jadakommunikatsiooni ja saadab selle seejärel meie MySQL-i andmebaasi.

hygrolist = arduino.readlines (1)

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

Seega on ülaltoodud kood jadakommunikatsiooni ridade lugemiseks. Koodi lõpus olev number määrab jada loetud rea. Seega liigitatakse need read erinevatesse muutujatesse.

Kui Arduino andmed on vastu võetud, kasutasime MySQL -serverisse andmete saatmiseks mysqlclient moodulit.

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

See rida on mõeldud meie MySQL andmebaasiga ühenduse loomiseks. See määrab serveri, kasutajanime, parooli ja millise andmebaasiga peaks serveris ühenduse looma. Siin peaksite määrama ühenduse oma MySQL DB -ga.

db.query ("INSERTINTO` TempHumid` (`temp", `niiske`,` hygro`) VÄÄRTUSED (%s, %s, %s) " %(temp, niiske, hügro))

Siin võtame oma DB ühenduse ja teeme SQL päringu. Päring ütleb, et väärtused tuleb sisestada tabelisse “TempHumid” ning seejärel veergudesse “temp”, “niiske” ja “hygro”. Viimane osa “(%s, %s, %s)” on stringide vormindamine ja seda kasutatakse andmebaasile vormindamiseks, mida see saab lugeda.

Ja kogu see toiming pannakse mõnda aega, nii et me saadame pidevalt andmeid MySQL -serverisse.

Kui soovite näha kogu koodi, laadige alla pythoni skript (TempHumid.py).

Samm: MySQL

MySQL
MySQL
MySQL
MySQL

MySQL -serveri jaoks kasutasime tasuta teenust saidil www.freemysqlhosting.net. Oleksime võinud Raspberry Pi -s kohapeal serveri teha, kuid läksime tasuta teenusega, et muuta see täielikult pilve/Interneti -ühendusega.

MySQL -ile juurdepääsuks peate minema saidile phpmyadmin.co ja logima sisse oma freemysqlhosting konto volitustega.

Kui olete sees, peate looma tabeli nimega "TempHumid", selle tabeli sees peate looma 4 veergu nimega "ID", "temp", "niiske" ja "hygro". Esimeses veerus (ID) peate märkima ruudu A_I (automaatne suurendamine). Seda selleks, et veerg ID annaks igale andmekogumile ID. Kõik järgmised veerud tuleb määrata INT (täisarv) ja määrata standardväärtuseks NULL.

10. samm: sõlme-punane

Sõlm-punane
Sõlm-punane
Sõlm-punane
Sõlm-punane
Sõlm-punane
Sõlm-punane

Meie projektis kasutasime graafilise liidese loomiseks sõlme-punast. Node-Red töötab Raspberry Pi-l ja kogub andmeid meie MySQL-i andmebaasist ning näitab neid andmeid sõõrikukujuliste gabariitide ja graafiliste diagrammidega, et lõppkasutaja saaks andmeid jälgida. Node-Redi nutikas asi on see, et seda saab vaadata mis tahes seadmes, mis tähendab, et saidi suurust muudetakse selle sisu vaatava seadme jaoks.

Node-Red programmeerimise installimiseks vaadake 1. sammu ja laadige alla dokument nimega "Node-Red.docx". Seejärel kopeerige ja kleepige tekst paremas ülanurgas asuva importimisfunktsiooni kaudu sõlme-punasesse.

Pärast seda muutke MySQL DB andmebaasi seadeid.

Soovitan: