Satura rādītājs:

UCL - IIOT siltumnīca: 11 soļi
UCL - IIOT siltumnīca: 11 soļi

Video: UCL - IIOT siltumnīca: 11 soļi

Video: UCL - IIOT siltumnīca: 11 soļi
Video: The 2011/12 Season Was EPIC 2024, Novembris
Anonim
UCL - IIOT siltumnīca
UCL - IIOT siltumnīca

Šis projekts ir mūsu iepriekšējā projekta ar siltumnīcu turpinājums (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Šajā projektā mēs pievienojām datu bāzi, kurā reģistrējam visus savus datus un pēc tam vizualizējam tos ar mezglu sarkanu, lai iegūtu labāku pārskatu.

Mūsu datu bāzē reģistrētais saturs ir augsnes mitrums, temperatūra un mitrums, kas parādīts dažādās diagrammās.

Papildus datu katalogam mēs varam arī kontrolēt, kurš profils ir aktīvs siltumnīcā, un attālināti to kontrolēt.

Tad mēs varam arī manuāli kontrolēt sūkni un ventilatoru.

1. darbība: instalēšanas rokasgrāmata

Uzstādīšanas rokasgrāmata
Uzstādīšanas rokasgrāmata

Pirmais solis ir visu komponentu instalēšana.

Iekavās () mēs esam uzskaitījuši, kur komponents ir pievienots. Piemēram, Arduino ir savienots ar Raspberry Pi, izmantojot USB kabeli.

Izmantotā aparatūra:

  • Arduino (Raspberry Pi)
  • Raspberry Pi 3 B+
  • Augsnes higrometrs (Arduino)
  • DHT11 sensors (Arduino)
  • HG-320 iegremdējamais ūdens sūknis (relejs)
  • 5V relejs (Arduino)
  • Datora ventilators (relejs)
  • 230V barošanas avots (sūknis)

Izmantotā programmatūra:

  • Raspbian (OS Raspberry Pi)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Sarkans mezgls (Raspberry Pi)- Pythonshell- Summariser- MySQL- Dashboard
  • MySQL serveris (freemysqlhosting.net)

Vispirms jums būs jāpievieno aparatūras komponenti, tāpēc, lai izveidotu siltumnīcu, izpildiet šo rokasgrāmatu: Instalēšanas rokasgrāmata.

Tad jums būs jāinstalē Raspbian OS savā Raspberry Pi. Pēc tam jums būs jāinstalē Python un pēc tam jāinstalē python bibliotēkas.

Nākamais solis ir instalēt Node-Red uz Raspberry Pi un pēc tam doties uz palešu pārvaldnieku un instalēt iepriekš minētos moduļus.

Pēc tam dodieties uz šo vietni Free MySQL Server un izveidojiet bezmaksas MySQL serveri.

Kad tas viss ir izdarīts, jūs esat gatavs pārsūtīt python skriptu uz savu Raspberry Pi, importēt Node-Red skriptu un augšupielādēt Arduino kodu.

2. darbība: kontroles piemērs

Image
Image

3. solis: Projektā izmantoto detaļu/programmatūras saraksts

Siltumnīcas ražošanā esam izmantojuši šādu tehnoloģiju

  • Arduino
  • Raspberry Pi
  • Mezgls-sarkans
  • Python
  • PHPMyAdmin

4. solis: I/0 saraksts

Elektroinstalācijas shēma
Elektroinstalācijas shēma

5. solis: elektroinstalācijas shēma

6. darbība: Arduino kods

Arduino kods darbojas, izdrukājot sensoru izmērītos datus sērijas savienojumam, kur tos nolasa Raspberry Pi un pārsūta uz datu bāzi.

Arduino ir arī dažas digitālās ieejas, kas savienotas ar Raspberry Pi, kuras Arduino lasa un ja viens no trim kļūst HIGH, profils mainīsies IF paziņojuma dēļ.

Mēs esam arī jauninājuši kodu, lai aizkaves vietā izmantotu Millis, kas ļauj visu laiku nolasīt koda apakšdaļu un pārējo, nevis intervālu ar veco kavēšanos.

7. darbība: Raspberry Pi 3 B+

Raspberry Pi 3 B+
Raspberry Pi 3 B+

Mēs izmantojām Raspberry Pi 3 B+, lai savienotu mūsu Arduino ar internetu un MySQL datu bāzi. Tas ļāva mums saglabāt datus no mūsu sensoriem un izveidot vizuālu saskarni galalietotājam. Lietotāja interfeisam mēs izmantojām mezglu-sarkanu ar informācijas paneļa paleti.

Bet pirms mēs varētu parādīt savus sensoru datus mezglā Red, mums bija nepieciešams veids, kā augšupielādēt datus MySQL datu bāzē, un tam mēs izveidojām Python skriptu, kas darbosies mūsu Raspberry Pi.

8. solis: Python

Python
Python

Python skripts tiek izmantots, lai saņemtu datus no sērijveida sakariem, kas nāk no Arduino. Pēc tam skripts nosūta datus uz MySQL datu bāzi.

Mēs izmantojām divas bibliotēkas - pyserial un mysqlclient.

Tātad pirmais solis būtu lejupielādēt šīs divas bibliotēkas:

  1. PySerial
  2. MySQLclient

PySerial tiek izmantots datu vākšanai no Arduino, izmantojot sērijas sakarus.

ierīce = '/dev/ttyUSB0'

arduino = sērijveida. Sērijveida (ierīce, 9600)

Pirmā rinda tiek izmantota, lai definētu mūsu COM portu. Raspberry Pi tas ir /dev /ttyUSB0, ko mēs izmantojam Arduino. Otrā rinda ir paredzēta seriālā porta atvēršanai Arduino. Mēs vienkārši definējam, kurš COM ports un ar kādu ātrumu savienojums darbojas.

Pārējais kods darbojas cikla laikā.

Tālāk mēs izmantojam vairākus blokus Try and Except. Pirmkārt, kods mēģina darboties mēģinājuma bloka iekšpusē, ja tas neizdodas, tas izpilda bloku Izņemot. Bet, ja mēģinājuma bloks darbojas labi, tas nedarbojas, izņemot bloku, bet tikai izpilda pārējo kodu.

Tātad izmēģinājuma blokos mums ir kods, kas nolasa seriālo komunikāciju un pēc tam nosūta to uz mūsu MySQL datu bāzi.

higirolists = arduino.readlines (1)

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

Tātad iepriekš minētais kods ir paredzēts sērijas sakaru rindu lasīšanai. Skaitlis koda beigās nosaka sēriju nolasīto rindu. Tātad šīs līnijas tiek iedalītas dažādos mainīgajos.

Kad tiek saņemti dati no Arduino, datu nosūtīšanai uz mūsu MySQL serveri izmantojām moduli mysqlclient.

db = _mysql.connect (resursdators = "sql7.freemysqlhosting.net", lietotājs = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

Šī līnija ir paredzēta savienošanai ar mūsu MySQL datu bāzi. Tas norāda serveri, lietotājvārdu, paroli un datu bāzi, kurai tai vajadzētu izveidot savienojumu servera iekšpusē. Šeit jums jānorāda savienojums ar MySQL DB.

db.query ("INSERTINTO` TempHumid "(` temp`, `mitrs`,` hygro`) VĒRTĪBAS (%s, %s, %s) " %(temp, mitrs, higro))

Tātad, mēs ņemam DB savienojumu un izveidojam SQL vaicājumu. Vaicājumā teikts, ka vērtības jāievieto tabulas “TempHumid” iekšpusē un pēc tam slejās “temp”, “mitrs” un “hygro”. Pēdējā daļa “(%s, %s, %s)” ir virkņu formatēšana, un to izmanto, lai datubāzei piešķirtu formātu, ko tā var nolasīt.

Un visa šī darbība tiek ievietota cikla ciklā, lai mēs turpinātu saņemt datus uz MySQL serveri.

Ja vēlaties redzēt visu kodu, lejupielādējiet python skriptu (TempHumid.py).

9. solis: MySQL

MySQL
MySQL
MySQL
MySQL

MySQL serverim mēs izmantojām bezmaksas pakalpojumu vietnē www.freemysqlhosting.net. Mēs būtu varējuši izveidot serveri lokāli Raspberry Pi, taču mēs devāmies ar bezmaksas pakalpojumu, lai tas būtu pilnībā savienots ar mākoni/internetu.

Lai piekļūtu MySQL, jums jādodas uz vietni phpmyadmin.co un jāpiesakās, izmantojot akreditācijas datus no sava freemysqlhosting konta.

Kad esat iekšā, jums ir jāizveido tabula ar nosaukumu "TempHumid", šīs tabulas iekšpusē jāizveido 4 kolonnas ar nosaukumu "ID", "temp", "mitrs" un "hygro". Pirmajā kolonnā (ID) ir jāatzīmē rūtiņa A_I (automātiskā palielināšana). Tas ir nepieciešams, lai slejā ID katrai datu kopai tiktu piešķirts ID. Visas nākamās kolonnas ir jāiestata kā INT (vesels skaitlis) un standarta vērtība jāiestata uz NULL.

10. solis: mezgls-sarkans

Mezgls-sarkans
Mezgls-sarkans
Mezgls-sarkans
Mezgls-sarkans
Mezgls-sarkans
Mezgls-sarkans

Savā projektā mēs izmantojām mezglu-sarkanu, lai izveidotu grafisku interfeisu. Node-Red darbojas Raspberry Pi un vāc datus no mūsu MySQL datu bāzes un rāda šos datus ar virtuļa formas mērierīcēm un grafiskām diagrammām, lai galalietotājs varētu pārraudzīt datus. Gudrā lieta par mezglu-sarkano ir tā, ka to var redzēt jebkurā ierīcē, kas nozīmē, ka vietnes lielums tiks mainīts konkrētajai ierīcei, kas skata saturu.

Lai instalētu mūsu Node-Red programmēšanu, skatiet 1. darbību un lejupielādējiet dokumentu ar nosaukumu "Node-Red.docx". Pēc tam kopējiet un ielīmējiet tekstu mezgla sarkanajā, izmantojot importēšanas funkciju augšējā labajā stūrī.

Pēc tam mainiet MySQL DB DB iestatījumus.

Ieteicams: