תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
מעקב אחר הטמפרטורה והלחות חשוב אם יש לך חממה, או אם יש לך תוכניות עתידיות לשדרג את החממה שלך לחווה חכמה קטנה.
עבור ההוראה הראשונה שלי אדגים כיצד ליצור אב טיפוס:
- חבר חיישן טמפרטורה ולחות 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
שלב 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
שלב 5: חבר את ה- 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]. רצועה ('') הדפסה (טמפרטורה) הדפסה (לחות)