Агуулгын хүснэгт:

UCL - IIOT хүлэмж: 11 алхам
UCL - IIOT хүлэмж: 11 алхам

Видео: UCL - IIOT хүлэмж: 11 алхам

Видео: UCL - IIOT хүлэмж: 11 алхам
Видео: UCL-IIoT-Datalogger 2024, Долдугаар сарын
Anonim
UCL - IIOT хүлэмж
UCL - IIOT хүлэмж

Энэ төсөл нь манай хүлэмжийн төслийн өмнөх өргөтгөл юм (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Энэ төсөлд бид бүх өгөгдлөө бүртгээд дараа нь зангилааны улаан өнгөөр дүрслэн харуулахын тулд мэдээллийн санг нэмж оруулсан болно.

Манай мэдээллийн санд нэвтэрч буй агуулга бол хөрсний чийгшил, температур, чийгшил бөгөөд үүнийг янз бүрийн диаграммд харуулав.

Даталогиноос гадна бид хүлэмжинд аль профайл идэвхтэй байгааг хянах, алсаас удирдах боломжтой.

Дараа нь бид насос, сэнсийг гараар хянах боломжтой болно.

Алхам 1: Суулгах гарын авлага

Суулгах гарын авлага
Суулгах гарын авлага

Эхний алхам бол бүх бүрэлдэхүүн хэсгүүдийг суулгах явдал юм.

Хаалт () дотор бид бүрэлдэхүүн хэсэг хаана холбогдсоныг жагсаасан болно. Жишээлбэл, Arduino нь Raspberry Pi -тэй USB кабелиар холбогддог.

Ашигласан техник хангамж:

  • Arduino (Raspberry Pi)
  • Raspberry Pi 3 B+
  • Хөрсний гигрометр (Arduino)
  • DHT11 мэдрэгч (Arduino)
  • HG-320 гүний усны насос (буухиа)
  • 5V реле (Arduino)
  • Компьютерийн фен (буухиа)
  • 230V цахилгаан хангамж (насос)

Ашигласан програм хангамж:

  • Raspbian (Raspberry Pi -д зориулсан OS)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Хяналтын самбар
  • MySQL сервер (freemysqlhosting.net)

Эхлээд та тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүдийг холбох хэрэгтэй болно, ингэснээр хүлэмжийг бий болгохын тулд энэхүү гарын авлагыг дагана уу: Суулгах гарын авлага.

Дараа нь та Raspberry Pi дээрээ Raspbian OS суулгах хэрэгтэй болно. Үүний дараа та Python, дараа нь python номын санг суулгах хэрэгтэй болно.

Дараагийн алхам бол Node-Red-ийг Raspberry Pi дээр суулгаж, дараа нь тавиурын менежерт очиж, өмнө дурдсан модулиудыг суулгах явдал юм.

Дараа нь энэ сайтад үнэгүй MySQL сервер рүү ороод үнэгүй MySQL сервер үүсгээрэй.

Энэ бүгдийг хийсний дараа та питон скриптийг өөрийн Raspberry Pi руу шилжүүлэх, Node-Red скриптийг импортлох, Arduino-ийн кодыг байршуулахад бэлэн байна.

Алхам 2: Хяналтын дэлгэц

Image
Image

Алхам 3: Төсөлд ашигласан эд анги/програм хангамжийн жагсаалт

Бид дараах технологийг ашиглан хүлэмжийн хийц хийсэн

  • Ардуино
  • Raspberry Pi
  • Улаан зангилаа
  • Python
  • PHPMyAdmin

Алхам 4: I/0 жагсаалт

Утас диаграмм
Утас диаграмм

Алхам 5: Утасны диаграм

Алхам 6: Arduino код

Arduino код нь мэдрэгчээр хэмжсэн өгөгдлийг Raspberry Pi -ээр уншиж өгөгдлийн санд дамжуулах цуваа холболт дээр хэвлэх замаар ажилладаг.

Arduino нь Raspberry Pi -тэй холбогдсон дижитал оролттой бөгөөд Arduino уншдаг бөгөөд хэрэв гурвын аль нэг нь өндөр бол IF мэдэгдлийн улмаас профайл өөрчлөгдөх болно.

Түүнчлэн бид кодыг хоцрохын оронд Millis -ийг ашиглахаар шинэчилсэн бөгөөд энэ нь хуучин хоцролтын интервалын оронд код болон үлдсэн хэсгийг байнга унших боломжийг олгодог.

Алхам 7: Raspberry Pi 3 B+

Raspberry Pi 3 B+
Raspberry Pi 3 B+

Бид Arduino -г интернет болон MySQL мэдээллийн баазтай холбохын тулд Raspberry Pi 3 B+ ашигласан. Энэ нь бидэнд мэдрэгчийнхээ өгөгдлийг хадгалах, эцсийн хэрэглэгчдэд харааны интерфэйс хийх боломжийг олгосон юм. Хэрэглэгчийн интерфэйсийн хувьд бид Node-Red-ийг самбарын самбараар ашигласан.

Гэхдээ бид Node-Red дээр мэдрэгчийнхээ мэдээллийг харуулахаас өмнө өгөгдлийг MySQL мэдээллийн баазад байршуулах арга хэрэгтэй байсан бөгөөд үүний тулд бид Raspberry Pi дээр ажилладаг Python скрипт хийсэн.

Алхам 8: Python

Python
Python

Python скриптийг Arduino-ээс ирж буй цуваа холбооноос өгөгдөл хүлээн авахад ашигладаг. Дараа нь скрипт өгөгдлийг MySQL мэдээллийн санд илгээдэг.

Бид pyserial болон mysqlclient гэсэн хоёр номын санг ашигласан.

Тиймээс эхний алхам бол эдгээр хоёр номын санг татаж авах явдал юм.

  1. PySerial
  2. MySQLclient

PySerial нь Arduino-аас цуваа холболтоор мэдээлэл цуглуулахад ашиглагддаг.

төхөөрөмж = '/dev/ttyUSB0'

arduino = цуваа. Цуваа (төхөөрөмж, 9600)

Эхний мөрийг манай COM портыг тодорхойлоход ашиглаж байна. Raspberry Pi дээр бид Arduino -д ашигладаг /dev /ttyUSB0 юм. Хоёрдахь мөр нь Arduino руу цуваа портыг нээх зориулалттай. Бид зүгээр л ямар COM порт, ямар хурдаар холболт ажиллаж байгааг тодорхойлдог.

Кодын үлдсэн хэсэг нь хэсэг хугацааны давталтаар ажилладаг.

Дараа нь бид хэд хэдэн Try and Except блокуудыг ашигладаг. Эхлээд код нь Try блок дотор ажиллахыг оролдож байгаа бөгөөд хэрэв амжилтгүй болбол Except блокыг ажиллуулна. Гэхдээ хэрэв Try блок сайн ажиллаж байвал энэ нь Except -ийг ажиллуулахгүй, харин кодын үлдсэн хэсгийг ажиллуулдаг.

Try блокуудын дотор бид цуваа холболтыг уншиж, дараа нь MySQL мэдээллийн санд илгээх кодтой болно.

hygrolist = arduino.readlines (1)

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

Дээрх код нь цуваа холболт дахь мөрүүдийг уншихад зориулагдсан болно. Кодын төгсгөл дэх тоо нь цувралд уншсан мөрийг тодорхойлдог. Тиймээс эдгээр мөрүүдийг янз бүрийн хувьсагчаар ангилж байна.

Arduino -аас өгөгдөл хүлээн авах үед бид өгөгдлийг MySQL сервер рүү илгээх mysqlclient модулийг ашигласан.

db = _mysql.connect (хост = "sql7.freemysqlhosting.net", хэрэглэгч = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

Энэ мөр нь манай MySQL мэдээллийн санд холбогдох зориулалттай. Энэ нь сервер, хэрэглэгчийн нэр, нууц үг, сервер дотор ямар өгөгдлийн сантай холбогдохыг зааж өгдөг. Энд та MySQL DB -ийнхээ холболтыг зааж өгөх ёстой.

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

Тиймээс бид DB холболтоо аваад SQL асуулга хийж байна. Асуулт нь утгыг "TempHumid" хүснэгтэд оруулаад дараа нь "temp", "чийглэг", "hygro" багануудад оруулах ёстой гэж хэлдэг. "(%S, %s, %s)" гэсэн сүүлийн хэсэг нь мөр форматлах бөгөөд өгөгдлийн санд уншиж болох форматыг өгөхөд ашиглагддаг.

Энэ бүх үйлдлийг хэсэг хугацааны дотор хийдэг бөгөөд ингэснээр бид өгөгдлийг MySQL сервер рүү илгээдэг.

Хэрэв та бүх кодыг үзэхийг хүсч байвал python скриптийг татаж аваарай (TempHumid.py).

Алхам 9: MySQL

MySQL
MySQL
MySQL
MySQL

MySQL серверийн хувьд бид www.freemysqlhosting.net дээр үнэгүй үйлчилгээ ашигладаг байсан. Бид Raspberry Pi дээр дотооддоо сервер хийж болох байсан ч үүл/интернетэд бүрэн холбогдохын тулд үнэгүй үйлчилгээнд хамрагдсан.

MySQL -д нэвтрэхийн тулд та phpmyadmin.co хаягаар орж freemysqlhosting данснаасаа итгэмжлэлээр нэвтрэх ёстой.

Та дотор байхдаа "TempHumid" нэртэй хүснэгт үүсгэх ёстой бөгөөд энэ хүснэгт дотор "ID", "temp", "humid", "hygro" гэсэн 4 багана үүсгэх ёстой. Эхний багана (ID) нь A_I (Автомат өсөлт) нүдийг чагтална уу. Ингэснээр ID багана нь өгөгдлийн сан бүрт ID өгдөг. Дараах бүх баганыг INT (бүхэл тоо) болгож, стандарт утгыг NULL болгож тохируулах ёстой.

Алхам 10: Улаан зангилаа

Улаан зангилаа
Улаан зангилаа
Улаан зангилаа
Улаан зангилаа
Улаан зангилаа
Улаан зангилаа

Манай төсөлд бид Node-Red-ийг ашиглан график интерфэйс үүсгэсэн. Node-Red нь Raspberry Pi дээр ажилладаг бөгөөд манай MySQL мэдээллийн сангаас мэдээлэл цуглуулдаг бөгөөд эдгээр өгөгдлийг гурилан хэлбэртэй хэмжигч, график диаграмаар харуулдаг бөгөөд ингэснээр эцсийн хэрэглэгч өгөгдлийг хянах боломжтой болно. Node-Red-ийн хамгийн ухаалаг зүйл бол үүнийг ямар ч төхөөрөмж дээр үзэх боломжтой бөгөөд энэ нь тухайн контентыг үзэж буй тухайн төхөөрөмжийн хувьд сайтын хэмжээг өөрчлөх болно гэсэн үг юм.

Манай Node-Red програмыг суулгахын тулд 1-р алхамыг үзээд "Node-Red.docx" нэртэй баримтыг татаж аваарай. Дараа нь текстийг баруун дээд буланд байгаа импортын функцээр Node-Red болгон хуулж буулгана уу.

Үүний дараа MySQL мэдээллийн сангийнхаа мэдээллийн сангийн тохиргоог өөрчилнө үү.

Зөвлөмж болгож буй: