Mündəricat:

UCL - IIOT İstixana: 11 addım
UCL - IIOT İstixana: 11 addım

Video: UCL - IIOT İstixana: 11 addım

Video: UCL - IIOT İstixana: 11 addım
Video: UCL-IIoT-Datalogger 2024, Iyul
Anonim
UCL - IIOT İstixana
UCL - IIOT İstixana

Bu layihə Sera ilə əvvəlki layihəmizin bir uzantısıdır (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Bu layihədə, bütün məlumatlarımızı daxil etdikdən sonra daha geniş bir baxış üçün node-red ilə görüntülədiyimiz bir verilənlər bazası əlavə etdik.

Verilənlər bazasına daxil olduğumuz məzmun, müxtəlif diaqramlarda göstərilən torpağın rütubəti, temperaturu və rütubətidir.

Dataloggin -dən başqa, istixanada hansı profilin aktiv olduğunu nəzarət edə və uzaqdan idarə edə bilərik.

Bundan sonra nasosu və fanı əllə idarə edə bilərik.

Addım 1: Quraşdırma Bələdçisi

Quraşdırma Bələdçisi
Quraşdırma Bələdçisi

İlk addım bütün fərqli komponentləri quraşdırmaqdır.

Mötərizədə (), komponentin harada bağlı olduğunu sadaladıq. Məsələn, Arduino Raspberry Pi -yə USB kabel vasitəsilə qoşulur.

İstifadə olunan avadanlıq:

  • Arduino (Moruq Pi)
  • Moruq Pi 3 B+
  • Torpaq higrometri (Arduino)
  • DHT11 sensoru (Arduino)
  • HG-320 Dalgıç Su Pompası (Röle)
  • 5V rölesi (Arduino)
  • Kompüter fanatı (Relay)
  • 230V enerji təchizatı (nasos)

İstifadə olunan proqram:

  • Raspbian (Raspberry Pi üçün OS)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Tablosuna
  • MySQL serveri (freemysqlhosting.net)

Əvvəlcə hardware komponentlərini birləşdirməlisiniz, buna görə istixana qurmaq üçün bu təlimatı izləyin: Quraşdırma Kılavuzu.

Sonra Raspberry Pi -yə Raspbian OS qurmalı olacaqsınız. Bundan sonra Python qurmalı və sonra python kitabxanalarını quraşdırmalı olacaqsınız.

Növbəti addım Node-Red-i Raspberry Pi-yə quraşdırmaq və sonra palet menecerinə getmək və əvvəllər qeyd olunan modulları quraşdırmaqdır.

Sonra bu sayta daxil olun Pulsuz MySQL Server və pulsuz bir MySQL serveri yaradın.

Bütün bunlar edildikdə, python skriptini Raspberry Pi-yə köçürməyə, Node-Red skriptini idxal etməyə və Arduino üçün kodu yükləməyə hazırsınız.

Addım 2: Nəzarət Vitrini

Image
Image

Addım 3: Layihədə istifadə olunan hissələrin/proqramların siyahısı

İstixana hazırlamaq üçün aşağıdakı texnologiyadan istifadə etdik

  • Arduino
  • Moruq Pi
  • Qırmızı Node
  • Python
  • PHPMyAdmin

Addım 4: I/0 siyahısı

Kabel diaqramı
Kabel diaqramı

Addım 5: Bağlama Şeması

Addım 6: Arduino Kodu

Arduino kodu, sensorlar tərəfindən ölçülən məlumatları Raspberry Pi tərəfindən oxunduğu və verilənlər bazasına köçürüldüyü serial bağlantısına yazdırmaqla işləyir.

Arduino'da Arduinonun oxuduğu Raspberry Pi ilə əlaqəli bəzi rəqəmsal giriş pinləri də var və üçdən biri YÜKSEK olarsa IF ifadəsi səbəbindən profil dəyişəcək.

Ayrıca kodu Millis -dən gecikmə əvəzinə istifadə etmək üçün təkmilləşdirdik ki, bu da köhnə gecikmənin aralığında deyil, kodun qalan hissəsini və qalan hissəsini hər zaman oxumağa imkan verir.

Addım 7: Raspberry Pi 3 B+

Moruq Pi 3 B+
Moruq Pi 3 B+

Arduinomuzu internetə və MySQL verilənlər bazasına bağlamaq üçün Raspberry Pi 3 B+ istifadə etdik. Bu, sensorlarımızdakı məlumatları saxlamağımızı və son istifadəçi üçün vizual bir interfeys yaratmağımızı mümkün etdi. İstifadəçi interfeysi üçün İdarə Paneli palitrası ilə Node-Red istifadə etdik.

Sensor məlumatlarımızı Node-Red-də göstərməzdən əvvəl, məlumatları MySQL verilənlər bazasına yükləmək üçün bir yola ehtiyacımız vardı və bunun üçün Raspberry Pi-də işləyəcək bir Python skript hazırladıq.

Addım 8: Python

Python
Python

Python skripti Arduinodan gələn serial ünsiyyətdən məlumat almaq üçün istifadə olunur. Skript sonra məlumatları MySQL verilənlər bazasına göndərir.

Pyserial və mysqlclient olmaqla iki kitabxanadan istifadə etdik.

Beləliklə, ilk addım bu iki kitabxananı yükləməkdir:

  1. PySerial
  2. MySQLclient

PySerial, Arduino-dan serial rabitə vasitəsi ilə məlumat toplamaq üçün istifadə olunur.

cihaz = '/dev/ttyUSB0'

arduino = serial. Serial (cihaz, 9600)

COM-portumuzu təyin etmək üçün birinci sətir istifadə olunur. Raspberry Pi -də Arduino üçün istifadə etdiyimiz /dev /ttyUSB0 -dur. İkinci xətt, Arduinoya seriyalı portu açmaq üçündür. Yalnız hansı COM portunu və əlaqənin hansı sürətlə işlədiyini təyin edirik.

Kodun qalan hissəsi bir müddətdə işləyir.

Sonra birdən çox blokdan istifadə edin. Əvvəlcə kod "cəhd et" blokunun içərisində işləməyə çalışır, əgər bu uğursuz olarsa, istisna bloku işə salır. Ancaq cəhd et bloku yaxşı işləyirsə, istisna olmaqla bloku işləmir, yalnız kodun qalan hissəsini işə salır.

Try bloklarının içərisində serial rabitəsini oxuyacaq və sonra MySQL verilənlər bazamıza göndərəcək kodumuz var.

hygrolist = arduino.readlines (1)

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

Beləliklə, yuxarıdakı kod serial ünsiyyətindəki xətləri oxumaq üçündür. Kodun sonundakı nömrə serialda oxunan xətti müəyyənləşdirir. Beləliklə, bu xətlər müxtəlif dəyişənlərə görə təsnif edilir.

Arduinodan məlumatlar alındıqda, məlumatları MySQL Serverimizə göndərmək üçün mysqlclient modulundan istifadə etdik.

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

Bu xətt MySQL verilənlər bazamıza qoşulmaq üçündür. Serveri, istifadəçi adını, şifrəni və server daxilində hansı verilənlər bazasına qoşulmalı olduğunu göstərir. Burada MySQL DB ilə əlaqəni təyin etməlisiniz.

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

Beləliklə, burada DB bağlantımızı götürürük və SQL sorğusu edirik. Sorğu, dəyərlərin "TempHumid" cədvəlinə, sonra "temp", "nəmli" və "higro" sütunlarına daxil edilməli olduğunu söyləyir. Sonuncu hissə "(%s, %s, %s)" simli formatdır və verilənlər bazasına oxuya biləcəyi bir format vermək üçün istifadə olunur.

Və bütün bu hərəkətlər bir müddətlik dövrəyə salınır ki, məlumatları MySQL serverinə göndərək.

Bütün kodu görmək istəyirsinizsə, python skriptini (TempHumid.py) yükləyin.

Addım 9: MySQL

MySQL
MySQL
MySQL
MySQL

MySQL serveri üçün www.freemysqlhosting.net saytında pulsuz bir xidmətdən istifadə etdik. Raspberry Pi -də yerli olaraq bir server qura bilərdik, ancaq bulud/internetə tam qoşulması üçün pulsuz xidmətlə getdik.

MySQL -ə daxil olmaq üçün phpmyadmin.co saytına daxil olmalı və freemysqlhosting hesabınızdakı məlumatlarla daxil olmalısınız.

İçəridə olduğunuz zaman "TempHumid" adlı bir masa yaratmalısınız, bu masanın içərisində "ID", "temp", "nəmli" və "higro" adlı 4 sütun yaratmalısınız. İlk sütunda (ID) A_I (Avtomatik Artırma) qutusunu işarələməlisiniz. Bu, ID sütununun hər bir verilənlər bazasına bir ID verməsi üçündür. Aşağıdakı bütün sütunlar INT (tam ədəd) olaraq təyin olunmalı və standart dəyəri NULL olaraq təyin edilməlidir.

Addım 10: Qırmızı Node

Qırmızı Node
Qırmızı Node
Qırmızı Node
Qırmızı Node
Qırmızı Node
Qırmızı Node

Layihəmizdə qrafik interfeys yaratmaq üçün Node-Red istifadə etdik. Node-Red, Raspberry Pi üzərində işləyir və MySQL verilənlər bazamızdan məlumat toplayır və son istifadəçinin məlumatları izləyə bilməsi üçün bu məlumatları pişi şəkilli ölçülər və qrafik cədvəllərlə göstərir. Node-Red-in ağıllı tərəfi, hər hansı bir cihazda görünə bilməsidir ki, bu da məzmuna baxan verilmiş cihaz üçün saytın ölçüsünün dəyişdirilməsi deməkdir.

Node-Red proqramımızı qurmaq üçün 1-ci addıma baxın və "Node-Red.docx" adlı sənədi yükləyin. Sonra mətni sağ üst küncdəki idxal funksiyası vasitəsilə Node-Red-ə kopyalayıb yapışdırın.

Bundan sonra MySQL DB üçün DB parametrlərini dəyişdirin.

Tövsiyə: