Orodha ya maudhui:

UCL - IIOT Chafu: 11 Hatua
UCL - IIOT Chafu: 11 Hatua

Video: UCL - IIOT Chafu: 11 Hatua

Video: UCL - IIOT Chafu: 11 Hatua
Video: FIFA 23 - Aston Villa vs Liverpool - Premier League - Xbox Series X Gameplay 2024, Julai
Anonim
Chafu ya UCL - IIOT
Chafu ya UCL - IIOT

Mradi huu ni ugani wa mradi wetu wa mapema na chafu (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Katika mradi huu tuliongeza hifadhidata, ambapo tunaweka data zetu zote na kisha kuibua na node-nyekundu kwa muhtasari mkubwa.

Yaliyomo tunayoingia kwenye hifadhidata yetu ni Unyevu, Joto na unyevu wa mchanga, ambayo imeonyeshwa kwenye michoro tofauti.

Mbali na hilo orodha pia tuna uwezo wa kudhibiti ni wasifu gani unaotumika katika chafu na kuidhibiti kwa mbali.

Kisha tunaweza pia kudhibiti pampu na shabiki kwa mikono.

Hatua ya 1: Mwongozo wa Usakinishaji

Mwongozo wa Ufungaji
Mwongozo wa Ufungaji

Hatua ya kwanza ni kusanikisha vifaa vyote tofauti.

Ndani ya mabano (), tumeorodhesha mahali ambapo sehemu hiyo imeunganishwa. Kwa hivyo kwa mfano, Arduino imeunganishwa na Raspberry Pi kupitia kebo ya USB.

Vifaa vilivyotumika:

  • Arduino (Raspberry Pi)
  • Raspberry Pi 3 B +
  • Mchanganyiko wa mchanga (Arduino)
  • Sensorer ya DHT11 (Arduino)
  • HG-320 Pampu ya Maji inayoweza kuingia (Relay)
  • Uwasilishaji wa 5V (Arduino)
  • Shabiki wa kompyuta (Relay)
  • Ugavi wa umeme wa 230V (Pump)

Programu iliyotumiwa:

  • Raspbian (OS ya Raspberry Pi)
  • Arduino IDE
  • Chatu (Raspberry Pi) - PySerial- MySQLclient
  • Node-Nyekundu (Raspberry Pi) - Pythonshell- Summariser- MySQL- Dashibodi
  • Seva ya MySQL (freemysqlhosting.net)

Kwanza itabidi uunganishe vifaa vya vifaa, kwa hivyo fuata mwongozo huu kujenga chafu: Sakinisha Mwongozo.

Basi itabidi usakinishe Raspbian OS kwenye Raspberry Pi yako. Baada ya hapo utalazimika kusanikisha chatu, na kisha usakinishe maktaba za chatu.

Hatua inayofuata ni kusanikisha Node-Nyekundu kwenye Raspberry Pi, halafu nenda kwa msimamizi wa pallet na uweke moduli zilizotajwa hapo awali.

Kisha nenda kwenye wavuti ya Bure ya MySQL na unda seva ya MySQL ya bure.

Wakati haya yote yamekamilika, uko tayari kuhamisha hati ya chatu kwenye Raspberry Pi yako, ingiza hati ya Node-Red na upakie nambari ya Arduino.

Hatua ya 2: Onyesho la Udhibiti

Image
Image

Hatua ya 3: Orodha ya Sehemu / programu Iliyotumiwa katika Mradi

Tumetumia teknolojia ifuatayo kutengeneza chafu

  • Arduino
  • Pi ya Raspberry
  • Node-Nyekundu
  • Chatu
  • PHPMyAdmin

Hatua ya 4: Orodha ya I / 0

Mchoro wa Wiring
Mchoro wa Wiring

Hatua ya 5: Mchoro wa Wiring

Hatua ya 6: Nambari ya Arduino

Nambari ya Arduino inafanya kazi kwa kuchapisha data, iliyopimwa na sensorer, kwa unganisho la serial ambapo inasomwa na Raspberry Pi na kuhamishiwa hifadhidata.

Arduino pia zina pembejeo za dijiti zilizounganishwa na Raspberry Pi ambayo Arduino inasoma na ikiwa mmoja kati ya hao watatu anakuwa JUU wasifu utabadilika kwa sababu ya taarifa ya IF.

Pia tumeboresha nambari ya kutumia Millis badala ya kuchelewesha ambayo inawezesha vifungo na nambari zingine kusomwa kila wakati badala ya muda na kucheleweshwa zamani.

Hatua ya 7: Raspberry Pi 3 B +

Raspberry Pi 3 B +
Raspberry Pi 3 B +

Tulitumia Raspberry Pi 3 B + kwa kuunganisha Arduino yetu na mtandao na hifadhidata ya MySQL. Hii ilifanya iwezekane kwetu kuhifadhi data kutoka kwa sensorer zetu na kutengeneza kiolesura cha kuona kwa mtumiaji wa mwisho. Kwa kiolesura cha mtumiaji tulitumia Node-Red na palette ya Dashibodi.

Lakini kabla ya kuonyesha data yetu ya sensorer kwenye Node-Red, tulihitaji njia ya kupakia data kwenye hifadhidata ya MySQL, na kwa hiyo tulitengeneza hati ya Python ambayo ingeendesha kwenye Raspberry Pi yetu.

Hatua ya 8: Chatu

Chatu
Chatu

Hati ya chatu hutumiwa kwa kupokea data kutoka kwa mawasiliano-ya-serial inayokuja kutoka Arduino. Hati kisha hutuma data kwenye hifadhidata ya MySQL.

Tulitumia maktaba mbili, pyserial na mysqlclient.

Kwa hivyo hatua ya kwanza itakuwa kupakua maktaba hizi mbili:

  1. PySerial
  2. Mteja wa MySQL

PySerial hutumiwa kukusanya data kutoka Arduino kupitia mawasiliano ya serial.

kifaa = '/ dev / ttyUSB0'

arduino = mfululizo. Serial (kifaa, 9600)

Mstari wa kwanza unatumika kwa kufafanua bandari yetu ya COM. Kwenye Raspberry Pi ni / dev / ttyUSB0, ambayo tunatumia kwa Arduino. Mstari wa pili ni kufungua bandari ya serial kwa Arduino. Tunafafanua tu ni bandari gani ya COM na kwa kasi gani unganisho linaendesha.

Nambari iliyobaki inaendelea kwa kitanzi cha muda.

Ifuatayo tunatumia vizuizi vingi vya Jaribu na Isipokuwa. Kwanza nambari inajaribu kukimbia ndani ya Jaribu block, ikiwa hiyo inashindwa basi inaendesha block isipokuwa. Lakini ikiwa jaribio la Jaribu linaendesha vizuri, halitumii kizuizi cha Isipokuwa, inaendesha tu nambari yote.

Kwa hivyo ndani ya vizuizi vya Jaribu tuna nambari ambayo itasoma mawasiliano ya serial na kisha kuipeleka kwa hifadhidata yetu ya MySQL.

mseto = maandishi ya maandishi ya arduino (1)

orodha = orodha ya arduino. muhtasari (2) orodha ya humidlist = arduino. muhtasari (3)

Kwa hivyo nambari iliyo hapo juu ni ya kusoma mistari kwenye mawasiliano ya serial. Nambari iliyo mwisho wa nambari inafafanua mstari ambao umesomwa kwenye safu. Kwa hivyo mistari hii imegawanywa katika anuwai anuwai.

Wakati data kutoka Arduino inapokelewa, tulitumia moduli ya mysqlclient kwa kutuma data kwa Seva yangu ya MySQL.

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

Mstari huu ni wa kuunganisha kwenye hifadhidata yetu ya MySQL. Inabainisha seva, jina la mtumiaji, nywila na ni hifadhidata ipi inapaswa kuungana na ndani ya seva. Hapa unapaswa kutaja unganisho kwa MySQL DB yako.

db.swali ("INSERTINTO` TempHumid` (`temp`,` humid`, `hygro`) MAADILI (% s,% s,% s)"% (temp, humid, hygro))

Kwa hivyo hapa tunachukua unganisho letu la DB na kufanya swala la SQL. Swala linasema kwamba maadili yanapaswa kuingizwa ndani ya meza "TempHumid" na kisha kwenye safu "temp", "humid" na "hygro". Sehemu ya mwisho "(% s,% s,% s)" ni muundo wa kamba na hutumiwa kutoa hifadhidata fomati ambayo inaweza kusoma.

Na hatua hii yote imewekwa kwenye kitanzi cha muda, ili tuendelee kupata data iliyotumwa kwa seva ya MySQL.

Ikiwa unataka kuona nambari yote, pakua hati ya chatu (TempHumid.py).

Hatua ya 9: MySQL

MySQL
MySQL
MySQL
MySQL

Kwa seva ya MySQL, tulitumia huduma ya bure kwenye www.freemysqlhosting.net. Tungeweza kutengeneza seva ndani ya Raspberry Pi, lakini tulienda na huduma ya bure kuifanya iunganishwe kikamilifu na wingu / mtandao.

Ili kufikia MySQL yako, lazima uende phpmyadmin.co na uingie na vitambulisho kutoka kwa akaunti yako ya freemysqlhosting.

Unapokuwa ndani, lazima uunde meza inayoitwa "TempHumid", ndani ya meza hii unapaswa kuunda safu 4 zinazoitwa, "ID", "temp", "humid" na "hygro". Safu wima ya kwanza (ID) lazima ubonyeze kisanduku A_I (Kuongeza Kiotomatiki). Hii ni ili safu ya kitambulisho ipe kila setaseti kitambulisho. Safu wima zote zifuatazo lazima ziwekwe kama INT (nambari kamili), na uweke thamani ya kawaida kuwa NULL.

Hatua ya 10: Node-Nyekundu

Node-Nyekundu
Node-Nyekundu
Node-Nyekundu
Node-Nyekundu
Node-Nyekundu
Node-Nyekundu

Katika mradi wetu tulitumia Node-Red kwa kutengeneza kielelezo cha picha. Node-Red inaendesha Raspberry Pi na inakusanya data kutoka hifadhidata yetu ya MySQL na inaonyesha data hizi na viwango vya umbo la donut na chati za picha, ili mtumiaji wa mwisho aweze kufuatilia data. Jambo zuri kuhusu Node-Red ni kwamba inaonekana kwenye kifaa chochote, ambayo inamaanisha kuwa wavuti itabadilishwa ukubwa kwa kifaa kilichopewa kinachoangalia yaliyomo.

Ili kusanikisha programu yetu ya Node-Nyekundu, angalia Hatua ya 1 na pakua hati inayoitwa "Node-Red.docx". Kisha nakili na ubandike maandishi kwenye Node-Red kupitia kazi ya uingizaji kwenye kona ya juu kulia.

Baada ya hapo badilisha mipangilio ya DB ya MySQL DB yako.

Ilipendekeza: