תוכן עניינים:

חממת 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…).

בפרויקט זה הוספנו מסד נתונים, שבו אנו רושמים את כל הנתונים שלנו ולאחר מכן מדמיינים אותו בעזרת צומת אדום לקבלת סקירה כללית יותר.

התוכן שאנו נכנסים אליו במאגר הנתונים שלנו הוא לחות, טמפרטורה ולחות הקרקע, המוצג בתרשימים שונים.

מלבד dataloggin אנחנו גם יכולים לשלוט איזה פרופיל פעיל בחממה ולשלוט בו מרחוק.

אז אנחנו גם יכולים לשלוט במשאבה ובמאוורר באופן ידני.

שלב 1: מדריך התקנה

מדריך התקנה
מדריך התקנה

השלב הראשון הוא התקנת כל הרכיבים השונים.

בתוך הסוגריים (), רשמנו לאן הרכיב מחובר. כך למשל, Arduino מחובר ל- Raspberry Pi באמצעות כבל USB.

חומרה בשימוש:

  • ארדואינו (פטל פאי)
  • Raspberry Pi 3 B+
  • היגרומטר קרקע (ארדואינו)
  • חיישן DHT11 (Arduino)
  • משאבת מים טבולה HG-320 (ממסר)
  • ממסר 5V (Arduino)
  • מאוורר מחשב (ממסר)
  • ספק כוח 230V (משאבה)

תוכנה בשימוש:

  • Raspbian (מערכת הפעלה ל- Raspberry Pi)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Dashboard
  • שרת MySQL (freemysqlhosting.net)

ראשית יהיה עליך לחבר את רכיבי החומרה, לכן פעל על פי מדריך זה לבניית החממה: מדריך התקנה.

לאחר מכן יהיה עליך להתקין מערכת הפעלה Raspbian ב- Raspberry Pi שלך. לאחר מכן יהיה עליך להתקין את פייתון ולאחר מכן להתקין את ספריות הפייתון.

השלב הבא הוא התקנת Node-Red ב- Raspberry Pi ולאחר מכן נווט אל מנהל המשטחים והתקן את המודולים שצוינו קודם לכן.

לאחר מכן עבור לאתר זה שרת MySQL חינם וצור שרת MySQL בחינם.

כאשר כל זה נעשה, אתה מוכן להעביר את סקריפט הפיתון ל- Raspberry Pi שלך, לייבא את הסקריפט Node-Red ולהעלות את הקוד עבור Arduino.

שלב 2: חלון שליטה

Image
Image

שלב 3: רשימת החלקים/תוכנות המשמשות את הפרויקט

השתמשנו בטכנולוגיה הבאה לייצור החממה

  • ארדואינו
  • פאי פטל
  • צומת-אדום
  • פִּיתוֹן
  • PHPMyAdmin

שלב 4: רשימת I/0

תרשים חיווט
תרשים חיווט

שלב 5: תרשים חיווט

שלב 6: קוד הארדואינו

קוד הארדואינו פועל על ידי הדפסת הנתונים, הנמדדים על ידי החיישנים, לחיבור הטורי שבו הוא נקרא על ידי ה- Raspberry Pi ומועבר למסד הנתונים.

ל- Arduino יש גם כמה סיכות קלט דיגיטליות המחוברות ל- Raspberry Pi שהארדואינו קורא ואם אחד מהשלושה יהפוך ל- HIGH הפרופיל ישתנה בגלל הצהרת IF.

כמו כן, שדרגנו את הקוד לשימוש ב- Millis במקום עיכוב המאפשר לקרוא את הישבן ושאר הקוד כל הזמן במקום מרווח על ידי העיכוב הישן.

שלב 7: Raspberry Pi 3 B+

Raspberry Pi 3 B+
Raspberry Pi 3 B+

השתמשנו ב- Raspberry Pi 3 B+ לחיבור ה- Arduino שלנו לאינטרנט ולמסד נתונים של MySQL. זה איפשר לנו לאחסן נתונים מהחיישנים שלנו ולעשות ממשק ויזואלי עבור משתמש הקצה. עבור ממשק המשתמש השתמשנו ב- Node-Red עם לוח לוח המחוונים.

אבל לפני שנוכל להציג את נתוני החיישנים שלנו ב- Node-Red, היינו צריכים דרך להעלות את הנתונים במסד נתונים של MySQL, ולשם כך הכנו סקריפט של פייתון שיפעל על ה- Raspberry Pi שלנו.

שלב 8: פייתון

פִּיתוֹן
פִּיתוֹן

סקריפט Python משמש לקבלת נתונים מהתקשורת הסדרתית המגיעה מהארדואינו. התסריט שולח את הנתונים למסד נתונים של MySQL.

השתמשנו בשתי ספריות, pyserial ו- mysqlclient.

אז השלב הראשון יהיה להוריד את שתי הספריות האלה:

  1. PySerial
  2. MySQLclient

PySerial משמש לאיסוף נתונים מהארדואינו באמצעות תקשורת טורית.

device = '/dev/ttyUSB0'

arduino = serial. Serial (מכשיר, 9600)

השורה הראשונה משמשת להגדרת יציאת ה- COM שלנו. ב- Raspberry Pi הוא /dev /ttyUSB0, שאנו משתמשים בו עבור ה- Arduino. השורה השנייה מיועדת לפתיחת היציאה הסדרתית לארדואינו. אנחנו רק מגדירים באיזו יציאת COM ובאיזו מהירות החיבור פועל.

שאר הקוד פועל בלולאת זמן.

לאחר מכן אנו משתמשים במספר בלוקים של Try and Except. ראשית הקוד מנסה לרוץ בתוך הבלוק Try, אם זה נכשל אז הוא מפעיל את הבלוק חוץ. אבל אם הבלוק Try פועל כשורה, הוא לא מפעיל את הבלוק חוץ, הוא רק מריץ את שאר הקוד.

אז בתוך בלוקי Try יש לנו קוד שיקרא את התקשורת הסדרתית ואז ישלח אותו למסד הנתונים MySQL שלנו.

hygrolist = arduino.readlines (1)

תבנית = arduino.readlines (2) humidlist = arduino.readlines (3)

אז הקוד לעיל מיועד לקריאת שורות בתקשורת הסדרתית. המספר בסוף הקוד מגדיר את השורה שנקראה בסדרה. לכן קווים אלה מסווגים במשתנים שונים.

כאשר מתקבלים נתונים מהארדואינו, השתמשנו במודול mysqlclient לשליחת הנתונים לשרת MySQL שלנו.

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

קו זה מיועד לחיבור למסד הנתונים MySQL שלנו. הוא מציין את השרת, שם המשתמש, הסיסמה ולאיזה מסד נתונים עליו להתחבר בתוך השרת. כאן עליך לציין את החיבור ל- MySQL DB שלך.

db.query ("INSERTINTO` TempHumid` (`temp`,` לח`, `hygro`) ערכים (%s, %s, %s)" %(temp, לח, hygro))

אז הנה אנו לוקחים את חיבור ה- DB שלנו ועושים שאילתת SQL. השאילתה אומרת שיש להכניס ערכים לתוך הטבלה "TempHumid" ולאחר מכן לתוך העמודות "temp", "לח" ו- "hygro". החלק האחרון "(%s, %s, %s)" הוא עיצוב מחרוזות ומשמש לתת את מסד הנתונים לתבנית שהוא יכול לקרוא.

וכל הפעולה הזו נכנסת ללולאת זמן, כך שנמשיך לשלוח נתונים לשרת MySQL.

אם אתה רוצה לראות את כל הקוד, הורד את סקריפט הפייתון (TempHumid.py).

שלב 9: MySQL

MySQL
MySQL
MySQL
MySQL

עבור שרת MySQL, השתמשנו בשירות חינם באתר www.freemysqlhosting.net. יכולנו לייצר שרת מקומי ב- Raspberry Pi, אבל הלכנו עם השירות החינמי כדי להפוך אותו מחובר לחלוטין לענן/לאינטרנט.

כדי לגשת ל- MySQL שלך, עליך להיכנס אל phpmyadmin.co ולהיכנס עם האישורים מחשבון freemysqlhosting שלך.

כשאתה בפנים, עליך ליצור טבלה בשם "TempHumid", בתוך הטבלה הזו עליך ליצור 4 עמודות בשם "ID", "temp", "לח" ו- "hygro". בעמודה הראשונה (מזהה) עליך לסמן את התיבה A_I (תוספת אוטומטית). זאת, כך שעמודת המזהה נותנת לכל מערך מזהה. יש להגדיר את כל העמודות הבאות כ- INT (מספר שלם), ולהגדיר את הערך הסטנדרטי ל- NULL.

שלב 10: צומת-אדום

צומת-אדום
צומת-אדום
צומת-אדום
צומת-אדום
צומת-אדום
צומת-אדום

בפרויקט שלנו השתמשנו ב- Node-Red ליצירת ממשק גרפי. Node-Red פועל ב- Raspberry Pi והוא אוסף נתונים ממאגר הנתונים של MySQL שלנו ומציג נתונים אלה בעזרת מדידים בצורת סופגנייה ותרשימים גרפיים, כך שמשתמש הקצה יכול לעקוב אחר הנתונים. הדבר החכם ב- Node-Red הוא שניתן לצפות בו בכל מכשיר, מה שאומר שהאתר ישתנה לגודל המכשיר הנתון הצופה בתוכן.

כדי להתקין את התכנות שלנו Node-Red, עיין בשלב 1 והורד את המסמך בשם "Node-Red.docx". לאחר מכן העתק והדבק את הטקסט ב- Node-Red באמצעות פונקציית הייבוא בפינה הימנית העליונה.

לאחר מכן שנה את הגדרות ה- DB עבור MySQL DB שלך.

מוּמלָץ: