ชื่อโปรเจกต์: Improved Personal Weather Station Oplà IoT Project
มีโปรเจกต์สถานีตรวจอากาศส่วนตัวที่คุณสามารถสร้างได้ด้วย Arduino Oplà IoT Kit ซึ่งจะรวบรวมข้อมูลอุณหภูมิ ความชื้น ความดัน และแสง แล้วส่งข้อมูลเหล่านั้นไปยัง Arduino Cloud แต่ผมพบว่าการอ่านค่าอุณหภูมิมีความคลาดเคลื่อนสูงมาก นั่นเป็นเพราะเซ็นเซอร์วัดอุณหภูมิบนบอร์ด (onboard) บน IoT Carrier ได้รับอิทธิพลจากความร้อนที่เกิดจากส่วนประกอบอื่นๆ เช่น Arduino MKR Board, OLED Screen เป็นต้น ผมจึงลองเชื่อมต่อ DHT 11 sensor ภายนอกผ่านขา (pins) ของ Arduino แต่ขาเหล่านั้นถูกเชื่อมต่อและใช้งานอยู่กับ IoT Carrier แล้ว แต่แล้วผมก็สังเกตเห็นพอร์ต Plug-and-Play สองพอร์ตที่ออกแบบมาเพื่อเชื่อมต่อเซ็นเซอร์วัดความชื้นในดินและ PIR Sensor ซึ่งมีป้ายกำกับว่า A0 และ A6 ผมจึงเชื่อมต่อสายเคเบิลเข้ากับพอร์ต A6 และติด Jumper Wires สามเส้นเข้ากับปลายสายเคเบิลนั้น จากนั้นผมก็เชื่อมต่อ DHT Sensor เข้ากับ Jumper Wires เหล่านี้ผ่าน mini breadboard ทำให้เกิดเป็น mini DHT Module ชนิดหนึ่ง (ดูรูปภาพหรือแผนผังในส่วนดาวน์โหลด)

ผมเชื่อมต่อขา VCC และ S ของ DHT (บน breakout board) เข้าด้วยกันด้วย 10kΩ resistor เพื่อทำให้สัญญาณเสถียรขึ้น
ข้อควรทราบ: หาก DHT module ของคุณอยู่บน breakout board (เช่นของผม) มีแนวโน้มว่าจะมี resistor ขนาดเล็กในตัวที่มีป้ายกำกับ 103 นั่นคือ 10kΩ resistor! หาก breakout board ของคุณมีสิ่งนี้ คุณก็ไม่จำเป็นต้องใช้ resistor เพิ่มเติมบน breadboard (ผมทำผิดพลาดในรูปภาพ!)

เมื่อ Arduino MKR Board ได้รับการเชื่อมต่อกับแหล่งจ่ายไฟ คุณสามารถแตะปุ่มต่างๆ เพื่อแสดงอุณหภูมิ ความชื้น แสง และความดัน หากคุณแตะปุ่ม 04 หน้าจอจะดับลงและ backlight จะปิดเพื่อประหยัดพลังงาน น่าเสียดายที่ไม่มีฟังก์ชันปิด backlight แบบดั้งเดิม (native) ผมจึงเขียนทับ (overwrite) digital pin 3 บน MKR board ซึ่งควบคุม backlight อยู่ใน setup function จากนั้นผมก็ใช้ digitalWrite(3, LOW); เพื่อปิด backlight และ digitalWrite(3, HIGH); เพื่อเปิด backlight กลับมา





โค้ดที่ฝังอยู่ด้านล่างคือสิ่งที่ผมคัดลอกและวางมาจาก Arduino Cloud IDE ของผม ก่อนอื่นคุณจะต้องสร้าง IoT thing ใหม่ และกำหนด Variables ต่อไปนี้ใน setup section: humidity, light, pressure, temperature. Variables เหล่านี้จะต้องเป็น floats (ยกเว้น light variable ซึ่งต้องเป็น integer), อ่านอย่างเดียว (read-only) และมีนโยบายการอัปเดตแบบเป็นช่วง (periodic update policy) ที่ 1 วินาที Variable สุดท้ายที่คุณต้องประกาศคือ weather_report variable ซึ่งจะต้องเป็น string, อ่านอย่างเดียว (read-only) และมีนโยบายการอัปเดตเมื่อมีการเปลี่ยนแปลง (on change update policy)

