فهرست مطالب:

گلخانه UCL - IIOT: 11 مرحله
گلخانه UCL - IIOT: 11 مرحله

تصویری: گلخانه UCL - IIOT: 11 مرحله

تصویری: گلخانه UCL - IIOT: 11 مرحله
تصویری: واقعا رفتم جزیره لختیها لخت مادرزاد شدم 2024, نوامبر
Anonim
UCL - گلخانه IIOT
UCL - گلخانه IIOT

این پروژه توسعه پروژه قبلی ما با گلخانه است (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

در این پروژه ما یک پایگاه داده اضافه کردیم ، که در آن تمام داده های خود را وارد می کنیم و سپس آن را با node-red تجسم می کنیم تا نمای کلی تری داشته باشیم.

محتوایی که ما در پایگاه داده خود وارد می کنیم رطوبت ، دما و رطوبت خاک است که در نمودارهای مختلف نشان داده شده است.

علاوه بر dataloggin ، ما همچنین قادر به کنترل نمایه فعال در گلخانه و کنترل آن از راه دور هستیم.

سپس ما همچنین می توانیم پمپ و فن را به صورت دستی کنترل کنیم.

مرحله 1: راهنمای نصب

راهنمای نصب
راهنمای نصب

اولین قدم نصب همه اجزای مختلف است.

در داخل براکت ها () ، ما محل اتصال قطعه را ذکر کرده ایم. به عنوان مثال ، آردوینو از طریق کابل USB به رزبری پای متصل می شود.

سخت افزار مورد استفاده:

  • آردوینو (تمشک پای)
  • رزبری پای 3 B+
  • رطوبت سنج خاک (آردوینو)
  • سنسور DHT11 (آردوینو)
  • پمپ آب شناور HG-320 (رله)
  • رله 5 ولت (آردوینو)
  • فن کامپیوتر (رله)
  • منبع تغذیه 230 ولت (پمپ)

نرم افزار مورد استفاده:

  • Raspbian (سیستم عامل رزبری پای)
  • آردوینو IDE
  • پایتون (Raspberry Pi)- PySerial- MySQLclient
  • Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- داشبورد
  • سرور MySQL (freemysqlhosting.net)

ابتدا باید اجزای سخت افزاری را متصل کنید ، بنابراین برای ساخت گلخانه این راهنما را دنبال کنید: راهنمای نصب.

سپس باید Raspbian OS را بر روی Raspberry Pi خود نصب کنید. پس از آن شما باید پایتون را نصب کرده و سپس کتابخانه های پایتون را نصب کنید.

گام بعدی این است که Node-Red را روی Raspberry Pi نصب کنید ، و سپس به مدیر پالت بروید و ماژول هایی را که قبلاً گفته شد نصب کنید.

سپس به این سایت MySQL Server رایگان بروید و یک سرور MySQL رایگان ایجاد کنید.

هنگامی که همه اینها انجام شد ، شما آماده انتقال اسکریپت پایتون به رزبری پای خود هستید ، اسکریپت Node-Red را وارد کرده و کد Arduino را بارگذاری کنید.

مرحله 2: ویترین کنترل

Image
Image

مرحله 3: لیست قطعات/نرم افزارهای مورد استفاده در پروژه

ما از فناوری زیر برای ساخت گلخانه استفاده کرده ایم

  • آردوینو
  • تمشک پای
  • گره قرمز
  • پایتون
  • PHPMyAdmin

مرحله 4: لیست I/0

نمودار سیم کشی
نمودار سیم کشی

مرحله 5: نمودار سیم کشی

مرحله 6: کد آردوینو

کد آردوینو با چاپ داده ها ، اندازه گیری شده توسط سنسورها ، به اتصال سریال و در آنجا توسط Raspberry Pi خوانده شده و به پایگاه داده منتقل می شود.

آردوینو همچنین دارای چند ورودی دیجیتالی متصل به رزبری پای است که آردوینو آنها را می خواند و اگر یکی از این سه مورد HIGH شود مشخصات به دلیل دستور IF تغییر می کند.

همچنین ما کد را ارتقا داده ایم تا از Millis به جای تاخیر استفاده کنیم که باعث می شود باسن ها و بقیه کد به جای فاصله زمانی با تاخیر قدیمی به طور مداوم خوانده شوند.

مرحله 7: Raspberry Pi 3 B+

رزبری پای 3 B+
رزبری پای 3 B+

ما از Raspberry Pi 3 B+ برای اتصال Arduino به اینترنت و پایگاه داده MySQL استفاده کردیم. این امر به ما این امکان را داد که داده های حسگرهای خود را ذخیره کرده و یک رابط بصری برای کاربر نهایی ایجاد کنیم. برای رابط کاربری ما از Node-Red با پالت Dashboard استفاده کردیم.

اما قبل از اینکه بتوانیم داده های حسگر خود را در Node-Red نشان دهیم ، به راهی نیاز داشتیم که داده ها را در پایگاه داده MySQL بارگذاری کنیم و برای این کار یک اسکریپت پایتون تهیه کردیم که روی رزبری پای ما اجرا می شد.

مرحله 8: پایتون

پایتون
پایتون

اسکریپت پایتون برای دریافت داده ها از ارتباطات سریال از آردوینو استفاده می شود. سپس اسکریپت داده ها را به پایگاه داده MySQL ارسال می کند.

ما از دو کتابخانه pyserial و mysqlclient استفاده کردیم.

بنابراین اولین قدم این است که این دو کتابخانه را بارگیری کنید:

  1. PySerial
  2. MySQLclient

PySerial برای جمع آوری داده ها از Arduino از طریق ارتباط سریال استفاده می شود.

دستگاه = '/dev/ttyUSB0'

arduino = سریال. سریال (دستگاه ، 9600)

خط اول برای تعریف پورت COM ما استفاده می شود. در Raspberry Pi عبارت /dev /ttyUSB0 است که برای آردوینو استفاده می کنیم. خط دوم برای باز کردن پورت سریال به آردوینو است. ما فقط تعریف می کنیم که کدام پورت COM و با چه سرعتی اتصال در حال اجرا است.

بقیه کد در یک حلقه while اجرا می شود.

در مرحله بعد از چندین بلوک Try and Except استفاده می کنیم. ابتدا کد سعی می کند داخل بلوک Try اجرا شود ، در صورت عدم موفقیت ، بلاک Except را اجرا می کند. اما اگر بلوک Try خوب اجرا شود ، جز بلوک را اجرا نمی کند ، فقط بقیه کد را اجرا می کند.

بنابراین در بلوک های Try ما کدی داریم که سریال ارتباطی را خوانده و سپس به پایگاه داده MySQL ارسال می کند.

hygrolist = arduino.readlines (1)

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

بنابراین کد بالا برای خواندن خطوط در سریال ارتباطی است. شماره در انتهای کد مشخص کننده خطی است که در سریال خوانده شده است. بنابراین این خطوط در متغیرهای مختلف طبقه بندی می شوند.

هنگامی که داده ها از Arduino دریافت می شود ، ما از ماژول mysqlclient برای ارسال داده به سرور MySQL خود استفاده می کنیم.

db = _mysql.connect (host = "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" ، "humid" و "hygro" درج شود. قسمت آخر "(٪ s،٪ s،٪ s)" قالب بندی رشته است و برای دادن فرمت قابل خواندن به پایگاه داده استفاده می شود.

و همه این اقدامات در یک حلقه while قرار می گیرند ، به طوری که ما همچنان داده ها را به سرور MySQL ارسال می کنیم.

اگر می خواهید تمام کد را ببینید ، اسکریپت پایتون (TempHumid.py) را بارگیری کنید.

مرحله 9: MySQL

MySQL
MySQL
MySQL
MySQL

برای سرور MySQL ، ما از یک سرویس رایگان در www.freemysqlhosting.net استفاده کردیم. ما می توانیم سرور را در Raspberry Pi به صورت محلی ایجاد کنیم ، اما با سرویس رایگان آن را به طور کامل به ابر/اینترنت متصل کردیم.

برای دسترسی به MySQL خود ، باید به phpmyadmin.co بروید و با اعتبار از حساب freemysqlhosting خود وارد شوید.

هنگامی که داخل هستید ، باید جدولی به نام "TempHumid" ایجاد کنید ، در داخل این جدول باید 4 ستون به نام "ID" ، "temp" ، "humid" و "hygro" ایجاد کنید. در ستون اول (ID) باید کادر A_I (افزایش خودکار) را علامت بزنید. این به این دلیل است که ستون ID به هر مجموعه داده یک شناسه می دهد. همه ستونهای زیر باید به عنوان INT (عدد صحیح) تنظیم شوند و مقدار استاندارد را بر روی NULL تنظیم کنند.

مرحله 10: Node-Red

گره قرمز
گره قرمز
گره قرمز
گره قرمز
گره قرمز
گره قرمز

در پروژه ما از Node-Red برای ایجاد یک رابط گرافیکی استفاده کردیم. Node-Red روی Raspberry Pi اجرا می شود و داده ها را از پایگاه داده MySQL ما جمع آوری می کند و این داده ها را با اندازه گیری های شکل دونات و نمودارهای گرافیکی نشان می دهد ، به طوری که کاربر نهایی می تواند بر داده ها نظارت کند. نکته هوشمند در مورد Node-Red این است که روی هر دستگاه قابل مشاهده است ، به این معنی که اندازه سایت برای دستگاه خاصی که در حال مشاهده محتوا است تغییر می کند.

برای نصب برنامه نویسی قرمز ما ، به مرحله 1 نگاه کنید و سندی را با نام "Node-Red.docx" بارگیری کنید. سپس متن را از طریق عملکرد وارد کردن در گوشه سمت راست بالا در Node-Red کپی و جایگذاری کنید.

پس از آن تنظیمات DB را برای MySQL DB خود تغییر دهید.

توصیه شده: