Përmbajtje:

Serë UCL - IIOT: 11 hapa
Serë UCL - IIOT: 11 hapa

Video: Serë UCL - IIOT: 11 hapa

Video: Serë UCL - IIOT: 11 hapa
Video: САЛО. ЖАРЕННАЯ КАРТОШКА С ЛУКОМ. УЧУ ДЕТЕЙ ГОТОВИТЬ 2024, Korrik
Anonim
UCL - Serë IIOT
UCL - Serë IIOT

Ky projekt është një zgjerim i projektit tonë të mëparshëm me serën (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Në këtë projekt ne shtuam një bazë të dhënash, ku regjistrojmë të gjitha të dhënat tona dhe më pas e vizualizojmë me nyje-të kuqe për një pasqyrë më të madhe.

Përmbajtja në të cilën hyjmë në bazën tonë të të dhënave është Lagështia, Temperatura dhe lagështia e tokës, e cila tregohet në diagrame të ndryshme.

Përveç dataloggin ne jemi gjithashtu në gjendje të kontrollojmë se cili profil është aktiv në Serë dhe ta kontrollojmë atë nga distanca.

Pastaj ne jemi gjithashtu në gjendje të kontrollojmë pompën dhe ventilatorin me dorë.

Hapi 1: Udhëzuesi i instalimit

Udhëzuesi i instalimit
Udhëzuesi i instalimit

Hapi i parë është instalimi i të gjithë përbërësve të ndryshëm.

Brenda kllapave (), ne kemi renditur se ku është lidhur komponenti. Kështu për shembull, Arduino është i lidhur me Raspberry Pi përmes një kabllo USB.

Pajisjet kompjuterike të përdorura:

  • Arduino (Raspberry Pi)
  • Raspberry Pi 3 B+
  • Higrometri i tokës (Arduino)
  • Sensori DHT11 (Arduino)
  • Pompë uji zhytëse HG-320 (stafetë)
  • Stafetë 5V (Arduino)
  • Një tifoz kompjuteri (stafetë)
  • Furnizimi me energji 230V (Pompë)

Softueri i përdorur:

  • Raspbian (OS për Raspberry Pi)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Nyja-e Kuqe (Raspberry Pi)- Pythonshell- Përmbledhës- MySQL- Pult
  • Serveri MySQL (freemysqlhosting.net)

Së pari ju do të duhet të lidhni komponentët e harduerit, prandaj ndiqni këtë udhëzues për të ndërtuar serën: Instalo Guide.

Atëherë do të duhet të instaloni Raspbian OS në Raspberry Pi tuaj. Pas kësaj ju do të duhet të instaloni Python, dhe pastaj të instaloni bibliotekat e python.

Hapi tjetër është instalimi i Node-Red në Raspberry Pi, dhe më pas lundroni te menaxheri i paletës dhe instaloni modulet e deklaruara më herët.

Pastaj shkoni te kjo faqe Falas MySQL Server dhe krijoni një server MySQL falas.

Kur të bëhet e gjithë kjo, ju jeni gati për të transferuar shkrimin python në Raspberry Pi tuaj, importoni shkrimin Node-Red dhe ngarkoni kodin për Arduino.

Hapi 2: Vitrina e Kontrollit

Image
Image

Hapi 3: Lista e Pjesëve/Softuerëve të Përdorur në Projekt

Ne kemi përdorur teknologjinë e mëposhtme për të bërë serën

  • Arduino
  • Mjedër Pi
  • Nyje-Kuqe
  • Python
  • PHPMyAdmin

Hapi 4: Lista I/0

Diagrami i telave
Diagrami i telave

Hapi 5: Diagrami i telave

Hapi 6: Kodi Arduino

Kodi Arduino punon duke shtypur të dhënat, të matura nga sensorët, në lidhjen serike ku lexohet nga Raspberry Pi dhe transferohet në bazën e të dhënave.

Arduino gjithashtu ka disa hyrje dixhitale të lidhura me Raspberry Pi që lexon Arduino dhe nëse njëra nga të triat bëhet HIGH, profili do të ndryshojë për shkak të një deklarate IF.

Gjithashtu ne kemi përmirësuar kodin për të përdorur Millis në vend të vonesës që mundëson që prapanicat dhe pjesa tjetër e kodit të lexohen gjatë gjithë kohës në vend të një intervali nga vonesa e vjetër.

Hapi 7: Raspberry Pi 3 B+

Raspberry Pi 3 B+
Raspberry Pi 3 B+

Ne përdorëm një Raspberry Pi 3 B+ për lidhjen e Arduino -s tonë me internetin dhe një bazë të dhënash MySQL. Kjo bëri të mundur që ne të ruanim të dhëna nga sensorët tanë dhe të krijonim një ndërfaqe vizuale për përdoruesin përfundimtar. Për ndërfaqen e përdoruesit kemi përdorur Node-Red me paletën Dashboard.

Por, para se të shfaqnim të dhënat tona të sensorit në Node-Red, na duhej një mënyrë për të ngarkuar të dhënat në një bazë të dhënash MySQL, dhe për këtë ne bëmë një skript Python që do të funksiononte në Raspberry Pi tonë.

Hapi 8: Python

Python
Python

Skripti Python përdoret për marrjen e të dhënave nga komunikimi serial që vjen nga Arduino. Skripti më pas i dërgon të dhënat në një bazë të dhënash MySQL.

Ne përdorëm dy biblioteka, pyserial dhe mysqlclient.

Pra, hapi i parë do të ishte shkarkimi i këtyre dy bibliotekave:

  1. PySerial
  2. MySQLclient

PySerial përdoret për mbledhjen e të dhënave nga Arduino përmes komunikimit serial.

pajisje = '/dev/ttyUSB0'

arduino = serial. Serial (pajisje, 9600)

Linja e parë po përdoret për përcaktimin e portit tonë COM. Në Raspberry Pi është /dev /ttyUSB0, që ne përdorim për Arduino. Linja e dytë është për hapjen e portës serike në Arduino. Ne vetëm përcaktojmë se cila portë COM dhe me çfarë shpejtësie po funksionon lidhja.

Pjesa tjetër e kodit po funksionon në një lak.

Tjetra ne përdorim blloqe të shumta Provo dhe përjashto. Së pari kodi po përpiqet të ekzekutohet brenda bllokut Try, nëse kjo dështon, atëherë ekzekuton përjashtuar bllokun. Por nëse blloku Try funksionon mirë, ai nuk funksionon përveç bllokut, thjesht ekzekuton pjesën tjetër të kodit.

Pra, brenda blloqeve Try kemi kodin që do të lexojë komunikimin serial dhe më pas do ta dërgojë atë në bazën tonë të të dhënave MySQL.

hygrolist = arduino.leximet (1)

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

Pra, kodi i mësipërm është për leximin e rreshtave në komunikimin serik. Numri në fund të kodit përcakton vijën që është lexuar në serial. Pra, këto rreshta po kategorizohen në ndryshore të ndryshme.

Kur merren të dhënat nga Arduino, ne përdorëm modulin mysqlclient për dërgimin e të dhënave në MySQL Serverin tonë.

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

Kjo linjë është për t'u lidhur me bazën tonë të të dhënave MySQL. Ai specifikon serverin, emrin e përdoruesit, fjalëkalimin dhe cilën bazë të dhënash duhet të lidhet brenda serverit. Këtu duhet të specifikoni lidhjen me MySQL DB tuaj.

db.query ("INSERTINTO` TempHumid` (`temp`,` i lagësht`, `hygro`) VLERAT (%s, %s, %s)" %(temp, i lagësht, hygro))

Pra, këtu marrim lidhjen tonë DB dhe bëjmë një pyetje SQL. Pyetja thotë se vlerat duhet të futen brenda tabelës "TempHumid" dhe më pas në kolonat "temp", "humid" dhe "hygro". Pjesa e fundit "(%s, %s, %s)" është formatimi i vargut dhe përdoret për t'i dhënë bazës së të dhënave një format që mund të lexojë.

Dhe i gjithë ky veprim futet në një lak, në mënyrë që të vazhdojmë të marrim të dhëna në serverin MySQL.

Nëse doni të shihni të gjithë kodin, shkarkoni skriptin python (TempHumid.py).

Hapi 9: MySQL

MySQL
MySQL
MySQL
MySQL

Për serverin MySQL, ne përdorëm një shërbim falas në www.freemysqlhosting.net. Ne mund të kishim bërë një server në vend në Raspberry Pi, por shkuam me shërbimin falas për ta bërë atë të lidhur plotësisht me cloud/internet.

Për të hyrë në MySQL, duhet të shkoni në phpmyadmin.co dhe të identifikoheni me kredencialet nga llogaria juaj freemysqlhosting.

Kur jeni brenda, duhet të krijoni një tabelë të quajtur "TempHumid", brenda kësaj tabele duhet të krijoni 4 kolona të quajtura, "ID", "temp", "lagësht" dhe "hygro". Kolonën e parë (ID) ju duhet të shënoni kutinë A_I (Rritja automatike). Kjo është kështu që kolona ID i jep çdo grupi të dhënash një ID. Të gjitha kolonat e mëposhtme duhet të vendosen si INT (numër i plotë) dhe të vendosin vlerën standarde në NULL.

Hapi 10: Nyja-Kuqe

Nyje-Kuqe
Nyje-Kuqe
Nyje-Kuqe
Nyje-Kuqe
Nyje-Kuqe
Nyje-Kuqe

Në projektin tonë ne përdorëm Node-Red për të bërë një ndërfaqe grafike. Node-Red po funksionon në Raspberry Pi dhe po mbledh të dhëna nga baza jonë e të dhënave MySQL dhe po i tregon këto të dhëna me matës në formë donuti dhe tabela grafike, në mënyrë që përdoruesi përfundimtar të mund të monitorojë të dhënat. Gjëja e zgjuar në lidhje me Node-Red është se mund të shihet në çdo pajisje, që do të thotë se faqja do të ndryshojë madhësinë për pajisjen e caktuar që po shikon përmbajtjen.

Për të instaluar programimin tonë Node-Red, shikoni Hapin 1 dhe shkarkoni dokumentin e quajtur "Node-Red.docx". Pastaj kopjoni dhe ngjisni tekstin në Node-Red përmes funksionit të importit në këndin e sipërm të djathtë.

Pas kësaj, ndryshoni cilësimet e DB për MySQL DB tuaj.

Recommended: