جدول المحتويات:
- الخطوة 1: الأجزاء المطلوبة
- الخطوة 2: قم بتجميع الأجزاء
- الخطوة الثالثة: الكود
- الخطوة 4: قم بتجميع الصندوق
فيديو: محطة مراقبة جزيئات الغبار التي تعمل بالاردوينو: 4 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
يمكنك بسهولة إلى حد ما إنشاء جهاز إنترنت الأشياء DIY الذي يراقب تلوث الغبار في منزلك بأقل من 50 دولارًا ويتم إعلامك عندما يكون مستوى الغبار مرتفعًا جدًا حتى تتمكن من تهوية الغرفة ، أو يمكنك ضبطه بالخارج والحصول على إشعار إذا كان الأمر كذلك آمن للخروج إذا كنت تعيش في منطقة شديدة التلوث.
لقد صنعت هذا كمشروع مدرسي ، لذلك لم يكن لدي الوقت الكافي للعثور على خدمة ستتلقى رسائل MQTT وترسلها إليك مثل الإخطارات أو رسائل البريد الإلكتروني.
لاحظ أيضًا أن الحفاظ على تشغيل المستشعر في جميع الأوقات سيقلل من عمر المروحة.
الخطوة 1: الأجزاء المطلوبة
ماذا ستحتاج
- اردوينو اونو
- درع اردوينو إيثرنت
- مستشعر ليزر الجسيمات (عادة ما يكون من 10 إلى 30 دولارًا على موقع eBay / AliExpress)
- مستشعر درجة الحرارة والرطوبة DHT11 (اختياري)
- اللوح
- كابلات توصيل
الخطوة 2: قم بتجميع الأجزاء
أولاً ، تحتاج إلى توصيل درع Ethernet على Arduino
يحتوي مستشعر PM على أسلاك متعددة ، لكن تلك التي نحتاجها هي VCC و GND و TX و RX.
قم بتوصيل VCC و GND بـ + و - على اللوح على التوالي.
يحتوي Arduino على دبابيس RX و TX للأجهزة ، لكننا سنستخدم برنامج محاكاة دبابيس RX و TX على المسامير 2 و 3 على التوالي. قم بتوصيل RX الخاص بالمستشعر بـ TX الخاص بـ Arduino و TX الخاص بالمستشعر بـ RX الخاص بـ Arduino.
إذا كنت ستستخدم مستشعر درجة الحرارة ، فقم بتوصيل خطوط VCC و GND بـ + و - على لوحة التجارب وخط البيانات إلى الرقم 7.
الخطوة الثالثة: الكود
يمكنك إما تثبيت وسيط MQTT على raspberry pi أو جهاز كمبيوتر تستخدمه دائمًا في المنزل ، أو استخدام خدمة MQTT السحابية ، مثل Cloud MQTT. بعد ذلك ، يمكنك كتابة برنامج نصي يرسل البيانات على هيئة HTTP إلى خطاف ويب IFTT ، حيث إنها لا تدعم حتى الآن خطافات الويب MQTT وإعداد الإشعارات عندما ترتفع مستويات الغبار في منزلك بشكل كبير.
محطة اردوينو الجوية
#يشمل |
#يشمل |
#يشمل |
#يشمل |
#يشمل |
#يشمل |
#يشمل |
#يشمل |
# حدد DHT11_PIN7 |
# حدد RX_PIN2 |
# حدد TX_PIN3 |
IPAddress ip (169 ، 169 ، 100 ، 98) ؛ |
بايت ماك = { |
0x00 ، 0xAA ، 0xBB ، 0xCC ، 0xDE ، 0x02 |
}; |
constchar * mqtt_server = "m23.cloudmqtt.com" ؛ |
كونستنت mqtt_port = 11895 ؛ |
constchar * mqtt_user = "jhetjewk" ؛ |
constchar * mqtt_pass = "QB2p9PiMV6pn" ؛ |
constchar * mqtt_client_name = "arduinoClient1" ؛ // لا يمكن أن يكون لاتصالات العميل نفس اسم الاتصال |
إيثرنت العميل ethClient ؛ |
عميل PubSubClient (ethClient) ؛ |
SoftwareSerial pmSerial (RX_PIN ، TX_PIN) ؛ |
dht DHT ؛ |
كثافة العمليات pm1 ؛ |
كثافة العمليات pm2_5 ؛ |
كثافة العمليات pm10 ؛ |
معرف غير موقعة |
// ملف myFile ؛ |
سلاسل؛ |
StaticJsonBuffer <200> jsonBuffer ؛ |
JsonObject & root = jsonBuffer.createObject () ، |
الإعداد باطل() { |
Serial.begin (57600) ؛ |
pmSerial.begin (9600) ؛ |
معرف = 0 ؛ |
م 1 = 0 ؛ |
pm2_5 = 0 ، |
م 10 = 0 ؛ |
إذا (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("فشل تكوين Ethernet باستخدام DHCP") ؛ |
// محاولة مع عنوان IP ثابت |
Ethernet.begin (mac ، ip) ؛ |
} |
client.setServer (mqtt_server، mqtt_port) ؛ |
client.setCallback (رد الاتصال) ؛ |
تأخير (2000) ؛ |
Serial.println (Ethernet.localIP ()) ؛ |
client.connect ("arduinoClient" ، mqtt_user ، mqtt_pass) ؛ |
Serial.print ("rc =") ؛ |
Serial.print (client.state ()) ؛ |
Serial.print ("\ n") ؛ |
} |
حلقة فارغة() { |
intindex = 0 ؛ |
قيمة الحرف |
char previousValue؛ |
إذا (! client.connected ()) |
{ |
if (client.connect ("arduinoClient"، mqtt_user، mqtt_pass)) { |
Serial.println ("متصل") ؛ |
} |
} |
while (pmSerial.available ()) { |
value = pmSerial.read () ؛ |
إذا ((الفهرس == 0 && القيمة! = 0x42) || (الفهرس == 1 && القيمة! = 0x4d)) { |
Serial.println ("لا يمكن العثور على رأس البيانات.")؛ |
إرجاع؛ |
} |
إذا (الفهرس == 4 || الفهرس == 6 || الفهرس == 8 || الفهرس == 10 || الفهرس == 12 || الفهرس == 14) { |
القيمة السابقة = القيمة ؛ |
} |
elseif (الفهرس == 5) { |
pm1 = 256 * القيمة السابقة + القيمة ؛ |
الجذر ["pm1"] = القيمة المطلقة (pm1) ؛ |
} |
elseif (الفهرس == 7) { |
pm2_5 = 256 * القيمة السابقة + القيمة ؛ |
الجذر ["pm2_5"] = القيمة المطلقة (pm2_5) ؛ |
} |
elseif (الفهرس == 9) { |
pm10 = 256 * القيمة السابقة + القيمة ؛ |
الجذر ["pm10"] = القيمة المطلقة (pm10) ؛ |
} |
elseif (الفهرس> 15) { |
استراحة؛ |
} |
فهرس ++ ؛ |
} |
while (pmSerial.available ()) pmSerial.read () ؛ |
int chk = DHT.read11 (DHT11_PIN) ، |
إذا (DHT.temperature == -999 || DHT.humidity == -999) { |
الجذر ["درجة الحرارة"] = "غير متاح" ؛ |
الجذر ["الرطوبة"] = "غير متاح" ؛ |
} آخر { |
الجذر ["درجة الحرارة"] = DHT.temperature ؛ |
الجذر ["الرطوبة"] = الرطوبة DHT ؛ |
} |
sendResults () ، |
معرف ++ ؛ |
تأخير (5000) ؛ |
} |
voidsendResults () { |
// نشر على MQTT |
شار jsonChar [100] ؛ |
root.printTo (jsonChar) ؛ |
Serial.println (client.publish ("arduino"، jsonChar)) ؛ |
// التصحيح إلى المسلسل |
root.printTo (المسلسل) ؛ |
Serial.print ('\ n') ؛ |
} |
// يعالج الرسائل التي وصلت إلى موضوع (مواضيع) مشترك |
voidcallback (char * topic، byte * payload، unmailint length) { |
} |
عرض rawair_quality.ino الذي يستضيفه ❤ بواسطة GitHub
الخطوة 4: قم بتجميع الصندوق
لقد استخدمت للتو صندوقًا كنت قد استلقيت حوله وحفرت ثقبًا حتى يحصل المستشعر على الهواء ويقطع ثقبًا لتخرج الكابلات (على الرغم من أنه كان كبيرًا جدًا).
لقد استخدمت وسادات الغراء لتوصيل المستشعر بالصندوق ، ومحاذاة فتحة إدخال المستشعر مع الفتحة المحفورة في الصندوق.
أخيرًا ، قمت بتوصيل كبلات الإيثرنت والطاقة.
موصى به:
محطة الطقس NaTaLia: محطة أردينو تعمل بالطاقة الشمسية نفذت بالطريقة الصحيحة: 8 خطوات (بالصور)
محطة الطقس NaTaLia: محطة الطقس Arduino التي تعمل بالطاقة الشمسية نفذت بالطريقة الصحيحة: بعد عام واحد من التشغيل الناجح في موقعين مختلفين ، أشارك خطط مشروع محطة الطقس التي تعمل بالطاقة الشمسية وأشرح كيف تطورت إلى نظام يمكنه حقًا البقاء على قيد الحياة لفترة طويلة فترات من الطاقة الشمسية. إذا تابعت
محطة طقس شخصية لإنترنت الأشياء من جزيئات فوتون: 4 خطوات (بالصور)
محطة الطقس الشخصية لجسيمات فوتون إنترنت الأشياء:
مكبرات الصوت التي تعمل بنظام التشغيل Maple OS: 7 خطوات (بالصور)
مكبرات الصوت التي تعمل بنظام التشغيل Maple OS: تعتبر مكبرات الصوت المحمولة التي تعمل بالبلوتوث مريحة ولكنها لا يمكن أن تحل محل مجموعة رائعة من مكبرات الصوت الموجودة في رف الكتب. كنت أفكر في مجموعة تم إنشاؤها مسبقًا ولكني أستمتع بـ DIY ، لذلك أجريت بعض الأبحاث على مجموعات مختلفة. المجموعة التي استقرت عليها كانت أحاسيس ليلة وضحاها لأن
بطاقة العمل التي تعمل باللمس: 8 خطوات (بالصور)
بطاقة أعمال الشاشات التي تعمل باللمس: أنا مهندس ميكانيكي عن طريق الدرجة ، لكنني طورت أيضًا مهارات في الهندسة الكهربائية والبرمجة من سنوات من المشاريع التي تتضمن الدوائر والميكروكونترولر. بما أن أصحاب العمل يتوقعون أن لدي مهارات في الهندسة الميكانيكية
شرائط إضاءة LED تعمل بالاردوينو ويتم التحكم فيها بالمستشعرات: 6 خطوات (مع صور)
شرائط إضاءة LED باهتة يتم التحكم فيها بواسطة المستشعرات تعمل بتقنية Arduino: لقد قمت مؤخرًا بتحديث مطبخي وعرفت أن الإضاءة سترفع مظهر الخزائن. اخترت "True Handless" لذلك لدي فجوة تحت سطح العمل ، بالإضافة إلى لوح مسند ، أسفل الخزانة وفي الجزء العلوي من الخزائن المتاحة و