สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: เตรียม Arduino Environment สำหรับ ESP8266
- ขั้นตอนที่ 2: รวมไลบรารีที่จำเป็น
- ขั้นตอนที่ 3: ปรับแต่งภาพร่างตัวอย่างมาตรฐาน
- ขั้นตอนที่ 4: อัปโหลดเว็บ UI
- ขั้นตอนที่ 5: เพิ่มเซ็นเซอร์ BME680
- ขั้นตอนที่ 6: เพิ่มเซ็นเซอร์ PMS5003
- ขั้นตอนที่ 7: การเพิ่มคุณสมบัติเครือข่ายบางอย่าง
- ขั้นตอนที่ 8: การเพิ่มการบันทึกบางส่วน
- ขั้นตอนที่ 9: การดำเนินการ
- ขั้นตอนที่ 10: รูปภาพและไฟล์กำหนดค่า
วีดีโอ: สร้างเซ็นเซอร์วัดคุณภาพอากาศ IoT ภายในองค์กร ไม่ต้องใช้ระบบคลาวด์: 10 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
คุณภาพของอากาศภายในหรือภายนอกอาคารขึ้นอยู่กับแหล่งที่มาของมลพิษและสภาพอากาศด้วย
อุปกรณ์นี้รวบรวมพารามิเตอร์ทั่วไปและบางส่วนที่น่าสนใจที่สุดโดยใช้ชิปเซ็นเซอร์ 2 ตัว
- อุณหภูมิ
- ความชื้น
- ความดัน
- ก๊าซอินทรีย์
- อนุภาคขนาดเล็ก
เซ็นเซอร์ที่ใช้ในที่นี้คือ BME680 สำหรับรับอุณหภูมิ ความชื้น ความดัน และค่าก๊าซอินทรีย์ และ PMS5003 เพื่อรับความหนาแน่นของอนุภาคขนาดเล็ก
การใช้ไลบรารี HomeDing ทำให้ง่ายต่อการสร้างอุปกรณ์ที่เชื่อมต่อกับเครือข่ายในบ้านของคุณเท่านั้น และสามารถเข้าถึงได้และควบคุมโดยเบราว์เซอร์ใดก็ได้ในเครือข่าย มาพร้อมกับองค์ประกอบต่างๆ ที่เลือกใช้ชิปเซ็นเซอร์ อุปกรณ์ และบริการอื่นๆ ที่ใช้กันทั่วไป
นอกจากนี้ยังนำเสนอโซลูชันที่สมบูรณ์สำหรับการโฮสต์เว็บไซด์ภายในอุปกรณ์แทนการใช้โซลูชันบนคลาวด์เพื่อแสดงข้อมูลเซ็นเซอร์และโต้ตอบกับอุปกรณ์
เสบียง
สิ่งที่คุณต้องใช้ในการสร้างโปรเจ็กต์นี้คือบอร์ดที่ใช้ ESP8266 เช่น บอร์ด nodemcu และชุดเซ็นเซอร์เพื่อวัดคุณภาพอากาศ ไลบรารี HomeDing ที่ใช้ในโปรเจ็กต์นี้รองรับชิปเซ็นเซอร์ทั่วไปบางตัวสำหรับอุณหภูมิ ความชื้น ความดัน และคุณภาพ ที่นี่ใช้ชิป BMP680
- ปลั๊ก USB และสายไมโคร USB สำหรับจ่ายไฟ
- 1 บอร์ด nodemcu พร้อมซีพียู ESP8266
- บอร์ดฝ่าวงล้อมเซ็นเซอร์ BME680 1 ชิ้น
- 1 PM2.5 เซ็นเซอร์เลเซอร์อนุภาคอากาศ PMS5003
ง่ายต่อการสลับเซ็นเซอร์ BME680 กับเซ็นเซอร์ DHT22 เนื่องจากไลบรารีรองรับด้วยเช่นกัน
ขั้นตอนที่ 1: เตรียม Arduino Environment สำหรับ ESP8266
- ติดตั้ง Arduino IDE เวอร์ชันล่าสุด (ปัจจุบันเป็นเวอร์ชัน 1.8.2)
- ใช้ Board Manager เพื่อติดตั้งการรองรับ esp8266 ดูคำแนะนำโดยละเอียดได้ที่นี่:https://arduino-esp8266.readthedocs.io/en/latest/i…
- ตั้งค่าตัวเลือกบอร์ดสำหรับ NodeMCU 1.0 พร้อม 1MByte SPIFFS File System ตามที่แสดงในภาพหน้าจอ
ขั้นตอนที่ 2: รวมไลบรารีที่จำเป็น
ไลบรารี HomeDing อาศัยไลบรารีพิเศษทั่วไปบางส่วนเพื่อให้เซ็นเซอร์และจอแสดงผลทำงาน
เมื่อคุณติดตั้งไลบรารี HomeDing คุณจะเห็นป๊อปอัปพร้อมไลบรารีที่จำเป็นเหล่านี้ ซึ่งสามารถติดตั้งได้โดยอัตโนมัติโดยแสดงในรูปภาพ และง่ายต่อการติดตั้งทั้งหมด
บางครั้ง (โดยไม่ทราบสาเหตุ) การติดตั้งไลบรารีล้มเหลว ดังนั้นจำเป็นต้องติดตั้งไลบรารีที่จำเป็นทั้งหมดด้วยตนเอง
รายละเอียดเพิ่มเติมเกี่ยวกับไลบรารีที่จำเป็นสามารถดูได้จากเว็บไซต์เอกสารที่
นี่คือรายการไลบรารีที่จำเป็นในปัจจุบัน:
- อดาฟรุต NeoPixel
- LiquidCrystal_PCF8574.h
- ไดรเวอร์ ESP8266 และ ESP32 Oled สำหรับจอแสดงผล SSD1306
- ตัวเข้ารหัสโรตารี่
- ไลบรารีเซ็นเซอร์ DHT สำหรับ ESPx
- OneWire
เซ็นเซอร์เลเซอร์อนุภาคอากาศ PMS5003 สื่อสารโดยใช้สัญญาณสายอนุกรม 9600 บอด สัญญาณนี้ถูกจับโดยใช้ไลบรารี SoftwareSerial ที่มาพร้อมกับการติดตั้งเครื่องมือ ESP8266 ตรวจสอบให้แน่ใจว่าไม่ได้ติดตั้งเวอร์ชันเก่ากว่าเป็นไลบรารี
ขั้นตอนที่ 3: ปรับแต่งภาพร่างตัวอย่างมาตรฐาน
ตัวอย่างมาตรฐานได้รวมเซ็นเซอร์ทั่วไปบางตัวเป็นองค์ประกอบอยู่แล้ว ดังนั้นจำเป็นต้องมีการกำหนดค่าบางอย่างเท่านั้น
สิ่งนี้ใช้กับเซ็นเซอร์ BME680 ที่รองรับโดยองค์ประกอบ BME680
เซ็นเซอร์ PMS5003 มีน้อยกว่าปกติและจำเป็นต้องเปิดใช้งานโดยรวม PMS Element ลงในเฟิร์มแวร์ ทำได้โดยการกำหนด #define HOMEDING_INCLUDE_PMS ในส่วนการลงทะเบียนองค์ประกอบของแบบร่าง
#define HOMEDING_INCLUDE_BME680#กำหนด HOMEDING_INCLUDE_PMS
เพื่อความเรียบง่ายในการเพิ่มอุปกรณ์ใหม่เข้ากับเครือข่าย คุณอาจเพิ่ม SSID และข้อความรหัสผ่านของ WiFi ที่บ้านของคุณในไฟล์ secrets.h ถัดจากไฟล์สเก็ตช์ standard.ino แต่คุณยังสามารถใช้ตัวจัดการ WiFi ในตัวเพื่อเพิ่มอุปกรณ์ไปยังเครือข่ายโดยไม่ต้องกำหนดค่าฮาร์ดโค้ดนี้
ตอนนี้ทุกอย่างเกี่ยวกับการใช้งานแบบร่างเสร็จเรียบร้อยแล้ว และสามารถรวบรวมและอัปโหลดเฟิร์มแวร์ได้
ขั้นตอนที่ 4: อัปโหลดเว็บ UI
ตัวอย่างมาตรฐานมาพร้อมกับโฟลเดอร์ข้อมูลที่มีไฟล์ทั้งหมดสำหรับเว็บ UI
ก่อนที่คุณจะอัปโหลดไฟล์เหล่านี้ คุณอาจต้องการเพิ่มไฟล์ env.json และ config.json คุณจะพบกับบทความนี้ เนื่องจากจะทำให้สิ่งต่างๆ ง่ายขึ้น
เนื้อหาของไฟล์เหล่านี้เป็นสิ่งที่ทำให้อุปกรณ์ IoT มีความพิเศษและทำหน้าที่เป็นเซ็นเซอร์คุณภาพอากาศ มีการอธิบายอย่างละเอียดในเรื่องนี้
ใช้ยูทิลิตี้อัปโหลดไฟล์ ESP8266 และอัปโหลดไฟล์ทั้งหมด จำเป็นต้องรีบูตเพื่อเปิดใช้งานการกำหนดค่า
ขั้นตอนที่ 5: เพิ่มเซ็นเซอร์ BME680
เซ็นเซอร์ BME680 กำลังสื่อสารกับบอร์ดโดยใช้บัส I2C
เนื่องจากอาจใช้ร่วมกับส่วนขยายอื่นๆ เช่น เซ็นเซอร์หรือจอแสดงผลอื่นๆ ได้รับการกำหนดค่าในระดับอุปกรณ์ใน env.json พร้อมกับชื่อเครือข่ายของอุปกรณ์ นี่คือตัวอย่างที่แยกออกมาของการตั้งค่าอุปกรณ์และ I2C:
"อุปกรณ์": {
"0": { "name": "airding", "description": "Air Quality Sensor", … "i2c-scl": "D2", "i2c-sda": "D1" } }
บนเขียงหั่นขนม คุณสามารถดูสายเคเบิลเชื่อมต่อกับเซ็นเซอร์: 3.3V=red, GND=black, SCL=yellow, SDA=blue
การกำหนดค่าสำหรับ BME680 สามารถใช้ใน config.json:
"bme680": {
"bd": { "ที่อยู่": "0x77", "เวลาอ่าน": "10 วินาที" } }
เราจะเพิ่มการดำเนินการในภายหลัง
หากต้องการทดสอบการตั้งค่า เพียงใช้เบราว์เซอร์และเปิด https://airding/board.htm แล้วคุณจะเห็นค่าจริงของเซ็นเซอร์แสดงขึ้นและจะอัปเดตทุกๆ 10 วินาที:
ขั้นตอนที่ 6: เพิ่มเซ็นเซอร์ PMS5003
ฉันไม่มีเซ็นเซอร์ที่มีขั้วต่อที่เป็นมิตรกับเขียงหั่นขนม เลยต้องตัดขั้วต่อตัวใดตัวหนึ่งบนสายเคเบิลโดยใช้หัวแร้งเพื่อต่อเข้ากับบอร์ด nodemcu โดยตรง คุณสามารถเห็นมันยังคงอยู่ในภาพสุดท้าย
พลังงานสำหรับเซ็นเซอร์นี้จะต้องนำมาจาก Vin ที่ปกติขับเคลื่อนโดยบัส USB GND เหมือนกันแต่ยังมีอยู่ข้างๆ พิน Vin
ข้อมูลจากเซ็นเซอร์จะถูกถ่ายโอนในรูปแบบอนุกรม 9600 baud มาตรฐาน ดังนั้นจึงต้องกำหนดค่าพิน rx และ tx และเวลาอ่าน:
"pms": {
"pm25": { "description": "pm25 particle sensor", "pinrx": "D6", "pintx": "D5", "readtime": "10s" } }
เราจะเพิ่มการดำเนินการในภายหลัง
หากต้องการทดสอบการตั้งค่าอีกครั้ง เพียงรีบูตอุปกรณ์และใช้เบราว์เซอร์และเปิด https://airding/board.htm แล้วคุณจะเห็นค่า pm35 จริงของเซ็นเซอร์แสดงขึ้นและจะอัปเดตทุกๆ 10 วินาที แต่ค่านี้เป็นค่าปกติ ไม่เปลี่ยนแปลงบ่อย
คุณสามารถรับค่าที่สูงขึ้นได้โดยการวางแสงเทียนไว้ข้างๆ เซ็นเซอร์ เนื่องจากเทียนจะผลิตอนุภาคเหล่านี้ได้มาก
ตอนนี้คุณสามารถใส่ทุกอย่างไว้ในตัวเครื่องที่สวยงามได้ เนื่องจากการกำหนดค่าอื่นๆ ทั้งหมดและแม้แต่การอัปเดตซอฟต์แวร์ก็สามารถทำได้จากระยะไกล
ขั้นตอนที่ 7: การเพิ่มคุณสมบัติเครือข่ายบางอย่าง
การแยกการกำหนดค่าต่อไปนี้ใน env.json กำลังเปิดใช้งาน
- อัพเดทเฟิร์มแวร์ผ่านอากาศ
- อนุญาตให้ตรวจหาเครือข่ายโดยใช้โปรโตคอลเครือข่าย SSDP และดึงข้อมูลเวลาปัจจุบันจากเซิร์ฟเวอร์ ntp
{
… "ota": { "0": { "port": 8266, "passwd": "123", "description": "Listen for 'over the air' OTA Updates" } } "ssdp": { "0 ": { "ผู้ผลิต": "ชื่อของคุณ" } }, "ntptime": { "0": { "เวลาอ่าน": "36h", "โซน": 2 } } }
คุณควรปรับเขตเวลาให้เข้ากับตำแหน่งของคุณ หากคุณมีข้อสงสัย คุณสามารถใช้เว็บไซต์ https://www.timeanddate.com/ เพื่อรับออฟเซ็ตจาก UTC/GMT "2" เหมาะสำหรับฤดูร้อนของเยอรมนี
คุณยังสามารถปรับรหัสผ่าน ota หลังจากอ่านคำแนะนำเกี่ยวกับโหมดบันทึกในเอกสารที่
หลังจากรีสตาร์ท คุณอาจพบอุปกรณ์ออกอากาศในเครือข่าย และหลังจากได้รับคำตอบจากเซิร์ฟเวอร์ ntp แล้ว เวลาท้องถิ่นจะพร้อมใช้งาน
ขั้นตอนที่ 8: การเพิ่มการบันทึกบางส่วน
เฉพาะค่าจริงอาจไม่เพียงพอจึงสามารถใช้องค์ประกอบเพิ่มเติมได้
สำหรับเรื่องนี้ องค์ประกอบบันทึกและองค์ประกอบ NPTTime ใช้เพื่อบันทึกประวัติของค่าเซ็นเซอร์ในไฟล์บันทึก และการ์ด Web UI สำหรับองค์ประกอบนี้สามารถแสดงเป็นกราฟได้
การกำหนดค่าต่อไปนี้จะสร้าง 2 องค์ประกอบของบันทึกสำหรับก๊าซและอนุภาค:
{
"log": { "pm": { "description": "Log of pm25", "filename": "/pmlog.txt", "filesize": "10000" }, "aq": { "description": " บันทึกคุณภาพก๊าซ", "ชื่อไฟล์": "/aqlog.txt", "ขนาดไฟล์": "10000" } } }
ขั้นตอนที่ 9: การดำเนินการ
ตอนนี้เราจำเป็นต้องโอนค่าจริงไปยังองค์ประกอบบันทึกโดยใช้การกระทำ การดำเนินการกำลังใช้สัญกรณ์ URL เพื่อส่ง kay และค่าไปยังองค์ประกอบเป้าหมาย หลายองค์ประกอบรองรับการส่งสัญญาณในเหตุการณ์บางอย่างที่เกิดขึ้น เช่น การจับค่าเซ็นเซอร์ใหม่
การดำเนินการได้รับการกำหนดค่าที่องค์ประกอบที่ปล่อยการกระทำ จำเป็นต้องมี 2 รายการ:
- เหตุการณ์ onvalue pms/p25 ส่งค่าจริงไปยังองค์ประกอบ log/pm โดยใช้การดำเนินการกับค่า
- เหตุการณ์ bme680/bd ongas ส่งค่าจริงไปยังองค์ประกอบ log/pm โดยใช้การดำเนินการกับค่า
{
"pms": { "pm25": { … "onvalue": "log/pm?value=$v" } }, "bme680": { "bd": { … "ongas": "log/aq?value= $v" } } }
ตอนนี้องค์ประกอบทั้งหมดได้รับการกำหนดค่าแล้ว
ขั้นตอนที่ 10: รูปภาพและไฟล์กำหนดค่า
นี่คือรูปภาพบางส่วนของเซ็นเซอร์คุณภาพอากาศ IoT สุดท้ายของฉัน
ไฟล์การกำหนดค่าสำหรับการดาวน์โหลดจะต้องเปลี่ยนชื่อเป็น *.json (ไม่ใช่.txt) ก่อนอัปโหลด
ลิงค์และข้อมูลอ้างอิง
- ที่เก็บซอร์สโค้ดของ HomeDing:
- เอกสารประกอบ:
- ตัวอย่างมาตรฐาน:
- องค์ประกอบ BME680:
- องค์ประกอบ PMS:
- องค์ประกอบบันทึก:
- องค์ประกอบ NtpTime:
แนะนำ:
Easy IOT – ฮับเซ็นเซอร์ RF ที่ควบคุมด้วยแอปสำหรับอุปกรณ์ IOT ระยะกลาง: 4 ขั้นตอน
Easy IOT – ฮับเซ็นเซอร์ RF ที่ควบคุมด้วยแอปสำหรับอุปกรณ์ IOT ระยะกลาง: ในบทช่วยสอนนี้ เราจะสร้างเครือข่ายของอุปกรณ์ที่สามารถควบคุมผ่านลิงก์วิทยุจากอุปกรณ์ศูนย์กลาง ประโยชน์ของการใช้การเชื่อมต่อวิทยุแบบอนุกรม 433MHz แทน WIFI หรือ Bluetooth คือช่วงที่กว้างกว่ามาก (พร้อม
IoT APIS V2 - ระบบชลประทานพืชอัตโนมัติที่เปิดใช้งาน IoT แบบอัตโนมัติ: 17 ขั้นตอน (พร้อมรูปภาพ)
IoT APIS V2 - ระบบชลประทานพืชอัตโนมัติที่เปิดใช้งาน IoT แบบอัตโนมัติ: โครงการนี้เป็นวิวัฒนาการของคำสั่งก่อนหน้าของฉัน: APIS - ระบบชลประทานพืชอัตโนมัติฉันใช้ APIS มาเกือบปีแล้วและต้องการปรับปรุงจากการออกแบบก่อนหน้านี้: ความสามารถในการ ตรวจสอบโรงงานจากระยะไกล นี่คือวิธีที่
โมดูลพลังงาน IoT: การเพิ่มคุณสมบัติการวัดพลังงาน IoT ให้กับตัวควบคุมการชาร์จพลังงานแสงอาทิตย์ของฉัน: 19 ขั้นตอน (พร้อมรูปภาพ)
โมดูลพลังงาน IoT: การเพิ่มคุณสมบัติการวัดพลังงาน IoT ให้กับตัวควบคุมการชาร์จพลังงานแสงอาทิตย์ของฉัน: สวัสดีทุกคน ฉันหวังว่าพวกคุณทุกคนจะยอดเยี่ยม! ในคำแนะนำนี้ฉันจะแสดงให้คุณเห็นว่าฉันสร้างโมดูลการวัดพลังงาน IoT ที่คำนวณปริมาณพลังงานที่สร้างโดยแผงโซลาร์เซลล์ของฉันได้อย่างไรซึ่งถูกใช้โดยตัวควบคุมการชาร์จพลังงานแสงอาทิตย์ของฉัน t
พื้นฐาน IoT: การเชื่อมต่อ IoT ของคุณกับคลาวด์โดยใช้ Mongoose OS: 5 ขั้นตอน
พื้นฐาน IoT: การเชื่อมต่อ IoT ของคุณกับคลาวด์โดยใช้ Mongoose OS: หากคุณเป็นคนที่ชอบซ่อมแซมและอุปกรณ์อิเล็กทรอนิกส์ บ่อยครั้งคุณจะเจอคำว่า Internet of Things ซึ่งปกติจะย่อว่า IoT และมัน หมายถึงชุดอุปกรณ์ที่สามารถเชื่อมต่ออินเทอร์เน็ตได้! เป็นคนแบบนี้
ESP8266 NODEMCU BLYNK IOT บทช่วยสอน - Esp8266 IOT โดยใช้ Blunk และ Arduino IDE - การควบคุมไฟ LED ผ่านอินเทอร์เน็ต: 6 ขั้นตอน
ESP8266 NODEMCU BLYNK IOT บทช่วยสอน | Esp8266 IOT โดยใช้ Blunk และ Arduino IDE | การควบคุม LEDs ผ่านอินเทอร์เน็ต: สวัสดีทุกคนในคำแนะนำนี้ เราจะเรียนรู้วิธีใช้ IOT กับ ESP8266 หรือ Nodemcu ของเรา เราจะใช้แอป blynk สำหรับสิ่งนั้น ดังนั้นเราจะใช้ esp8266/nodemcu ของเราเพื่อควบคุมไฟ LED ผ่านอินเทอร์เน็ต ดังนั้นแอป Blynk จะเชื่อมต่อกับ esp8266 หรือ Nodemcu ของเรา