กลับไปหน้ารวมไฟล์
weatherbot-95411b.md

Introduction

Weatherbot คือหุ่นยนต์ตรวจสภาพอากาศ มันสามารถแนะนำว่าเราควรใส่ชุดอะไรดี แจ้งเตือนสภาพอากาศปัจจุบันอย่างหิมะหรือฝนตก และแสดงอุณหภูมิและความชื้นในตอนนี้ได้

เจ้า **WeatherBot** ตัวนี้คือสะพานเชื่อมระหว่างการสื่อสาร API จากอินเทอร์เน็ตกับอนิเมทรอนิกส์ในโลกจริง แทนที่จะต้องมานั่งอ่านข้อมูลจากหน้าจอเพื่อดูสภาพอากาศ คุณก็แค่มองไปที่หุ่นยนต์ของคุณ ถ้าข้างนอกฝนตก หุ่นยนต์ก็จะกางร่มจิ๋วออกมา! โปรเจกต์นี้จะพาน้องๆ รู้จักกับแนวคิดสุดเจ๋งที่เรียกว่า **Ambient Technology** ซึ่งเป็นการสื่อสารข้อมูลผ่านการเปลี่ยนแปลงสถานะทางกายภาพ แทนที่จะเป็นตัวเลขธรรมดาๆ

อุปกรณ์ที่ต้องใช้

  1. Arduino Nano RP2040 Connect
  2. จอแสดงผล 0.96 OLED SPI
  3. โพเทนชิโอมิเตอร์ (Potentiometer)
  4. เซ็นเซอร์ DHT 11
  5. ปุ่มกด (Button)
  6. ตัวต้านทาน 220 โอห์ม (Resistor 220)
  7. สายจัมเปอร์ (Jumper Wires)

วิธีประกอบ

เริ่มต้น เอาเซ็นเซอร์ DHT มาต่อขาต่างๆ กับ Arduino ตามนี้เลย

  1. ขา Data (ขาซ้ายสุด) ต่อกับ D4
  2. ขา VCC (ขากลาง) ต่อกับ +3v3
  3. ขา GND (ขาขวา) ต่อกับ GND

ต่อไป มาจับคู่จอ OLED กัน

  1. RES ต่อกับ D8
  2. D/C ต่อกับ D9
  3. CS ต่อกับ D10
  4. CLK ต่อกับ D13
  5. DIN ต่อกับ D11
  6. GND ต่อกับ GND และ VCC ต่อกับ +3v3

ทีนี้มาต่อโพเทนชิโอมิเตอร์กันบ้าง

  1. ขาเดี่ยว ต่อกับ A0
  2. ขาคู่แรกทางซ้าย ต่อกับ +3v3
  3. ขาคู่ที่สองทางขวา ต่อกับ GND

สุดท้าย ต่อปุ่มกดตามรูปด้านล่างนี้เลยน้อง

วิธีต่อปุ่มกด

WeatherBot ทำงานยังไง

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

รายละเอียดเทคนิคเพิ่มเติม

ดึงข้อมูลพยากรณ์อากาศ (API Integration)

หุ่นยนต์ต้องเชื่อมต่ออินเทอร์เน็ตผ่าน **ESP8266 หรือ ESP32**

  1. ขั้นตอนการขอข้อมูล: ESP จะส่งคำขอ HTTP GET ไปยังบริการ API อย่างเช่น `OpenWeatherMap.org`
  2. ผลลัพธ์: เซิร์ฟเวอร์จะตอบกลับมาเป็นสตริง JSON ที่มีข้อมูลพยากรณ์อากาศอยู่
  3. การตีความข้อมูล: ไลบรารี `Arduino_JSON` จะค้นหาคีย์เวิร์ด เช่น `"weather": "Rain"`

การสั่งงานอนิเมทรอนิกส์

เมื่อ ESP ตีความสภาพอากาศได้แล้ว มันจะขับเซอร์โวมอเตอร์เพื่อแสดงการกระทำทางกายภาพ:

  • `If (condition == "Rain")`: Arduino จะสั่งงาน Servo 1 ให้แขนกลยกร่มที่พิมพ์จากเครื่อง 3D พริ้นท์ขึ้นมาบนหัวหุ่นยนต์ พร้อมกับให้ไฟ LED กะพริบสีน้ำเงิน
  • `If (condition == "Clear")`: Servo 1 จะลดร่มลง แล้ว Servo 2 จะหย่อนแว่นกันแดดคู่จิ๋วมาครอบตาหุ่นยนต์แทน!
  • `If (condition == "Wind")`: มอเตอร์ DC จะหมุนใบพัดเล็กๆ บนหน้าอกหุ่นยนต์

ฮาร์ดแวร์ขั้นสูงที่อาจต้องใช้

  • ESP8266 NodeMCU: สำหรับดึงข้อมูล API จากอินเทอร์เน็ต
  • เซอร์โวมอเตอร์ขนาดเล็กหลายตัว (SG90): ใช้เป็นตัวขับเคลื่อน
  • มอเตอร์ DC ขนาดเล็ก: สำหรับเอฟเฟกต์ลม
  • NeoPixels: สำหรับไฟแสงสีประกอบบรรยากาศ
  • โครงสร้างหุ่นยนต์สุดครีเอท: ทำจากกระดาษลัง เลโก้ หรือชิ้นส่วนที่พิมพ์จากเครื่อง 3D พริ้นท์
แผนภาพการต่อวงจรแบบเต็ม

ถ้ามีอะไรไม่ทำงาน คอมเมนต์มาบอกพี่ได้เลยนะ พี่ยินดีช่วยเหลือ

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

apps:
  - "1x Arduino IDE 2.0 (beta)"
author: "efatheone"
category: "Sensors & Environment"
components:
  - "1x 10 jumper wires 150mm male"
  - "1x Arduino Nano RP2040 Connect with headers"
  - "1x DHT 11 module"
  - "1x Waveshare 0.96 inch OLED Display"
  - "1x 220 resistor"
  - "1x 10kOhm potentiometer"
  - "1x Push Button"
description: "นี่คือโปรเจค Arduino Nano RP2040 Connect ที่มันจะบอกอุณหภูมิและความชื้นแบบเรียลไทม์ พร้อมแนะนำว่าวันนี้ใส่เสื้อผ้าแบบไหนถึงจะเท่ และเตือนภัยให้รู้ก่อนถ้าฝนหรือหิมะจะมา! ใช้เซนเซอร์เทพๆ ทำงานผ่าน Interrupt งานง่ายแต่โคตรหล่อ ใครทำได้รับรองดูโปรแน่นอน จัดไป!"
difficulty: "Easy"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX199nL/g6jUruCKi63OvSdS5mEb5dEDWB6z65T9U89tuULz9+0z5RWIxi/kyCmnIk4accW98/iKDurosgemzq47VUq2pJk6fk58="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/weatherbot-95411b_cover.gif"
lang: "en"
likes: 2
passwordHash: "4e39650e6ebc59f1ae49e00c95877442d75bee54ad007a1bc8a3a9054b9ed476"
price: 1499
seoDescription: "Build WeatherBot with Arduino Nano RP2040 Connect to monitor Temperature and Humidity, get clothing tips, and Rain or Snow alerts."
tags:
  - "Weather"
  - "Monitoring"
title: "WeatherBot - ตัวบอกอากาศสุดตึง รู้ร้อนรู้หนาว รู้ว่าควรใส่ชุดไหนให้หล่อปัง!"
tools: []
videoLinks:
  - "https://www.youtube.com/watch?v=n79TxE_gSfo"
views: 6769