กลับไปหน้ารวมไฟล์
temperaturehumidity-measurement-using-arduino-with-esp8266-a158c8.md

สวัสดีน้องๆ! ในบทความนี้เราจะมาคุยกันว่า ESP8266 คืออะไร และเจ้าโมดูล WiFi ตัวนี้ทำงานยังไง แล้วเราจะวัดอุณหภูมิและความชื้นด้วย Arduino โดยใช้เจ้าโมดูลนี้ แล้วส่งข้อมูลขึ้นไปยัง ThingSpeak กัน มาสนุกและเรียนรู้ไปด้วยกันนะจ๊ะ 😉

ในบทความมีอะไรบ้าง?

  • ESP8266 WiFi Module คืออะไร? ใช้ทำโปรเจคอะไรได้บ้าง?
  • เราจะเขียนโปรแกรมลงตัวประมวลผลใน ESP8266 โดยตรงโดยไม่ต้องใช้ Arduino ได้ไหม?
  • มาดูกันว่าเราจะส่งข้อมูลของเราขึ้นไปบน Cloud เพื่อดูได้จากที่ไหนก็ได้ที่มีอินเทอร์เน็ต โดยใช้ Arduino และ ESP8266 ยังไง

ESP8266 WiFi Module คืออะไร? ใช้ทำโปรเจคอะไรได้บ้าง?

ESP8266 เป็นโมดูล WiFi ราคาถูกและใช้งานได้หลากหลายมาก ด้วยโมดูลนี้ เราสามารถเชื่อมต่อกับเครือข่ายไร้สายที่มีอยู่แล้ว หรือจะตั้งเป็น Access Point ของตัวเองก็ได้ ที่สำคัญคือโมดูลนี้มีตัวประมวลผลที่ทรงพลังอยู่ในตัว และมีขา I/O (อินพุต/เอาต์พุต) ที่โปรแกรมได้ นั่นหมายความว่าเราสามารถสร้างโปรเจค IoT ที่ทำงานได้ด้วยตัวเองโดยใช้แค่โมดูลนี้ โดยไม่ต้องพึ่ง Arduino หรือไมโครคอนโทรลเลอร์อื่นๆ เลยก็ได้ แต่สำหรับบทความนี้ เราจะใช้มันคู่กับ Arduino เพื่อให้จัดการข้อมูลจากเซนเซอร์และการเชื่อมต่อ WiFi ได้ง่ายขึ้นนะ

ของที่ต้องเตรียม:

  • Arduino UNO
  • Breadboard
  • ESP8266 WiFi Module (เช่น ESP-01)
  • เซนเซอร์วัดอุณหภูมิและความชื้น DHT11
  • สายจัมเปอร์ผู้ชาย-ผู้ชาย (Male-to-male)

หลังจากเตรียมของครบแล้ว มาจัดวงจรตามแผนภาพด้านล่างนี้กันเลย:

โปรเจคส่งข้อมูลสภาพอากาศขึ้น Cloud

โปรเจคนี้จะแสดงให้เห็นการสร้างสถานีตรวจอากาศระดับมืออาชีพ ที่ส่งข้อมูลสิ่งแวดล้อมไปยังแพลตฟอร์ม IoT ThingSpeak นะ

  • ใช้คำสั่ง AT กับ ESP8266: Arduino จะอ่านข้อมูลจาก เซนเซอร์ DHT11 แล้วสื่อสารกับ โมดูล ESP8266 ผ่านพอร์ตอนุกรมซอฟต์แวร์ เพื่อส่งข้อมูลอุณหภูมิและความชื้นขึ้น ThingSpeak เป็นระยะๆ โดยใช้คำขอ HTTP GET
  • ดูข้อมูลแบบเรียลไทม์บน ThingSpeak: ข้อมูลที่อัปโหลดขึ้นไปจะถูกแสดงเป็นกราฟแบบไดนามิกบนช่อง (Channel) ส่วนตัวของเราใน ThingSpeak ซึ่งเราสามารถดูได้จากเว็บเบราว์เซอร์ใดก็ได้ในโลก
  • เพิ่มความเสถียรด้วย Watchdog Timer (WDT): เราสามารถเพิ่มฟีเจอร์ความน่าเชื่อถือให้ระบบได้ โดยการเขียนโค้ดซอฟต์แวร์เพื่อรีเซ็ต ESP8266 อัตโนมัติหากการเชื่อมต่อ WiFi หลุดไปเป็นเวลานาน จะได้ไม่ขาดการบันทึกข้อมูล

ทีนี้เราก็มาเขียนโค้ด Arduino ที่จำเป็นกันได้แล้ว อย่าลืมโหลดไลบรารีสำหรับ DHT11 มาใช้ด้วยนะ

ใน ThingSpeak ต้องทำอะไรบ้าง?

1. สมัคร บัญชีฟรีบน ThingSpeak ก่อนเลย

2. สร้างช่องใหม่ (New Channel) หลังจากสมัครเสร็จ

3. ตั้งค่าช่องของคุณ ตั้งชื่อช่องและชื่อฟิลด์ (เช่น ตั้ง Field 1 เป็น "Temperature", Field 2 เป็น "Humidity") ตามภาพด้านล่างนี้ จากนั้นเลื่อนลงไปด้านล่างและคลิกปุ่ม Save Channel

4. ช่องของคุณถูกสร้างแล้ว ต่อไปก็ขอ API Key มา ไปที่แท็บ "API Keys"

คัดลอก Write API Key ของคุณมา เราจะต้องใช้คีย์นี้ในโค้ด Arduino

5. นำ API key ของคุณ ไปวางในตำแหน่งที่กำหนดไว้ในโค้ดบน Arduino IDE

เรียบร้อย! 😊 ตอนนี้สถานีตรวจอากาศของคุณพร้อมที่จะบันทึกข้อมูลขึ้น Cloud แล้ว สู้งานนะน้อง!

ข้อมูล Frontmatter ดั้งเดิม

title: "วัดอุณหภูมิ-ความชื้นแบบตึงๆ ด้วย Arduino + ESP8266 (งานง่ายแต่หล่อ!)"
description: "โปรเจคนี้จัดไปแบบวัยรุ่น! เราเอาตัว ESP8266 มาเชื่อมกับ Arduino Uno ให้มันคุยกันได้ แล้วใช้เซนเซอร์วัดค่าพวกนี้ส่งขึ้น Cloud ได้เลย เทพๆ!"
author: "seyyidahmedtopbas"
category: ""
tags:
  - "weather"
  - "home automation"
  - "smart appliances"
views: 20508
likes: 2
price: 299
difficulty: "Intermediate"
components:
  - "1x DHT11 Temperature & Humidity Sensor (4 pins)"
  - "1x Arduino UNO"
  - "1x Jumper wires (generic)"
  - "1x Breadboard (generic)"
  - "1x ESP8266 ESP-01"
tools: []
apps:
  - "1x Think speak web"
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "ebb37febfc1d87f22e3d9be084b5193634bd5e779430a2c55fa32d1d6a82d832"
encryptedPayload: "U2FsdGVkX1/x+OMRvJa35PajPQUD12QK0ZCsANhzNkRZL43dzRy+J2my3oubp/0Kh8smEFS55tGPBDy5w7q5y09QQPEA2Y3nWlrHXscX4W9uhOw54kes1f7e3sWOqhXp"
seoDescription: "Learn how to measure Temperature and Humidity using Arduino and ESP8266 for your next IoT project."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/temperaturehumidity-measurement-using-arduino-with-esp8266-a158c8_cover.jpg"
lang: "en"