เครื่องแจ้งเตือนอุณหภูมิ Temperature Notification with ESP HOME

ผู้เขียนบทความ :

นายเอกบุรุษ มุสะระ COE#16

นายปุญณวิช ชูมนต์ COE#16

นายจัทรกานต์ ม่วงโพธิ์หวั่น COE#16

นายคมชาญ พงศาการ COE#16

คณะวิศวกรรมศาสตร์ สาขาวิศวกรรมคอมพิวเตอร์

วิชา : 04-513-201 การโปรเเกรมคอมพิวเตอร์ขั้นสูง

1.ความเป็นมา

การพัฒนาอุปกรณ์ตรวจวัดอุณหภูมิและความชื้นแบบอัตโนมัติเริ่มเป็นที่นิยมมากขึ้น เนื่องจากความต้องการในการเฝ้าระวังสภาพแวดล้อมในสถานที่ต่าง ๆ เช่น โรงงานอุตสาหกรรม ฟาร์มเกษตร ห้องเซิร์ฟเวอร์ หรือในครัวเรือนทั่วไป อุปกรณ์เหล่านี้สามารถช่วยในการควบคุมและตรวจสอบสภาพอากาศภายในพื้นที่ที่ต้องการ รวมถึงช่วยป้องกันปัญหาที่อาจเกิดขึ้นจากสภาพอุณหภูมิและความชื้นที่ไม่เหมาะสม

เทคโนโลยีไมโครคอนโทรลเลอร์ เช่น ESP32 ได้รับความนิยมอย่างมากในการนำมาใช้พัฒนาอุปกรณ์ IoT (Internet of Things) เนื่องจากมีความสามารถในการเชื่อมต่ออินเทอร์เน็ตและรองรับการทำงานร่วมกับเซ็นเซอร์หลากหลายชนิด เช่น DHT11 สำหรับการวัดอุณหภูมิและความชื้น รวมถึง DS18B20 ซึ่งเป็นเซ็นเซอร์วัดอุณหภูมิที่มีความแม่นยำสูง

การรวมเซ็นเซอร์เหล่านี้เข้ากับระบบ Home Assistant ผ่าน ESPHome ทำให้สามารถเฝ้าระวังข้อมูลแบบ real-time ได้อย่างง่ายดาย ทั้งยังสามารถตั้งค่าการแจ้งเตือน หรือสั่งการอุปกรณ์ควบคุมอื่น ๆ ตามค่าที่วัดได้ นอกจากนี้ การใช้หน้าจอแสดงผล LCD1602 ช่วยให้สามารถแสดงผลข้อมูลอุณหภูมิและความชื้นได้ในสถานที่จริงโดยไม่ต้องเชื่อมต่อกับระบบอินเทอร์เน็ต

การพัฒนาอุปกรณ์ในลักษณะนี้ไม่เพียงแต่ช่วยเพิ่มความสะดวกในการตรวจสอบสภาพแวดล้อม แต่ยังเป็นการสร้างระบบอัตโนมัติที่มีความแม่นยำสูง ช่วยลดความเสี่ยงและปรับปรุงการจัดการในหลายภาคส่วน

2.วัตถุประสงค์

1.เพื่อตรวจสอบอุณหภูมิและความชื้น: ทำการวัดอุณหภูมิและความชื้นในพื้นที่ที่ต้องการ เช่น ในห้องฟาร์ม โรงงาน ห้องเซิร์ฟเวอร์ หรือในบ้าน และแสดงผลข้อมูลแบบ real-time ผ่านหน้าจอแสดงผลหรือระบบ Home Assistant

2.เพื่อพัฒนาระบบแจ้งเตือน: เมื่ออุณหภูมิหรือความชื้นเกินขอบเขตที่กำหนด ระบบสามารถส่งการแจ้งเตือนไปยังผู้ใช้งานผ่าน Home Assistant หรือตั้งค่าให้สั่งการอุปกรณ์อื่น ๆ ในการควบคุมสภาพแวดล้อม

3.เพื่อปรับปรุงการจัดการสภาพแวดล้อม: ช่วยให้สามารถปรับสภาพแวดล้อมให้เหมาะสมกับความต้องการ เช่น การควบคุมความชื้นในห้องเก็บอาหารหรือการควบคุมอุณหภูมิในฟาร์มเพื่อประสิทธิภาพในการเลี้ยงสัตว์หรือปลูกพืช

4.เพื่อลดความเสี่ยงจากสภาพแวดล้อมที่ไม่เหมาะสม: ช่วยป้องกันความเสียหายที่อาจเกิดจากสภาพอุณหภูมิหรือความชื้นที่สูงหรือต่ำเกินไป เช่น อุปกรณ์อิเล็กทรอนิกส์ที่อาจเสียหายจากความร้อนเกินไป หรือผลผลิตในฟาร์มที่ได้รับผลกระทบจากความชื้น

5.เพื่อสร้างระบบตรวจวัดที่มีความแม่นยำและเชื่อถือได้: ด้วยการใช้เซ็นเซอร์ที่มีความแม่นยำสูงเช่น DS18B20 ทำให้การวัดผลเป็นไปอย่างแม่นยำและเสถียร

3.ขอบเขต

1.ใช้ ESP32 ร่วมกับเซ็นเซอร์ DHT11 และ DS18B20 เพื่อวัดอุณหภูมิและความชื้น

2.แสดงผลข้อมูลบนหน้าจอ LCD1602 และส่งข้อมูลไปยัง Home Assistant ผ่าน ESPHome

3.เพิ่ม buzzer สำหรับการแจ้งเตือนเมื่ออุณหภูมิหรือความชื้นเกินขอบเขตที่กำหนด

4.รองรับการอัปเดตเฟิร์มแวร์ผ่าน OTA และการควบคุม/ตรวจสอบข้อมูลผ่าน Home Assistant

4.ประโยชน์ที่คาดว่าจะได้รับ

1.การเฝ้าระวังสภาพแวดล้อม: สามารถติดตามอุณหภูมิและความชื้นในพื้นที่ต่าง ๆ ได้แบบ real-time ช่วยให้ผู้ใช้งานสามารถทำการควบคุมและปรับสภาพแวดล้อมให้เหมาะสมกับความต้องการ

2.การแจ้งเตือนอัตโนมัติ: Buzzer จะทำงานเมื่ออุณหภูมิหรือความชื้นเกินขอบเขตที่กำหนด ช่วยให้ผู้ใช้งานได้รับข้อมูลทันที เพื่อป้องกันปัญหาที่อาจเกิดขึ้น

3.การเพิ่มประสิทธิภาพในการจัดการ: ช่วยให้การควบคุมสภาพแวดล้อมในฟาร์ม โรงงาน หรือห้องเก็บผลิตภัณฑ์มีความแม่นยำมากขึ้น ช่วยลดความเสี่ยงและการสูญเสียที่เกิดจากสภาพอากาศไม่เหมาะสม

4.การบันทึกข้อมูลและวิเคราะห์: การบันทึกค่าอุณหภูมิและความชื้นช่วยให้ผู้ใช้งานสามารถวิเคราะห์แนวโน้มและปรับกลยุทธ์ในการจัดการได้อย่างมีประสิทธิภาพ

5.การสร้างระบบอัตโนมัติ: สามารถเชื่อมต่อกับ Home Assistant เพื่อสร้างระบบอัตโนมัติในการควบคุมอุปกรณ์ต่าง ๆ ตามค่าที่วัดได้ ทำให้การดำเนินชีวิตสะดวกสบายขึ้น

6.การเรียนรู้และพัฒนาเทคโนโลยี: เป็นโครงการที่ช่วยให้ผู้ใช้งานได้เรียนรู้และเข้าใจการทำงานของอุปกรณ์ IoT และการพัฒนาเฟิร์มแวร์ รวมถึงการนำเทคโนโลยีใหม่ ๆ มาใช้ในชีวิตประจำวัน

5.ความรู้ที่เกี่ยวข้อง

1.การทำงานของไมโครคอนโทรลเลอร์: ความรู้พื้นฐานเกี่ยวกับการทำงานของไมโครคอนโทรลเลอร์ เช่น ESP32 รวมถึงการโปรแกรมและการเชื่อมต่อกับอุปกรณ์เสริม

2.การใช้เซ็นเซอร์ต่าง ๆ: การทำงานของเซ็นเซอร์ DHT11 และ DS18B20 โดยเฉพาะวิธีการวัดอุณหภูมิและความชื้น รวมถึงวิธีการเชื่อมต่อและการตั้งค่าเซ็นเซอร์กับไมโครคอนโทรลเลอร์

3.การสื่อสารข้อมูล: ความรู้เกี่ยวกับการสื่อสารข้อมูลผ่าน Wi-Fi โดยใช้ ESPHome และการเชื่อมต่อกับ Home Assistant เพื่อการควบคุมและตรวจสอบข้อมูลแบบ real-time

4.การแสดงผลข้อมูล: การใช้งานหน้าจอ LCD1602 เพื่อแสดงผลข้อมูลที่วัดได้ รวมถึงการตั้งค่าการแสดงผลผ่านการเขียนโปรแกรมใน ESPHome

5.การทำงานของระบบอัตโนมัติ: ความรู้เกี่ยวกับการสร้างระบบอัตโนมัติใน Home Assistant เช่น การตั้งค่า Automation และการควบคุมอุปกรณ์อื่น ๆ ตามค่าที่วัดได้

6.การจัดการพลังงาน: การเข้าใจการจัดการพลังงานในระบบ IoT เพื่อให้แน่ใจว่าอุปกรณ์สามารถทำงานได้อย่างมีประสิทธิภาพและประหยัดพลังงาน

7.การบำรุงรักษาและการอัปเดต: ความรู้เกี่ยวกับการอัปเดตเฟิร์มแวร์ผ่าน OTA และการบำรุงรักษาอุปกรณ์เพื่อให้ทำงานได้อย่างต่อเนื่อง

8.การวิเคราะห์ข้อมูล: ความรู้เกี่ยวกับการบันทึกและวิเคราะห์ข้อมูลที่ได้จากเซ็นเซอร์ เพื่อการตัดสินใจที่ดีขึ้นในการจัดการสภาพแวดล้อม

การทำงานของระบบ

CODE

esphome:
  name: temproom
  friendly_name: TEMPROOM
esp32:
  board: esp32doit-devkit-v1
  framework:
    type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
  encryption:
    key: "zHFm4ntUyl/UYsGHL3T3+vSffs5u5U6Ga0Xei0UZodQ="
ota:
  - platform: esphome
    password: "2ee32afb994a4d5662cbe8c8471d0e93"
wifi:
  ssid: TAN
  password: "11111111t"
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Temproom Fallback Hotspot"
    password: "EWiWiX92jFDv"
captive_portal:
web_server:
sensor:
  - platform: dht
    pin: 13
    temperature:
      name: "Living Room Temperature"
      id: living_room_temperature
    humidity:
      name: "Living Room Humidity"
      id: living_room_humidity
    update_interval: 30s
  - platform: dallas_temp
    address: 0x412f5dd44629b828
    name: "Dallas Temperature"
    id: temp_dallas
    update_interval: 30s
output:
  - platform: ledc
    pin: 18
    id: rtttl_out
rtttl:
  output: rtttl_out
button:
  - platform: template
    name: "Play Module!"
    on_press:
      then:
        - rtttl.play: 'mission_imp:d=16,o=6,b=95:32d,32d#,32d,32d#,32d,32d#,32d,32d#,32d,32d,32d#,32e,32f,32f#,32g,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,a#,g,2d,32p,a#,g,2c#,32p,a#,g,2c,a#5,8c,2p,32p,a#5,g5,2f#,32p,a#5,g5,2f,32p,a#5,g5,2e,d#,8d'
  - platform: template
    name: "Stop!"
    on_press:
      then:
        - rtttl.stop
# Check temperature and play sound if above threshold
interval:
  - interval: 30s
    then:
      - if:
          condition:
            sensor.in_range:
              id: living_room_temperature
              above: 30
          then:
            - rtttl.play: 'mission_imp:d=16,o=6,b=95:32d,32d#,32d,32d#,32d,32d#,32d,32d#,32d,32d,32d#,32e,32f,32f#,32g,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,a#,g,2d,32p,a#,g,2c#,32p,a#,g,2c,a#5,8c,2p,32p,a#5,g5,2f#,32p,a#5,g5,2f,32p,a#5,g5,2e,d#,8d'
  - interval: 30s
    then:
      - if:
          condition:
            sensor.in_range:
              id: temp_dallas
              above: 30
          then:
            - rtttl.play: 'mission_imp:d=16,o=6,b=95:32d,32d#,32d,32d#,32d,32d#,32d,32d#,32d,32d,32d#,32e,32f,32f#,32g,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,a#,g,2d,32p,a#,g,2c#,32p,a#,g,2c,a#5,8c,2p,32p,a#5,g5,2f#,32p,a#5,g5,2f,32p,a#5,g5,2e,d#,8d'
# I2C settings for the LCD
i2c:
  sda: 21
  scl: 22
# LCD display settings
display:
  - platform: lcd_pcf8574
    dimensions: 16x2
    address: 0x27
    id: lcd_screen
    update_interval: 30s
    lambda: |-
      it.printf(0, 0, "Temp: %.1f C", id(temp_dallas).state);
      auto current_time = id(esptime).now();
      it.printf(0, 1, "Time: %02d:%02d", current_time.hour, current_time.minute);
one_wire:
  - platform: gpio
    pin: 32
# Time synchronization from Home Assistant
time:
  - platform: homeassistant
    id: esptime
    timezone: Asia/Bangkok

การทดลอง

ทดลองเพิ่มอุณหภูมิว่าระบบ ทำงานได้ไหม ผลคือ เมื่ออุณหภูมิถึงที่กำหนดไว้ buzzer จะส่งเสียงเตือน

ปพร้อมทั้งมีข้อ

สรุปผลการทดลอง

การพัฒนาโครงการนี้มีปัญหาทางเทคนิคที่ต้องการการแก้ไขและปรับปรุงหลายจุด โดยการทำงานร่วมกับอุปกรณ์หลายตัวและเครือข่าย ทำให้ต้องปรับปรุงทั้งในด้านฮาร์ดแวร์และซอฟต์แวร์ เพื่อให้ระบบแจ้งเตือนอุณหภูมิทำงานได้เสถียรและตอบสนองต่อสถานการณ์ต่าง ๆ ได้อย่างรวดเร็วและแม่นยำ

ข้อมูลอ้างอิง

1.Bartek, M. (2021). Home Assistant for Beginners: Setting up ESPHome. Retrieved from https://www.home-assistant.io

2.Espressif Systems. (2020). ESP32 Technical Reference Manual. Retrieved from https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf

3.Al-Hussain, S., & Al-Khateeb, R. (2020). “Design and Implementation of a Low-Cost Temperature Monitoring System Using DHT11 Sensor and ESP32 Microcontroller,” International Journal of Engineering Research & Technology (IJERT), 9(2), 112-118.

4.Lim, S. (2022). A Comprehensive Guide to Using DS18B20 Temperature Sensor with ESP32. Retrieved from https://randomnerdtutorials.com

5.Green, A. (2019). LCD1602 Module: Interfacing with Microcontrollers. Retrieved from https://learn.adafruit.com

6.Shrivastava, P. (2020). Building IoT Projects with ESP32 and ESPHome. Retrieved from https://esphome.io

You may also like...

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *