หน้าแรก ดูโปรเจกต์ทั้งหมด
Hard

โปรเจกต์ การสร้าง Wireless Temperature Sensor แบบใช้พลังงานจาก Battery

Wireless Temperature Sensor ที่ใช้งาน ESP-NOW และ Deep Sleep เพื่อประหยัดพลังงานและส่งข้อมูล

โปรเจกต์ การสร้าง Wireless Temperature Sensor แบบใช้พลังงานจาก Battery

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

รายการอุปกรณ์และเครื่องมือ

1x DHT11 Temperature & Humidity Sensor (4 pins)
🛒 สั่งซื้อ
1x Arduino® Nano ESP32
-
1x Soldering Iron Tip, Drag Hoof
-

รายละเอียดและวิธีทำ

Introduction

ในโลกของ IoT (Internet of Things) นั้น Wireless Temperature Sensor หรือเซนเซอร์วัดอุณหภูมิแบบไร้สายมีบทบาทสำคัญอย่างยิ่งในการตรวจวัดสภาวะแวดล้อม เช่น อุณหภูมิและความชื้น ไม่ว่าคุณจะสนใจเรื่อง Home Automation, Smart Agriculture หรือเพียงแค่ต้องการทดลองเทคโนโลยีใหม่ๆ การสร้างเครือข่าย Wireless Sensor ของคุณเองก็เป็นโปรเจกต์ที่น่าตื่นเต้นและคุ้มค่า ในบทความนี้ เราจะพาคุณไปดูขั้นตอนการสร้าง Wireless Temperature and Humidity Sensor โดยใช้ Microcontroller ESP32 และโปรโตคอลการสื่อสาร ESP-NOW

What is ESP-NOW?

ESP-NOW เป็นโปรโตคอลการสื่อสารไร้สายแบบ Low-power และ Peer-to-peer ที่พัฒนาโดย Espressif ซึ่งเป็นผู้ผลิต Microcontroller ESP32 โดย ESP-NOW แตกต่างจาก Wi-Fi หรือ Bluetooth ตรงที่ช่วยให้อุปกรณ์สามารถสื่อสารกันได้โดยตรงโดยไม่ต้องใช้ Router หรือ Access Point สิ่งนี้ทำให้มันเหมาะอย่างยิ่งสำหรับแอปพลิเคชันที่ต้องการ Low latency และการใช้พลังงานที่ต่ำมาก เช่น Sensor ที่ใช้พลังงานจาก Battery

Step 1: Designing

Requirements

  1. Sensor ต้องเป็นแบบ Wireless
  2. ต้องใช้พลังงานจาก Battery
  3. ต้องใช้งานได้นานสูงสุด 6 เดือนต่อการชาร์จหนึ่งครั้ง

Components Required

ในการเริ่มต้น คุณจะต้องมีอุปกรณ์ดังต่อไปนี้:

  1. ESP32 microcontroller: หัวใจหลักของโปรเจกต์ เป็นที่รู้จักในด้านความสามารถในการประมวลผลที่ทรงพลังและมีฟีเจอร์ Wireless ในตัว โดยเราจะใช้ ESP8685-WROOM-03 ซึ่งเป็นโมดูลในตระกูล ESP32-C3 series chips
  2. DHT11 หรือ DHT22 sensor: Sensor ที่เชื่อถือได้สำหรับใช้ในการวัดค่า Temperature และ Humidity
  3. Battery: เราจะใช้ Battery ขนาด 3.7V 500mAh เพื่อจ่ายไฟให้กับระบบ และ MCP1700: ซึ่งเป็น Voltage Regulator ขนาด 3.3V ที่มี Low dropout voltage

AMS1117 3.3 vs MCP1700 3.3

AMS1117 เป็น IC Voltage Regulator ที่ราคาถูกและเชื่อถือได้ แต่มี Dropout voltage อยู่ที่ 1V เนื่องจาก Battery ของเราให้แรงดันสูงสุดที่ 4.2V เมื่อชาร์จเต็ม เราจึงไม่สามารถดึงแรงดัน 3.3V ออกมาจาก IC AMS1117 ด้วยแรงดันอินพุตระดับนั้นได้ ดังนั้นเราจึงเลือกใช้ MCP1700 ซึ่งมี Dropout voltage เพียง 150mV เท่านั้น

Step 2: Designing and Ordering PCBs

  1. การออกแบบที่กะทัดรัด
  2. มี Pad สำหรับ Battery Input
  3. มีไฟ LED สำหรับแสดงสถานะ
  4. มีปุ่มกด (Button)

เมื่อออกแบบเสร็จแล้ว ผมได้อัปโหลดดีไซน์ลงใน Altium365 เพื่อแบ่งปันให้กับทุกคน

รับสิทธิ์ทดลองใช้ Altium Designer พร้อม 365 ฟรี และส่วนลด 25% สำหรับการซื้อ: https://www.altium365.com/yt/robocircuits

ตอนนี้เมื่อแบบ PCB พร้อมแล้ว ก็ถึงเวลาสั่งผลิต PCB จาก NextPCB

จากนั้นรอให้พัสดุมาส่ง

Step 3: Assembly

การประกอบ PCB แบ่งออกเป็นสองขั้นตอน

1. SMD Assembly

2. THT Assembly

undefined

Step 4: Writing the Code and Testing

เมื่อติดตั้ง Hardware เรียบร้อยแล้ว ก็ถึงเวลาเขียน Code โดยเราจะใช้ Arduino IDE ในการโปรแกรม ESP32 หากคุณยังไม่ได้ติดตั้ง ให้ทำการติดตั้ง Board support สำหรับ ESP32 ใน Arduino IDE โดยดูจากบทความนี้

เราได้นำฟังก์ชัน Deep sleep มาใช้ใน ESP8685 เพื่อประหยัดพลังงานให้ได้มากที่สุดเท่าที่จะทำได้ มาลองคำนวณอายุการใช้งานของ Battery ด้วยการตั้งค่าเวลาใหม่กัน:

ขั้นตอนการคำนวณอายุการใช้งาน Battery ด้วยค่าเวลาใหม่:

Step 1: คำนวณการใช้กระแสไฟฟ้ารวมต่อหนึ่งรอบการทำงาน (Active + Sleep)

โหมด Active:

  1. Current: 80mA
  1. Duration: 0.3 วินาที
  2. Energy consumed: 80 mA x 0.3 วินาที = 24 mA-seconds

โหมด Deep sleep:

  1. Current (ประมาณการ): ~0.01mA (10µA)
  2. Duration: 60 วินาที (1 นาที)
  3. Energy consumed: 0.01 mA x 60 วินาที = 0.6 mA-seconds

พลังงานรวมที่ใช้ต่อหนึ่งรอบ (Cycle):

  1. 24 mA-seconds + 0.6 mA-seconds = 24.6 mA-seconds

Step 2: คำนวณจำนวนรอบการทำงานต่อชั่วโมง

  1. ระยะเวลาในแต่ละรอบ: 0.3 วินาที + 60 วินาที = 60.3 วินาที
  2. จำนวนรอบต่อชั่วโมง: ประมาณ 59.7 รอบ/ชั่วโมง

Step 3: คำนวณพลังงานรวมที่ใช้ต่อชั่วโมง

  1. 59.7 รอบ/ชั่วโมง x 24.6 mA-seconds/รอบ = 1468.62 mA-seconds/ชั่วโมง
  2. แปลง mA-seconds เป็น mAh: 0.41mAh/ชั่วโมง

Step 4: คำนวณอายุการใช้งาน Battery

  1. Battery capacity: 500mAh
  2. Battery life: 1219.5 ชั่วโมง

บทสรุป:

ESP32 จะทำงานได้นานประมาณ 1219.5 ชั่วโมง ด้วย Battery ขนาด 500mAh ตามรูปแบบการใช้พลังงานที่กำหนด หรือคิดเป็นเวลาประมาณ 50.8 วัน

Code

Code สำหรับ ESP-NOW Temperature Sensor มีให้พร้อมกับบทความนี้ เพียงแค่อัปโหลดลงไป

ESP-NOW Slave Code สำหรับ Heltec ESP32 LoRa V2 ในการโปรแกรม ESP32 LoRa V2 จาก Heltec คุณอาจจำเป็นต้องอ่าน บทความนี้ เพิ่มเติม

จากการทดสอบ Sensor ทำงานได้อย่างสมบูรณ์แบบ โดยสามารถส่งค่าผ่านโปรโตคอล ESP-NOW ไปยังอุปกรณ์ Slave ได้สำเร็จ

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: building-a-wireless-temperature-sensor-battery-powered-7c1772
2450 บาท
PromptPay QR Code

ประเมิน Project

อยากได้งานคล้ายโปรเจคนี้? กดไปหน้าประเมินราคา

เอาฟอร์มยาวออกจากท้ายหน้า Project แล้ว เหลือเป็นปุ่มให้กดไปกรอกหน้าเดียว ตัวใหญ่ เว้นบรรทัดเยอะ อ่านง่ายกว่า

รีวิวจากคนใช้งานจริง

รีวิวจากลูกค้าและคนที่เคยใช้งาน

ถ้าเคยสั่งงาน เคยอ่านหน้านี้แล้วได้ประโยชน์ หรือมีข้อเสนอแนะ ฝากรีวิวไว้ได้เลย

กำลังโหลดรีวิว...