תוכן עניינים:
וִידֵאוֹ: תחנת ניטור חלקיקי אבק מבית Arduino: 4 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
אתה יכול בקלות לבנות מכשיר אינטרנט של דברים DIY העוקב אחר זיהום אבק בבית שלך בפחות מ -50 $ ולקבל הודעה כאשר רמת האבק גבוהה מדי, כך שתוכל לאוורר את החדר, או שתוכל להגדיר אותו בחוץ ולקבל הודעה אם זה בטוח לצאת החוצה אם אתה גר באזור מזוהם מאוד.
הכנתי את זה כפרויקט בית ספר, כך שלא היה לי מספיק זמן למצוא שירות שיעביר הודעות MQTT וישלח לך אותן כמו הודעות או מיילים.
שים לב גם ששמירה על חיישן מופעל כל הזמן תקטין את חיי המאוורר.
שלב 1: יש צורך בחלקים
מה אתה צריך
- ארדואינו אונו
- מגן Ethernet של ארדואינו
- חיישן לייזר חומר חלקיקים (בדרך כלל במחיר של $ 10- $ 30 ב- eBay/aliexpress)
- חיישן טמפרטורה ולחות DHT11 (אופציונלי)
- לוח לחם
- כבלי מגשר
שלב 2: הרכבת החלקים
ראשית, עליך לחבר את מגן ה- Ethernet על ה- Arduino
לחיישן PM יש מספר חוטים, אך אלה שאנו צריכים הם VCC, GND, TX, RX.
חבר את ה- VCC וה- GND ל- + ו- - בלוח הלחם בהתאמה.
ל- Arduino סיכות חומרה RX ו- TX, אך נשתמש בחיקוי תוכנה של סיכות RX ו- TX בפינים 2 ו -3 בהתאמה. חבר את RX החיישן ל- TX של הארדואינו ו- TX של החיישן ל- RX של הארדואינו.
אם אתה מתכוון להשתמש בחיישן הטמפרטורה, חבר את קווי VCC ו- GND ל- + ו- - על לוח הלוח וקו הנתונים לסיכה 7.
שלב 3: הקוד
אתה יכול להתקין מתווך MQTT על פטל פאי או על מחשב שתמיד היה בו בבית, או להשתמש בשירות MQTT בענן, כמו Cloud MQTT. לאחר מכן תוכל לכתוב סקריפט ששולח את הנתונים כ- HTTP ל- webhook IFTT, מכיוון שהם עדיין לא תומכים ב- MQTT webhooks ולהגדיר התראות כאשר רמות האבק בבית שלך גבוהות מדי.
תחנת אוויר ארדואינו
#לִכלוֹל |
#לִכלוֹל |
#לִכלוֹל |
#לִכלוֹל |
#לִכלוֹל |
#לִכלוֹל |
#לִכלוֹל |
#לִכלוֹל |
#defineDHT11_PIN7 |
#להגדיר RX_PIN2 |
#להגדיר TX_PIN3 |
IPAddress ip (169, 169, 100, 98); |
בת mac = { |
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 |
}; |
constchar *mqtt_server = "m23.cloudmqtt.com"; |
constint mqtt_port = 11895; |
constchar *mqtt_user = "jhetjewk"; |
constchar *mqtt_pass = "QB2p9PiMV6pn"; |
constchar *mqtt_client_name = "arduinoClient1"; // לחיבורי לקוח אין אותו שם חיבור |
EthernetClient ethClient; |
לקוח PubSubClient (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
מזהה ארוך ללא חתימה; |
// קובץ myFile; |
מחרוזת s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
הגדרת voids () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
אם (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("נכשלה הגדרת Ethernet באמצעות DHCP"); |
// ניסיון עם ip addr קבוע |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (callback); |
עיכוב (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print ("rc ="); |
Serial.print (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindex = 0; |
ערך צ'אר; |
char previousValue; |
אם (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("מחובר"); |
} |
} |
while (pmSerial.available ()) { |
value = pmSerial.read (); |
אם ((index == 0 && value! = 0x42) || (index == 1 && value! = 0x4d)) { |
Serial.println ("לא ניתן למצוא את כותרת הנתונים."); |
לַחֲזוֹר; |
} |
אם (אינדקס == 4 || אינדקס == 6 || אינדקס == 8 || אינדקס == 10 || אינדקס == 12 || אינדקס == 14) { |
previousValue = value; |
} |
elseif (אינדקס == 5) { |
pm1 = 256 * valueValue + ערך; |
root ["pm1"] = abs (pm1); |
} |
elseif (אינדקס == 7) { |
pm2_5 = 256 * valueValue + ערך; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (אינדקס == 9) { |
pm10 = 256 * valueValue + ערך; |
root ["pm10"] = שרירי הבטן (pm10); |
} |
elseif (אינדקס> 15) { |
לשבור; |
} |
אינדקס ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
אם (DHT.temperature == -999 || DHT.humidity == -999) { |
root ["temperature"] = "N/A"; |
root ["לחות"] = "לא רלוונטי"; |
} אחר { |
root ["טמפרטורה"] = DHT.temperature; |
root ["לחות"] = DHT. לחות; |
} |
sendResults (); |
id ++; |
עיכוב (5000); |
} |
voidsendResults () { |
// לפרסם ל- MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// איתור באגים לסדרה |
root.printTo (סידורי); |
Serial.print ('\ n'); |
} |
// מטפל בהודעות שהגיעו לנושאים הרשומים |
voidcallback (char* topic, byte* מטען, אורך לא חתום) { |
} |
הצג rawair_quality.ino המתארח אצל ❤ על ידי GitHub
שלב 4: הרכיב את הקופסה
פשוט השתמשתי בקופסה שהייתה לי שכובה וקדחתי חור לחיישן כדי להוציא ממנו אוויר וחתכתי חור כדי שהכבלים ייצאו (למרות שזה היה קצת גדול מדי).
השתמשתי ברפידות דבק כדי לחבר את החיישן לקופסה, תוך יישור חור הקלט של החיישן עם החור הקידוח על הקופסה.
לבסוף, חיברתי את אתרנט ואת כבלי החשמל.
מוּמלָץ:
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר מונעת על ידי סולארית Arduino בוצעה בדרך הנכונה: 8 שלבים (עם תמונות)
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר המופעלת באמצעות Arduino סולארית בוצעה בדרך הנכונה: לאחר שנה של הפעלה מוצלחת בשני מיקומים שונים אני משתף את תוכניות הפרויקט של תחנת מזג האוויר המונעות על ידי סולארי ומסביר כיצד היא התפתחה למערכת שיכולה לשרוד לאורך זמן. תקופות מכוח השמש. אם אתה עוקב
מערכת ניטור חיות מחמד מבית Arduino ו- Raspberry Pi: 19 שלבים (עם תמונות)
מערכת ניטור חיות מחמד מבית Arduino ו- Raspberry Pi: לאחרונה במהלך החופשה הבנו את חוסר הקשר עם ביגל המחמד שלנו. לאחר מחקר כלשהו, מצאנו מוצרים הכוללים מצלמה סטטית המאפשרת לנטר ולתקשר עם חיית המחמד שלך. למערכות אלה היו יתרונות מסוימים
מונה חלקיקי מיקרו נייד PM1 PM2.5 PM10: 20 שלבים (עם תמונות)
מונה חלקיקי מיקרו נייד PM1 PM2.5 PM10: כיום זיהום אוויר קיים בכל מקום ובעיקר בערים שלנו. ערים גדולות טורפות כל השנה ורמות הזיהום מגיעות לעיתים (ולעתים מסוימות) לרמות מסוכנות מאוד לבריאות האדם. ילדים רגישים במיוחד ל
כיצד לבנות תחנת חיישן ניטור נוחות: 10 שלבים (עם תמונות)
כיצד לבנות תחנת חיישן ניטור נוחות: הוראה זו מתארת את תכנון ובניית תחנת ניטור נוחות CoMoS, מכשיר חיישן משולב לתנאי סביבה, שפותח במחלקה לסביבה בנויה ב- TUK, Technische Universität Ka
התחל בבניית תחנת ניטור PM: 3 שלבים (עם תמונות)
התחל לבנות תחנת ניטור ראש ממשלה: אני מתעניין במיוחד ברמות זיהום האוויר, כי אני גר בסין ובעוד העיר שלי, שנזן, היא כנראה אחת הערים הנקיות ביותר בסין, עדיין יש לה ימים רעים. אז אני רציתי לבנות משלי כדי להשוות לחצי תריסר האוויר