
เนื่องในวัน ESP32 Day (03/02/2019) ผมเองไม่ได้ไปร่วมงานที่จัดกัน เพราะติดงานอื่น และได้ sensors วัด PM2.5 มาพอดี ก็เลยมาทำ Sensers Node เพื่อวัดค่า PM2.5 ในบริเวณที่อยู่อาศัย แล้วส่งขึ้น thingspeak.com และ netpie.io freeboard เพื่อทำ Dashboard สวยๆ งามๆ และเป็นประโยชน์ในการรายงานค่า PM2.5 ที่มีปัญหากันอยู่ในประเทศไทย ตอนนี้ ให้เพื่อนๆ พี่ๆ น้องๆ ได้รับทราบกันครับ …
1. อุปกรณ์ และ stack ที่ใช้มีดังนี้
– ESP32 (NODE32 LITE) 275 บาท [https://gravitechthai.com/product_detail.php?d=3318]
– SHARP GP2Y1010AU0F (PM2.5 Sensor) 137 บาท [https://shopee.co.th/product/59553004/1361931900]
– AM2302 (Temperature+Humidity Sensor) 180 บาท [https://www.myarduino.net/product/725/]
– thingspeak.com
– netpie.io
รวมราคา อุปกรณ์ ที่ใช้ ประมาณ 600 บาท ครับ 🙂
2. รายละเอียด ของ SHARP GP2Y1010AU0F Sensor
สำหรับรายละเอียด ของแต่ละ PIN ของ SHARP GP2Y1010AU0F เป็นดังนี้ครับ
โดยจะต้องมี C 220 uF และ R 150 ohm ต่อด้วย (ตัวที่ผมซื้อมา พี่จีน ลืมแถมมาให้ +__+)

Sensor ที่ผมได้มา จะแถมสาย เรียงสีมาแบบนี้เลยครับ แต่มีบาง version จะเป็นสีเรียงต่างจากนี้ ไม่ต้องตกใจครับ ..

PIN ต่างๆ มีดังนี้ INPUT จะมี LED PIN (Digital PIN) กับ Vo PIN (Analog PIN)

รายละเอียดการต่อขาต่างๆ ในที่นี้เทียบกับ Arduino ถ้าเป็น ESP32 ก็คล้ายๆ กันครับ
3. PIN ต่างๆ ที่ใช้งานกับ ESP32 (NODE32 LITE)
สำหรับในการต่อใช้งาน กับ ESP32 (NODE32 LITE) ผมจะใช้ PIN ต่างๆ ประมาณนี้
– PIN 13 กับขา INPUT ของ AM2302 (Temperature+Humidity Sensor)
– PIN 16 กับขา LED ของ SHARP GP2Y1010AU0F (PM2.5 Sensor)
– PIN 36 (Analog INPUT) กับขา Vo ของ SHARP GP2Y1010AU0F (PM2.5 Sensor)

การเชื่อมต่อ Node32 Lite + Sharp GP2Y1010AU0F และ AM2302

ในรูป ยังไม่ได้ต่อ AM2302 (Temperature+Humidity Sensor) แต่คิดว่าเพื่อนๆ น่าจะเคยใช้งานกันมาแล้ว
ใน Arduino IDE เราจะต้องทำการเพิ่ม PMSensor Library เข้าไปด้วยนะครับ

4. Source Code
สำหรับ Code ผมเขียนเป็น Deep Sleep Mode ทุกๆ 1 นาที ประมาณนี้ครับ ..
ถามว่าทำไมต้อง Deep Sleep Mode?
คำตอบคือ เพื่อประหยัด battery เวลาใช้งานจริงครับ และอุปกรณ์พวกนี้ ถ้าให้ connect WiFi ตลอดเวลา จะเกิดความร้อนสูงมาก ทำให้ ประสิทธิภาพในการทำงาน ลดลง หรือทำงานผิดพลาดได้ง่าย ครับ ..
/* Connect to SHARP PM2.5 Sensor*/
#include <PMsensor.h>
PMsensor PM;
#include <WiFi.h>
#include "DHT.h"
#define DHTPIN 13 // NodeMCU PIN D1
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
// AP
const char* ssid = "SookYenFarm"; // SSID Wifi
const char* password = "********"; // Password Wifi
// HTTP API
const char* host = "api.thingspeak.com";
const char* api = "********"; //API Key
int value = 0;
void connect() {
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("DHT22 test!");
dht.begin();
// LED Stop
//digitalWrite(LED_BUILTIN, HIGH);
//delay(10);
//delay(60000);
++value;
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
Serial.print("connecting to ");
Serial.println(host);
float pm = 0;
int err = PMsensorErrSuccess;
if ((err = PM.read(&pm, true, 0.1)) != PMsensorErrSuccess) {
Serial.print("data Error = ");
Serial.println(err);
return;
}
Serial.print("PM2.5: ");
Serial.print(pm);
Serial.println(" ppm");
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
// We now create a URI for the request
String url = "/update?api_key=";
url += api;
url += "&field1=";
url += t;
url += "&field2=";
url += h;
url += "&field3=";
url += pm;
// https://api.thingspeak.com/update?api_key=xxxxxxxxxx&field1=t&field2=h&field3=pm
Serial.print("Requesting URL: ");
Serial.println(url);
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
//Wait up to 10 seconds for server to respond then read response
int i=0;
while((!client.available()) && (i<1000)){
// LED Blink
digitalWrite(LED_BUILTIN, LOW);
delay(10);
//Serial.println(i);
i++;
}
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
}
void setup() {
Serial.begin(115200);
Serial.setTimeout(2000);
delay(1000);
pinMode(LED_BUILTIN, OUTPUT);
/////(infrared LED pin, sensor pin) /////
PM.init(16, 36);
// Wait for serial to initialize.
while (!Serial) { }
Serial.println("Device Started");
Serial.println("-------------------------------------");
Serial.println("Running Deep Sleep Firmware!");
Serial.println("-------------------------------------");
connect();
Serial.println("Sleeping 60 seconds ..");
// Deep Sleep 60 seconds
ESP.deepSleep(58e6); // 60e6 is 60 microsecondsESP.
//ESP.deepSleep(298e6); // 5*60 microsecondsESP.
}
Source Code ใน GitHub ตามนี้เลยครับ ESP32 PM2.5 sensor
5. Data ที่ Feed ขึ้น ThingSpeak

https://thingspeak.com/channels/91414
6. Dashboard ที่ feed จาก ThingSpeak ขึ้น netpie.io Freeboard

Next Step …
– ทำ Shield สำเร็จรูป SHARP GP2Y1010AU0F + AM2302 สำหรับ ESP32 (NODE32 LITE)
– ทำ Box กันน้ำ เพื่อให้สามารถนำไปติดตั้งตามจุดต่างๆ ได้สะดวกขึ้น
– ใช้แผง Solar Cells มาใช้งานกับ Battery 18650
– รายงาน รายละเอียด ผ่าน LINE Bot
– สั่งปั้มพ่นหมอกทำงาน เมื่อค่า PM2.5 เกินกำหนด 🙂
Reference Links
https://blog.netpie.io/archives/3028
https://www.instructables.com/id/How-to-Interface-With-Optical-Dust-Sensor/
ปล. สำหรับใครที่สนใจอยากทำบ้าง หรือสงสัยตรงไหน สามารถ post ถามได้ที่ blog นี้ได้เลยครับ 🙂
1win дастгирӣ ба тоҷикӣ [url=1win65382.help]1win дастгирӣ ба тоҷикӣ[/url]
bonus mines melbet [url=https://www.melbet95431.help]bonus mines melbet[/url]
888staz [url=http://888starz-eg3.org/]https://888starz-eg3.org/[/url]
Вы хотите заказать алкоголь с доставкой на дом в Москве круглосуточно? Обратитесь на нашем сайте [url=https://dostavkaalkogolyaboka.msk.ru/]доставка алкоголя ночью[/url].
Доставка алкоголя в столице — это сервис, который позволяет гражданам заказывать алкоголь в онлайн-магазине и получать его доставку на свое почтовое адрес.
Вот основные виды доставки алкоголя:
В зависимости от региона и страны, доставка алкоголя может осуществляться посредством специальных онлайн-магазинов или через популярные сервисы доставки.
За некоторыми исключениями, доставка алкоголя обычно требует подтверждения возраста заказчиков и часто включает в себя проверку наличия удостоверения личности.
Доставка алкоголя дает возможность заказывать алкогольные напитки прямо с работы или дома и доставлять их к выходным.
Еще одно преимущество — возможность оставлять отзывы и оценивать сервис доставки, что помогает в выборе лучшего поставщика спиртного.
Этот сервис также может включать возможность бронирования доставки заранее, что может быть особенно полезно для больших заказов или праздников.
Часть поставщиков предоставляет возможность приценивать стоимость доставки до передачи заказа.
После регистрации и оформления заказа, поставщик Spiritt delivers и другие партнеры направляют работников в местную площадь для получения заказа и пересылке в нужное время.
Клиенты могут получить доступ к информации о статусе заказа, а также отслеживать местоположение курьера на все время движения.
При выборе сервиса доставки алкоголя нужно обязательно уделять внимание качеству предоставляемых напитков и условиям транспортировки.
Есть ряд ограничений, связанных с доставкой алкоголя, например:
Некоторые методы оплаты могут не быть доступны для оплаты алкоголя.
Следовательно, перед тем как заказать доставку алкоголя, необходимо ознакомиться с местными законами и правилами, касающимися оплаты, доставки и потребления алкоголя.
Бумажные браслеты для контроля обеспечивают надежную и удобную фиксацию посетителей на мероприятиях, подтверждая их участие [url=https://kontrol-braslet.ru/]браслеты бумажные контрольные купить[/url].
Бумажные браслеты как средство контроля активно внедряются в различных сферах.
Использование бумажных браслетов значительно улучшает контроль и мониторинг.
Бумажные браслеты используются при организации больших событий и в медицинских учреждениях.
Особенностями таких браслетов являются практичность и простота использования.
Легкость их ношения и снятия — важный фактор, который делает их популярными.
Несмотря на кажущуюся простоту, бумажные браслеты обладают высокой степенью надежности.
Дизайн этих браслетов может варьироваться, что позволяет адаптировать их под конкретные нужды.
Эффективность и удобство делают их незаменимыми в различных областях.
Такая универсальность особенно ценится в организациях, нуждающихся в контроле.
Доверие к этим устройствам растет благодаря их практичности и доступности.
Использование таких браслетов способствует повышению уровня безопасности и контроля за объектами или участниками.
В целом, бумажные браслеты остаются одним из самых удобных и доступных способов контроля на сегодняшний день.
При выборе средств контроля большинству специалистов рекомендуется отдавать предпочтение газетным браслетам благодаря их функциональности.
Для надежной канализации на вашем участке рекомендуем [url=https://kupit-septik01.ru/]купить септик[/url] по выгодной цене и с гарантией качества.
Покупка септика — важный этап при строительстве частного дома. Перед тем, как сделать выбор, важно понять особенности различных септиков. Это поможет выбрать наиболее подходящую модель, учитывая ваши потребности. Требуется учитывать параметры изготовления и расчетный объем отходов. Обязательно сравнивайте цены и условия гарантии у разнх производителей.
Рекомендуется получить консультацию у специалистов или ознакомиться с отзывами о моделях. Это снизит риск ошибок и поможет выбрать подходящее решение. Цена иногда обманчива — лучше выбрать проверенную модель, чтобы не пожалеть о приобретении. Положительные отзывы и рекомендации — залог удачной покупки септика. Также важно учитывать условия эксплуатации и тип почвы, чтобы выбрать наиболее подходящий тип септика.
При покупке септика важно учитывать все технические параметры и особенности установки. Перед приобретением рекомендуется провести сравнение нескольких моделей и выбрать наиболее оптимальную. Качественный септик — залог комфортного и беспроблемного проживания. Долговечность и надежность септика сделают ваши вложения оправданными. Обратите внимание на услуги по доставке и установке, чтобы не столкнуться с неожиданными расходами.
Бумажные браслеты для контроля обеспечивают надежную и удобную фиксацию посетителей на мероприятиях, подтверждая их участие [url=https://kontrol-braslet.ru/]бумажные браслеты с логотипом на заказ[/url].
Использование бумажных браслетов для мониторинга устройств приобретает всё большую популярность.
Они позволяют отслеживать различные параметры и обеспечивают высокий уровень безопасности.
Эти устройства широко применяются на массовых мероприятиях, а также в сферах здравоохранения.
Практичность и легкость — основные преимущества данных изделий.
Благодаря своей простоте такие браслеты удобно крепить и снимать.
Несмотря на кажущуюся простоту, бумажные браслеты обладают высокой степенью надежности.
Материалы и дизайн можно менять в зависимости от требований, что делает их универсальными.
Эффективность и удобство делают их незаменимыми в различных областях.
Это делает их актуальными для организаций, заботящихся о контроле и безопасности.
Бумажные браслеты для контроля продолжают завоевывать доверие благодаря своей универсальности и эффективности.
Эффективность этих изделий заключается в усилении контроля и безопасности.
Подводя итог, можно сказать, что бумажные браслеты — это выгодное решение для контроля.
Желающие повысить уровень безопасности и контроля выбирают именно такие изделия — они сочетают простоту, надежность и доступность.