فهرست مطالب:

ایستگاه مانیتورینگ ذرات گرد و غبار دارای آردوینو: 4 مرحله (همراه با تصاویر)
ایستگاه مانیتورینگ ذرات گرد و غبار دارای آردوینو: 4 مرحله (همراه با تصاویر)

تصویری: ایستگاه مانیتورینگ ذرات گرد و غبار دارای آردوینو: 4 مرحله (همراه با تصاویر)

تصویری: ایستگاه مانیتورینگ ذرات گرد و غبار دارای آردوینو: 4 مرحله (همراه با تصاویر)
تصویری: مانیتورهای قلب 2024, جولای
Anonim
ایستگاه مانیتورینگ ذرات گرد و غبار دارای قدرت آردوینو
ایستگاه مانیتورینگ ذرات گرد و غبار دارای قدرت آردوینو

به راحتی می توانید یک دستگاه DIY از چیزهایی تهیه کنید که آلودگی گرد و غبار را در خانه شما با کمتر از 50 دلار کنترل می کند و هنگامی که سطح گرد و غبار بسیار بالا می رود به شما اطلاع داده شود تا بتوانید اتاق را هوادهی کنید ، یا می توانید آن را در خارج از خانه تنظیم کرده و در صورت وجود مطلع شوید. اگر در منطقه ای بسیار آلوده زندگی می کنید ، بیرون رفتن از آن بی خطر است.

من این کار را به عنوان یک پروژه مدرسه ای انجام دادم ، بنابراین زمان کافی برای یافتن سرویسی که پیامهای MQTT را دریافت کند و مانند اعلان ها یا ایمیل ها برای شما ارسال کند ، نداشتم.

همچنین توجه داشته باشید که نگه داشتن سنسور در هر زمان باعث کاهش طول عمر فن می شود.

مرحله 1: قطعات مورد نیاز

قطعات مورد نیاز
قطعات مورد نیاز

آنچه شما نیاز دارید

  • آردوینو اونو
  • سپر اترنت آردوینو
  • سنسور لیزر ذرات معلق (معمولاً 10 تا 30 دلار در eBay/aliexpress)
  • سنسور دما و رطوبت DHT11 (اختیاری)
  • تخته نان
  • کابل های بلوز

مرحله 2: قطعات را جمع آوری کنید

قطعات را مونتاژ کنید
قطعات را مونتاژ کنید

ابتدا باید سپر اترنت را روی آردوینو وصل کنید

سنسور PM دارای چندین سیم است ، اما سیم های مورد نیاز ما VCC ، GND ، TX ، RX است.

VCC و GND را به ترتیب به + و - روی صفحه نان متصل کنید.

آردوینو دارای پین های سخت افزاری RX و TX است ، اما ما به ترتیب در پین 2 و 3 از شبیه سازی نرم افزاری پین های RX و TX استفاده می کنیم. RX سنسور را به TX آردوینو و TX سنسور را به RX آردوینو وصل کنید.

اگر قصد دارید از سنسور دما استفاده کنید ، خطوط VCC و GND را به + و - در Breadboard و خط داده را به پین 7 وصل کنید.

مرحله 3: کد

می توانید کارگزار MQTT را روی تمشک pi یا رایانه ای که همیشه در خانه دارید نصب کنید ، یا از سرویس MQTT ابری ، مانند Cloud MQTT استفاده کنید. سپس می توانید یک اسکریپت بنویسید که داده ها را به صورت HTTP به یک webhook IFTT ارسال می کند ، زیرا آنها هنوز از webhook های MQTT پشتیبانی نمی کنند و اعلان هایی را برای زمانی که سطح گرد و غبار در خانه شما زیاد می شود تنظیم می کنند.

ایستگاه هوایی آردوینو

#عبارتند از

#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از

#عبارتند از

#عبارتند از
#defineDHT11_PIN7
#defineRX_PIN2
#defineTX_PIN3
IP IP (169 ، 169 ، 100 ، 98) ؛
بایت مک = {
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) ؛
نرم افزار سریال pmSerial (RX_PIN ، TX_PIN) ؛
dht DHT ؛
int pm1؛
int pm2_5؛
int pm10؛
شناسه بدون علامت ؛
// فایل myFile؛
رشته های؛
StaticJsonBuffer <200> jsonBuffer؛
JsonObject & root = jsonBuffer.createObject ()؛
voidsetup () {
Serial.begin (57600) ؛
pmSerial.begin (9600)؛
id = 0؛
pm1 = 0 ؛
pm2_5 = 0؛
pm10 = 0؛
if (Ethernet.begin (mac) == 0)
{
Serial.println ("پیکربندی اترنت با استفاده از DHCP انجام نشد")؛
// تلاش با افزونه ip ثابت
Ethernet.begin (مک ، آی پی) ؛
}
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")؛
}
voidloop () {
intindex = 0 ؛
ارزش char ؛
char previousValue؛
if (! client.connected ())
{
if (client.connect ("arduinoClient"، mqtt_user، mqtt_pass)) {
Serial.println ("متصل") ؛
}
}
در حالی که (pmSerial.available ()) {
value = pmSerial.read ()؛
if ((index == 0 && value! = 0x42) || (index == 1 && value! = 0x4d)) {
Serial.println ("هدر داده ها را نمی توان پیدا کرد.")؛
برگشت؛
}
if (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) {
previousValue = مقدار ؛
}
elseif (index == 5) {
pm1 = 256 * previousValue + مقدار ؛
root ["pm1"] = abs (pm1)؛
}
elseif (index == 7) {
pm2_5 = 256 * previousValue + مقدار ؛
root ["pm2_5"] = abs (pm2_5) ؛
}
elseif (index == 9) {
pm10 = 256 * previousValue + مقدار ؛
root ["pm10"] = abs (pm10)؛
}
elseif (فهرست> 15) {
زنگ تفريح؛
}
شاخص ++ ؛
}
در حالی که (pmSerial.available ()) pmSerial.read ()؛
int chk = DHT.read11 (DHT11_PIN) ؛
if (DHT.temperature == -999 || DHT.humidity == -999) {
root ["دما"] = "N/A"؛
root ["رطوبت"] = "N/A"؛
} دیگری {
root ["دما"] = DHT.temperature؛
root ["رطوبت"] = DHT.humidity؛
}
sendResults ()؛
شناسه ++ ؛
تأخیر (5000) ؛
}
voidsendResults () {
// انتشار در MQTT
char jsonChar [100]؛
root.printTo (jsonChar) ؛
Serial.println (client.publish ("arduino" ، jsonChar)) ؛
// اشکال زدایی به سریال
root.printTo (سریال) ؛
Serial.print ('\ n')؛
}
// پیام هایی را که در موضوع (های) مشترک ثبت شده است کنترل می کند
voidcallback (موضوع* char ، بایت* بار ، طول بدون علامت) {
}

مشاهده rawair_quality.ino با ❤ توسط GitHub میزبانی شده است

مرحله 4: جعبه را جمع کنید

جعبه را جمع کنید
جعبه را جمع کنید
جعبه را جمع کنید
جعبه را جمع کنید
جعبه را جمع کنید
جعبه را جمع کنید

من فقط از یک جعبه که در اطراف آن قرار داشتم استفاده کردم و سوراخی را برای سنسور ایجاد کردم تا هوا از آن خارج شود و سوراخ ای را برای خروج کابل ها ایجاد کردم (اگرچه کمی بزرگ بود).

من برای اتصال سنسور به جعبه از پد های چسب استفاده کردم و سوراخ ورودی سنسور را با سوراخ سوراخ شده روی جعبه تراز کردم.

سرانجام ، کابل اترنت و برق را وصل کردم.

توصیه شده: