โปรเจกต์ ThingSpeak Arduino Weather Station
ตรวจวัด Temperature และ Humidity ภายในห้องของคุณ พร้อมทั้งส่งข้อมูลไปยัง Cloud
ตรวจวัด Temperature และ Humidity ภายในห้องของคุณ พร้อมทั้งส่งข้อมูลไปยัง Cloud

การเริ่มต้นเข้าสู่โลก IoT อาจเป็นเรื่องท้าทายสำหรับมือใหม่ที่ไม่รู้ว่าจะเริ่มจากตัวเลือกที่มีอยู่อย่างมากมายได้อย่างไร ขอบคุณ Thingspeak บล็อกนี้จะพาคุณไปทำโปรเจกต์ Thingspeak IoT แรกของคุณซึ่ง:
ก) ราคาถูกและหาซื้อได้ง่าย
ข) เข้าใจง่าย
ค) เท่สุดๆ
โปรเจกต์นี้คือ - Sensor วัดอุณหภูมิและความชื้นที่ส่งข้อมูลไปยัง Thingspeak Cloud โดยใช้ Arduino และโมดูล WiFi ESP - 01
1. Arduino UNO
2. ESP - 01

3.DHT-11 sensor
4.Breadboard
5. สายไฟเชื่อมต่อ (Connecting Wires)
หมายเหตุ - จริงๆ แล้วคุณสามารถใช้ Arduino ในการจ่ายไฟให้ Sensor และโมดูล WiFi ได้ แต่การใช้แหล่งจ่ายไฟภายนอกอย่างโมดูล Breadboard Power Supply จะดีกว่า เพราะความต้องการกระแสไฟฟ้าสูงสุด (Peak Current) ของโมดูล WiFi ขณะทำงานนั้นบอร์ด Arduino ไม่สามารถจ่ายได้เพียงพอ เชื่อผมเถอะ ผมลองมาแล้ว
เอาละ เรามาเริ่มกันเลย

ESP -01
1. VCC - 3.3V
2. GND - GND
3. CH_PD - 3.3V
4. RESET - 3.3V
5. TX - 2 ( Arduino)
6. RX - 3 (Arduino)
DHT - 11
1. VCC - 5V
2. OUT - A0
3. GND - GND
อย่าลืมตั้งค่า Jumper ไปที่ 3.3V บน Breadboard Power Supply
คราวนี้ลองจ่ายไฟดู และถ้าไม่มีอะไรไหม้หรือมีควันขึ้น ก็ถือว่าเริ่มต้นได้ดี
ไปที่หน้าโฮมเพจของ Thingspeak

สมัครสมาชิกและสร้าง New Channel โดยกำหนด Field สองช่องคือ Temperature และ Humidity
เมื่อสร้าง Channel ใหม่แล้ว คุณจะได้รับสิ่งที่เรียกว่า API Keys

เราจะใช้มันในขั้นตอนต่อๆ ไป
ขั้นตอนนี้เป็นหัวใจสำคัญในการทำให้ Code ทำงานได้ นั่นคือ LIBRARIES
คุณจะต้องใช้ Library สองตัวใน Code และตัวที่สามเพื่อสนับสนุนการทำงานของตัวอื่นๆ
ตามที่เน้นไว้ในกรอบสีแดง

SoftwareSerial.h เป็น Library ที่มีมาให้อยู่แล้ว (inbuilt library) จึงไม่มีปัญหาอะไร
2. ดาวน์โหลดทั้งคู่และเพิ่มเข้าไปโดยใช้ฟีเจอร์ Add .ZIP Library ใน Arduino IDE

มีบางสิ่งที่ต้องแก้ไขใน Code ก่อนที่คุณจะ Upload
1. วาง Write API key ของคุณที่นี่

2. ใส่ SSID และ Password ของ WiFi ของคุณที่นี่

ทำการ Upload โค้ด หากทุกอย่างทำอย่างถูกต้อง Thingspeak Channel ของคุณควรจะมีลักษณะดังนี้

โปรดทราบว่าจะมีช่วงเวลาห่างกัน 15 วินาทีระหว่างการอัปเดตข้อมูลลงบนกราฟ
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้