คุณยังต้องเชื่อมโยง Arduino board และเชื่อมต่อเข้ากับเครือข่ายของคุณ
จากนั้น sketch จะถูกสร้างขึ้นตาม variables เหล่านี้ ข้อควรทราบ: สิ่งสำคัญคือห้ามลบโค้ดที่สร้างขึ้นนั้นทั้งหมดและแทนที่ด้วยโค้ดที่ให้ไว้ด้านล่าง คุณจะต้องคัดลอกส่วนย่อยของโค้ด (snippets) ที่ให้ไว้ด้านล่างทีละส่วนเพื่อวางลงในโค้ดของคุณแทน (ตรวจสอบให้แน่ใจว่าได้ตั้งค่า CARRIER_CASE = false; หากคุณวางแผนที่จะใช้สถานีนี้ภายนอกเคสใน setup function) ขั้นตอนสุดท้ายคือการอัปโหลด sketch ไปยัง Arduino (ตรวจสอบให้แน่ใจว่าได้ติดตั้ง Arduino Create agent แล้ว) และกำหนดค่า Dashboard (ดู Dashboard Reference) แผนภูมิขั้นสูงประกอบด้วยกราฟ humidity, temperature, light และ pressure

ตอนนี้ นี่เป็นเพียงต้นแบบเท่านั้น โปรเจกต์นี้ยังมีศักยภาพอีกมาก คุณสามารถเปลี่ยน Breadboard-DHT module ให้กลายเป็น PCB module ที่แท้จริงและกะทัดรัด ซึ่งคุณสามารถเชื่อมต่อโดยตรงด้วยสายเคเบิล Plug-and-Play โดยไม่ต้องใช้ jumper wires เหล่านี้ แต่การสร้าง custom PCBs นั้นเกินความสามารถของผมมาก ลองปรับปรุงโปรเจกต์นี้และโพสต์ผลลัพธ์ของคุณลงใน Arduino Project Hub ได้เลย! (แค่กล่าวถึงผมในคำอธิบายโปรเจกต์ (Project Description) ก็พอ ;-) )
รายละเอียดทางเทคนิคเพิ่มเติม
การตรวจสอบสภาพแวดล้อมระดับมืออาชีพ
นี่คือการอัปเกรดสถานีตรวจอากาศมาตรฐาน โดยเวอร์ชันนี้ใช้ Oplà IoT Kit สำหรับการแสดงข้อมูลขั้นสูงและการบันทึกข้อมูลระยะยาว
- หน้าจอแสดงผลความละเอียดสูงในตัว: ใช้หน้าจอสีทรงกลมของ Oplà เพื่อแสดงมาตรวัดแบบเรียลไทม์สำหรับความดันบรรยากาศ (Barometric Pressure) (hPa), ความชื้น (Humidity) (%), และ UV Index
- ระบบ Telemetry ของ Arduino IoT Cloud: ส่งข้อมูลผ่าน WiFi ไปยัง dashboard คลาวด์ส่วนบุคคล สิ่งนี้ช่วยให้ผู้ใช้สามารถดูแนวโน้มสภาพอากาศในอดีต ("Weather Trends") และรับการแจ้งเตือนบนโทรศัพท์ของพวกเขาหากตรวจพบสภาพอากาศที่รุนแรง (เช่น อุณหภูมิเยือกแข็ง หรือ UV สูง)
ความน่าเชื่อถือ
- การทำงานโดยใช้แบตเตอรี่สำรอง: มีตรรกะสำหรับโหมดประหยัดพลังงาน (Low Power Mode) ซึ่งช่วยให้สถานีสามารถทำงานได้นานหลายวันด้วยแบตเตอรี่ Li-Ion ในขณะที่ยังคงตรวจสอบค่าเซ็นเซอร์ทุก 10 นาที