Obsah:

Skleník UCL - IIOT: 11 krokov
Skleník UCL - IIOT: 11 krokov

Video: Skleník UCL - IIOT: 11 krokov

Video: Skleník UCL - IIOT: 11 krokov
Video: Карл Фристон: Дереализация, опасности для сознания 2024, Júl
Anonim
Skleník UCL - IIOT
Skleník UCL - IIOT

Tento projekt je rozšírením nášho predchádzajúceho projektu so skleníkom (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

V tomto projekte sme pridali databázu, kde zaznamenávame všetky naše údaje a potom ich vizualizujeme pomocou uzlovej červenej pre lepší prehľad.

Obsah, ktorý do našej databázy zaznamenávame, je vlhkosť, teplota a vlhkosť pôdy, ktorá je znázornená na rôznych diagramoch.

Okrem datalogginu dokážeme ovládať aj profil, ktorý je v skleníku aktívny, a diaľkovo ho ovládať.

Potom sme tiež schopní ovládať čerpadlo a ventilátor ručne.

Krok 1: Sprievodca inštaláciou

Návod na inštaláciu
Návod na inštaláciu

Prvým krokom je inštalácia všetkých rôznych komponentov.

Vnútri zátvoriek () sme uviedli, kde je komponent pripojený. Napríklad napríklad Arduino je k Raspberry Pi pripojené pomocou kábla USB.

Použitý hardvér:

  • Arduino (Raspberry Pi)
  • Raspberry Pi 3 B+
  • Pôdny vlhkomer (Arduino)
  • Snímač DHT11 (Arduino)
  • Ponorné vodné čerpadlo HG-320 (relé)
  • 5V relé (Arduino)
  • Počítačový ventilátor (relé)
  • Napájanie 230 V (čerpadlo)

Použitý softvér:

  • Raspbian (OS pre Raspberry Pi)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Dashboard
  • Server MySQL (freemysqlhosting.net)

Najprv budete musieť pripojiť hardvérové komponenty, takže pri stavbe skleníka postupujte podľa tejto príručky: Inštalačná príručka.

Potom budete musieť nainštalovať Raspbian OS na svoj Raspberry Pi. Potom budete musieť nainštalovať Python a potom nainštalovať knižnice pythonu.

Ďalším krokom je inštalácia Node-Red na Raspberry Pi a potom prejdite na správcu paliet a nainštalujte moduly uvedené vyššie.

Potom prejdite na tento server Bezplatný server MySQL a vytvorte si bezplatný server MySQL.

Keď je toto všetko hotové, ste pripravení preniesť skript python do svojho Raspberry Pi, importovať skript Node-Red a nahrať kód pre Arduino.

Krok 2: Ukážka ovládania

Image
Image

Krok 3: Zoznam častí/softvéru použitého v projekte

Na výrobu skleníka sme použili nasledujúcu technológiu

  • Arduino
  • Malinový koláč
  • Uzol-červený
  • Python
  • PHPMyAdmin

Krok 4: Zoznam I/0

Elektrické schéma
Elektrické schéma

Krok 5: Schéma zapojenia

Krok 6: Kód Arduino

Kód Arduino funguje tak, že dáta namerané senzormi vytlačí na sériové pripojenie, kde ich Raspberry Pi načíta a prenesie do databázy.

Arduino má tiež niekoľko digitálnych vstupných pinov pripojených k Raspberry Pi, ktoré Arduino číta, a ak sa jeden z troch stane VYSOKÝ, profil sa zmení kvôli príkazu IF.

Tiež sme aktualizovali kód tak, aby používal Millis namiesto oneskorenia, čo umožňuje, aby boli zadky a zvyšok kódu neustále čítané namiesto intervalu podľa starého oneskorenia.

Krok 7: Raspberry Pi 3 B+

Raspberry Pi 3 B+
Raspberry Pi 3 B+

Na prepojenie nášho Arduina s internetom a databázou MySQL sme použili Raspberry Pi 3 B+. To nám umožnilo ukladať údaje z našich senzorov a vytvoriť vizuálne rozhranie pre koncového používateľa. Ako používateľské rozhranie sme použili Node-Red s paletou Dashboard.

Ale skôr, ako sme mohli ukázať naše údaje senzorov na Node-Red, potrebovali sme spôsob, ako nahrať údaje do databázy MySQL, a na to sme vytvorili skript Python, ktorý by bežal na našom Raspberry Pi.

Krok 8: Python

Python
Python

Skript Python sa používa na príjem údajov zo sériovej komunikácie pochádzajúcej z Arduina. Skript potom pošle údaje do databázy MySQL.

Použili sme dve knižnice, pyserial a mysqlclient.

Prvým krokom by bolo stiahnutie týchto dvoch knižníc:

  1. PySerial
  2. MySQLclient

PySerial sa používa na zber údajov z Arduina prostredníctvom sériovej komunikácie.

zariadenie = '/dev/ttyUSB0'

arduino = sériový. Sériový (zariadenie, 9600)

Prvý riadok sa používa na definovanie nášho COM portu. Na Raspberry Pi používame /dev /ttyUSB0, ktorý používame pre Arduino. Druhý riadok slúži na otvorenie sériového portu pre Arduino. Len definujeme, ktorý COM port a pri akej rýchlosti prebieha pripojenie.

Zvyšok kódu beží v slučke while.

Ďalej používame viacero blokov Try and Except. Kód sa najskôr pokúša spustiť v bloku Try, ak to zlyhá, spustí blok Okrem. Ak však blok Try beží dobre, nespustí sa blok Except, ale spustí sa iba zvyšok kódu.

Takže v blokoch Try máme kód, ktorý bude čítať sériovú komunikáciu a potom ju odošle do našej databázy MySQL.

hygrolist = arduino.readlines (1)

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

Vyššie uvedený kód je teda na čítanie riadkov v sériovej komunikácii. Číslo na konci kódu definuje riadok, ktorý bol prečítaný v seriáli. Tieto riadky sú teda kategorizované do rôznych premenných.

Keď sú prijaté údaje z Arduina, na odoslanie údajov na náš server MySQL sme použili modul mysqlclient.

db = _mysql.connect (host = "sql7.freemysqlhosting.net", užívateľ = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

Tento riadok slúži na pripojenie k našej databáze MySQL. Špecifikuje server, používateľské meno, heslo a databázu, ku ktorej sa má pripojiť na server. Tu by ste mali špecifikovať pripojenie k MySQL DB.

db.query ("INSERTINTO` TempHumid` (`temp`,` humid`, `hygro`) VALUES (%s, %s, %s)" %(temp, humid, hygro))

Tu teda vezmeme naše pripojenie DB a urobíme dotaz SQL. Dotaz hovorí, že hodnoty je potrebné vložiť do tabuľky „TempHumid“a potom do stĺpcov „temp“, „humid“a „hygro“. Posledná časť „(%s, %s, %s)“je formátovanie reťazcov a slúži na poskytnutie databázy formátu, ktorý dokáže čítať.

A všetky tieto akcie sú vložené do cyklu while, aby sme stále odosielali údaje na server MySQL.

Ak chcete vidieť celý kód, stiahnite si skript python (TempHumid.py).

Krok 9: MySQL

MySQL
MySQL
MySQL
MySQL

Pre server MySQL sme použili bezplatnú službu na www.freemysqlhosting.net. Mohli sme vytvoriť server lokálne na Raspberry Pi, ale išli sme s bezplatnou službou, aby bolo plne prepojené s cloudom/internetom.

Ak chcete získať prístup k svojmu serveru MySQL, musíte prejsť na stránku phpmyadmin.co a prihlásiť sa pomocou poverení zo svojho účtu freemysqlhosting.

Keď ste vo vnútri, musíte vytvoriť tabuľku s názvom „TempHumid“, v tejto tabuľke musíte vytvoriť 4 stĺpce s názvom „ID“, „teplota“, „vlhkosť“a „hygro“. V prvom stĺpci (ID) musíte začiarknuť políčko A_I (Automatické zvýšenie). Je to tak preto, aby stĺpec ID poskytoval každej množine údajov identifikátor. Všetky nasledujúce stĺpce je potrebné nastaviť ako INT (celé číslo) a štandardnú hodnotu nastaviť na NULL.

Krok 10: Uzol červený

Uzol-červený
Uzol-červený
Uzol-červený
Uzol-červený
Uzol-červený
Uzol-červený

V našom projekte sme použili Node-Red na vytvorenie grafického rozhrania. Node-Red beží na Raspberry Pi a zbiera údaje z našej databázy MySQL a ukazuje tieto údaje pomocou meradiel v tvare šišky a grafických tabuliek, aby koncový používateľ mohol údaje sledovať. Inteligentné na Node-Red je, že je možné ho zobraziť na akomkoľvek zariadení, čo znamená, že sa zmení veľkosť stránky pre dané zariadenie, ktoré si prezerá obsah.

Ak chcete nainštalovať naše programovanie Node-Red, pozrite sa na krok 1 a stiahnite si dokument s názvom „Node-Red.docx“. Potom skopírujte a prilepte text do Node-Red pomocou funkcie importu v pravom hornom rohu.

Potom zmeňte nastavenia DB pre MySQL DB.

Odporúča: