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

בנה חיישן איכות אוויר IoT Inhouse אין צורך בענן: 10 שלבים
בנה חיישן איכות אוויר IoT Inhouse אין צורך בענן: 10 שלבים

וִידֵאוֹ: בנה חיישן איכות אוויר IoT Inhouse אין צורך בענן: 10 שלבים

וִידֵאוֹ: בנה חיישן איכות אוויר IoT Inhouse אין צורך בענן: 10 שלבים
וִידֵאוֹ: МИНИ КАМЕРА ВИДЕОНАБЛЮДЕНИЯ С АККУМУЛЯТОРАМИ И СОЛНЕЧНОЙ ПАНЕЛЬЮ 100 ДНЕЙ БЕЗ ПОДЗАРЯДКИ!!! 2024, יוני
Anonim
בנה חיישן איכות אוויר IoT Inhouse ללא צורך בענן
בנה חיישן איכות אוויר IoT Inhouse ללא צורך בענן
בנה חיישן איכות אוויר IoT Inhouse ללא צורך בענן
בנה חיישן איכות אוויר IoT Inhouse ללא צורך בענן
בנה חיישן איכות אוויר IoT Inhouse ללא צורך בענן
בנה חיישן איכות אוויר IoT Inhouse ללא צורך בענן
בנה חיישן איכות אוויר IoT Inhouse ללא צורך בענן
בנה חיישן איכות אוויר IoT Inhouse ללא צורך בענן

איכות האוויר הפנימי או החיצוני תלויה במקורות זיהום רבים וגם במזג האוויר.

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

  • טֶמפֶּרָטוּרָה
  • לחות
  • לַחַץ
  • גז אורגני
  • מיקרו חלקיקים

החיישנים המשמשים כאן הם BME680 לקבלת טמפרטורה, לחות, לחץ וערכי גז אורגני ו- PMS5003 לקבלת צפיפות חלקיקי המיקרו.

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

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

אספקה

כל מה שאתה צריך לבנות פרויקט זה הוא לוח מבוסס ESP8266 כמו לוח nodemcu וערכת חיישנים למדידת איכות האוויר. ספריית ה- HomeDing המשמשת בפרויקט זה תומכת בכמה משבבי החיישנים הנפוצים לטמפרטורה, לחות, לחץ ואיכות. כאן משתמשים בשבב BMP680.

  • תקע USB וכבל מיקרו-USB לאספקת חשמל.
  • לוח nodemcu אחד עם מעבד ESP8266.
  • 1 לוח פריצת חיישן BME680.
  • 1 PM2.5 חיישן לייזר חלקיקי אוויר מסוג PMS5003

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

שלב 1: הכנת סביבת Arduino ל- ESP8266

הכן את סביבת Arduino ל- ESP8266
הכן את סביבת Arduino ל- ESP8266
  1. התקן את הגירסה העדכנית ביותר של Arduino IDE (גרסה 1.8.2 כרגע).
  2. השתמש במנהל הלוח להתקנת ההתקנה של התמיכה esp8266. ניתן למצוא הוראה מפורטת כאן:
  3. הגדר את אפשרויות הלוח עבור NodeMCU 1.0 עם מערכת קבצים 1MByte SPIFFS כפי שמוצג בצילום המסך

שלב 2: כלול ספריות נדרשות

כלול ספריות נדרשות
כלול ספריות נדרשות

ספריית ה- HomeDing מסתמכת על כמה ספריות נוספות נפוצות עבור חיישנים ותצוגות לעבודה.

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

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

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

זוהי רשימת הספריות הנדרשות הנוכחיות:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • מנהל התקן ESP8266 ו- ESP32 Oled לתצוגת SSD1306
  • מקודד Rotary
  • ספריית חיישני DHT עבור ESPx
  • OneWire

חיישן לייזר חלקיקי האוויר PMS5003 מתקשר באמצעות אות קו סידורי של 9600 באוד. אות זה נלכד באמצעות הספרייה SoftwareSerial שמגיעה עם התקנת הכלים ESP8266. הקפד לא להתקין גרסה ישנה יותר כספרייה.

שלב 3: התאם אישית את הסקיצה לדוגמא סטנדרטית

התאם אישית את הסקיצה לדוגמא סטנדרטית
התאם אישית את הסקיצה לדוגמא סטנדרטית

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

זה חל על חיישן BME680 הנתמך על ידי רכיב BME680.

חיישן PMS5003 פחות נפוץ וצריך להפעיל אותו על ידי הכללת רכיב ה- PMS בקושחה. זה נעשה על ידי הגדרת #הגדרת HOMEDING_INCLUDE_PMS בחלק רשימת האלמנטים של המערכון

#הגדר HOMEDING_INCLUDE_BME680#הגדר HOMEDING_INCLUDE_PMS

לשם פשטות בהוספת המכשיר החדש לרשת תוכל להוסיף את ה- SSID ואת משפט הסיסמה של ה- WiFi הביתי שלך בקובץ secrets.h לצד קובץ הסקיצה standard.ino. אך תוכל גם להשתמש במנהל ה- WiFi המובנה כדי להוסיף את המכשיר לרשת ללא התצורה המקודדת הזו.

עכשיו הכל בנוגע ליישום הסקיצה נעשה וניתן לאסוף ולהעלות את הקושחה.

שלב 4: העלה את ממשק האינטרנט

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

לפני שתעלה קבצים אלה ייתכן שתרצה להוסיף את קובץ ה- env.json ו- config.json שתוכל למצוא עם מאמר זה מכיוון שזה יקל על העניינים.

התוכן של קבצים אלה הוא מה שהופך את מכשיר ה- IoT למיוחד ומתנהג כחיישן איכות אוויר. זה מוסבר בפירוט בסיפור זה.

השתמש בכלי להעלאת קבצים ESP8266 והעלה את כל הקבצים. הוא צריך אתחול מחדש כדי להפעיל את התצורה.

שלב 5: הוסף את חיישן BME680

הוסף את חיישן BME680
הוסף את חיישן BME680
הוסף את חיישן BME680
הוסף את חיישן BME680
הוסף את חיישן BME680
הוסף את חיישן BME680

חיישן BME680 מתקשר עם הלוח באמצעות אוטובוס I2C.

מכיוון שהוא עשוי להיות משותף עם הרחבות אחרות כמו חיישנים או תצוגות אחרות מוגדר ברמת המכשיר ב- env.json יחד עם שם הרשת של המכשיר. להלן דוגמה שחולצה של הגדרות מכשיר ו- I2C:

"התקן": {

"0": {"name": "airding", "description": "חיישן איכות אוויר", … "i2c-scl": "D2", "i2c-sda": "D1"}}

על לוח הלחם ניתן לראות את כבלי החיבור לחיישן: 3.3V = אדום, GND = שחור, SCL = צהוב, SDA = כחול

ניתן להשתמש בתצורה עבור BME680 ב- config.json:

"bme680": {

"bd": {"address": "0x77", "timetime": "10s"}}

נוסיף את הפעולות מאוחר יותר.

כדי לבדוק את ההתקנה פשוט השתמש בדפדפן ופתח https://airding/board.htm ותראה את ערכי החיישן בפועל המוצגים והם יעודכנו בערך כל 10 שניות:

שלב 6: הוסף את חיישן PMS5003

הוסף את חיישן PMS5003
הוסף את חיישן PMS5003

לא קיבלתי חיישן עם מחבר ידידותי ללוח ולכן נאלצתי לחתוך את אחד המחברים בכבל בעזרת מלחם שלי כדי לחבר אותו ישירות ללוח nodemcu. אתה יכול לראות את זה עדיין בתמונות האחרונות.

יש לקחת את הכוח לחיישן זה מהווין המופעל בדרך כלל על ידי אוטובוס ה- USB. GND זהה אך זמין גם ליד סיכת Vin.

הנתונים מהחיישן מועברים בפורמט סידורי סטנדרטי של 9600 באוד כך שצריך להגדיר את סיכות rx ו- tx וזמן הקריאה:

"pms": {

"pm25": {"description": "חיישן חלקיקים pm25", "pinrx": "D6", "pintx": "D5", "זמן קריאה": "10s"}}

נוסיף את הפעולות מאוחר יותר.

כדי לבדוק את ההתקנה שוב פשוט הפעל מחדש את המכשיר והשתמש בדפדפן ופתח https://airding/board.htm ותראה את הערך pm35 בפועל של החיישן המוצג והם יעודכנו בערך כל 10 שניות אך ערך זה הוא בדרך כלל לא משתנה לעתים קרובות.

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

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

שלב 7: הוספת כמה תכונות רשת

תמצית התצורה הבאה ב- env.json מאפשרת

  • עדכון הקושחה דרך האוויר
  • מאפשר לזהות את הרשת באמצעות פרוטוקול רשת SSDP ומאחזר את הזמן הנוכחי משרת ntp.

{

… "ota": {"0": {"port": 8266, "passwd": "123", "description": "האזינו לעדכוני OTA עדכונים" OTA "}}," ssdp ": {" 0 ": {" Manufacturer ":" yourname "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}

עליך להתאים את אזור הזמן למיקום שלך. אם יש לך ספק אתה יכול להשתמש באתר האינטרנט https://www.timeanddate.com/ כדי לקבל את הקיזוז מ- UTC/GMT. "2" מתאים לקיץ גרמניה.

תוכל גם להתאים את סיסמת ota לאחר קריאת ההוראות בנוגע למצב השמירה בתיעוד בכתובת

לאחר הפעלה מחדש אתה עשוי למצוא את מכשיר האוורור ברשת ולאחר קבלת תשובה משרת ntp הזמן המקומי זמין.

שלב 8: הוספת קצת רישום

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

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

התצורה הבאה יוצרת את 2 יסודות היומן של גז וחלקיקים:

{

"log": {"pm": {"description": "יומן pm25", "filename": "/pmlog.txt", "fileize": "10000"}, "aq": {"description": " יומן איכות הגז "," שם קובץ ":"/aqlog.txt "," גודל הקובץ ":" 10000 "}}}

שלב 9: פעולות

פעולות
פעולות

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

מוגדרות פעולות ברכיב הפולט פעולות 2 ערכים נדרשים:

  • אירוע ה- pms/p25 onvalue שולח את הערך בפועל לרכיב log/pm באמצעות פעולת ערך.
  • אירוע bme680/bd ongas שולח את הערך האמיתי לרכיב log/pm באמצעות פעולת ערך.

{

"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}

עכשיו כל האלמנטים מוגדרים.

שלב 10: תמונות וקבצי תצורה

תמונות וקבצי תצורה
תמונות וקבצי תצורה
תמונות וקבצי תצורה
תמונות וקבצי תצורה
תמונות וקבצי תצורה
תמונות וקבצי תצורה

להלן תמונה של חיישן איכות האוויר הסופי של IoT שלי.

יש לשנות את שם קובצי התצורה להורדה ל- *.json (no.txt) לפני העלאה.

קישורים והפניות

  • מאגר קוד המקור של HomeDing:
  • תיעוד:
  • דוגמה סטנדרטית:
  • רכיב BME680:
  • רכיב PMS:
  • רכיב יומן:
  • אלמנט NtpTime:

מוּמלָץ: