טמפרטורה ולחות מארדואינו ועד פטל פטל: 6 שלבים
טמפרטורה ולחות מארדואינו ועד פטל פטל: 6 שלבים
Anonim
טמפרטורה ולחות מארדואינו ועד פטל פטל
טמפרטורה ולחות מארדואינו ועד פטל פטל

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

עבור ההוראה הראשונה שלי אדגים כיצד ליצור אב טיפוס:

  • חבר חיישן טמפרטורה ולחות DHT11 ל- Arduino Mega 2560
  • תכנת ה- Arduino ב- C לקרוא את נתוני החיישן
  • הצג נתוני טמפרטורה ולחות בתצוגה LCD המחוברת ל- Arduino
  • הנחו את הארדואינו לשלוח את נתוני החיישן ל- Raspberry Pi 3 דגם B+
  • כתוב קוד ב- Python להצגת נתוני החיישן

מדוע להשתמש ב- RPi ו- Arduino יחד?

חיבור ה- Arduino ו- RPi יכול לאפשר יכולות נהדרות אם אתה זקוק לקלט/פלט שהארדואינו מצטיין בו ותקשורת רשת/multithreading/visuals שה- RPi הרבה יותר טוב בו.

במילים אחרות, אנו הולכים להשתמש ב- Arduino למשימות עתירות שליטה ולהשתמש ב- RPi למשימות אינטנסיביות.

גרסאות מחוספסות של Arduinos זמינות ב- Rugged-Circuits

שלב 1: קבלת חומרה של Arduino ו- RPi

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

ערכת מתחילים של ארדואינו (Banggood)

ערכת Starter Arduino (אמזון ארה ב)

Element14 RPi 3 B+ לוח אם (אמזון ארה ב)

Raspberry Pi 3 B+ מארז (אמזון ארה ב)

כרטיס מיקרו SD בנפח 32GB (אמזון ארה ב).

שלב 2: חבר את DHT11 & LCD ל- Arduino

חבר את DHT11 ו- LCD ל- Arduino
חבר את DHT11 ו- LCD ל- Arduino

שלב 3: תכנת את הארדואינו

#arduino-dht11-lcd2004

#מחבר: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ #קורא נתונים מ- DHT11 המחובר ל- Arduino, מוצג ב- LCD2004 ושולח נתונים באמצעות סדרה ל- Raspberry Pi

#לִכלוֹל

#לִכלוֹל

// תצוגת LCD מוגדרת כמספר המכשיר 0x27 באוטובוס I2C

LiquidCrystal_I2C lcd (0x27, 20, 4);

// DHT11 מחובר לסיכה 8

dht DHT; #define sensor פין 8

// Raspberry Pi מחובר ל- Serial 0

#define serialPi Serial

הגדרת בטל () {

lcd.begin (20, 4); // מאתחל את הממשק למסך ה- LCD, ומציין את הממדים (רוחב וגובה) הצג lcd.init (); lcd.backlight (); serialPi.begin (9600); // ארדואינו למסך סדרתי}

לולאת חלל () {

// קראו נתוני חיישנים

int sensorData = DHT.read11 (sensorPin); טמפרטורת מצוף = DHT.temperature; צף לחות = DHT. לחות;

// טמפרטורת הדפסה

lcd.setCursor (0, 0); lcd.print ("טמפרטורה"); lcd.print (טמפרטורה); lcd.print ("C");

// הדפס לחות

lcd.setCursor (0, 1); lcd.print ("לחות"); lcd.print (לחות); lcd.print (" %");

// שלח נתוני טמפרטורה ולחות ל- Raspberry Pi

serialPi.print ("");

// המתן 10 שניות

עיכוב (10000); }

שלב 4: הגדרת Arduino Working, LCD ו- DHT11

הגדרת Arduino, LCD ו- DHT11 עובדת
הגדרת Arduino, LCD ו- DHT11 עובדת

שלב 5: חבר את ה- Raspberry Pi ל- Arduino

חבר את ה- Raspberry Pi ל- Arduino
חבר את ה- Raspberry Pi ל- Arduino

שלב 6: קוד פייתון RPi לקריאת הנתונים הטוריים של יציאת USB

#rpi-arduino-dht11

#פטל פי קורא נתוני חיישן טמפרטורה ולחות מבית Arduino

ייבוא סדרתי, מחרוזת, זמן

#בדוגמה זו /dev /ttyUSB0 משמש

#זה עשוי להשתנות במקרה שלך ל-/dev/ttyUSB1,/dev/ttyUSB2 וכו 'ser = serial. Serial ('/dev/ttyUSB0 ', 9600)

#גוש הקוד הבא עובד כך:

#אם קיימים נתונים סדרתיים, קרא את השורה, פענח את נתוני UTF8, #… הסר את הקצה הנגרר של תווי השורה #… פיצל את הנתונים לטמפרטורה ולחות #… הסר את נקודות ההתחלה והסיום () #… הדפס את הפלט בזמן נכון: אם ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookedserial.split (',') טמפרטורה = פיסת נתונים [0]. רצועה ('') הדפסה (טמפרטורה) הדפסה (לחות)