Arduino & IoT Academy · บทเรียน

ต่อสายและเขียนโค้ดโหนดเซนเซอร์

อ่านข้อมูลสภาพอากาศและเผยแพร่ผ่าน MQTT

บทเรียน 2 จาก 413 ขั้นตอน

ต่อสายและเขียนโค้ดโหนดเซนเซอร์ เป็นบทเรียน Arduino & IoT Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Arduino & IoT Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Arduino & IoT Academy มีบทเรียนทั้งหมด 4 บทเรียน

สร้างโหนด

ตอนนี้คุณจะเปลี่ยนแผนให้กลายเป็นฮาร์ดแวร์ คุณจะต่อDHT22เข้ากับ ESP32 และเขียนโค้ดเพื่ออ่านข้อมูลสภาพอากาศภายในห้องแล้วเผยแพร่ข้อมูลนั้น 🔌

ต่อไฟเลี้ยงและกราวด์

ต่อ VCC ของ DHT22 เข้ากับ3.3V และต่อ GND เข้ากับกราวด์ของ ESP32 กราวด์ร่วมช่วยให้ชิ้นส่วนทั้งสองตกลงกันได้ว่าสัญญาณมีความหมายอย่างไร

ต่อขาข้อมูล

ต่อสายข้อมูลของเซนเซอร์ไปยังขา GPIO และเพิ่มตัวต้านทานดึงขึ้น เพื่อให้สายที่ไม่ได้ส่งสัญญาณมีสถานะคงที่และอ่านค่าได้อย่างน่าเชื่อถือ

นำเข้าไลบรารีที่ต้องใช้

ที่ด้านบนของสเก็ตช์ ให้นำเข้าเครื่องมือที่ต้องใช้ ได้แก่ ไลบรารี DHT สำหรับเซนเซอร์ และ PubSubClient สำหรับ MQTT

#include <DHT.h>
#include <WiFi.h>
#include <PubSubClient.h>

สร้างออบเจ็กต์เซนเซอร์

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

#define DHTPIN 4
DHT dht(DHTPIN, DHT22);

เริ่มต้นสิ่งต่าง ๆ ใน setup()

ใน setup() คุณเปิด Serial เริ่มต้นเซนเซอร์ด้วย dht.begin() และเชื่อมต่อกับ WiFi เพื่อให้โหนดพร้อมทำงานก่อนที่ลูปจะเริ่มทำงาน

void setup() {
  Serial.begin(115200);
  dht.begin();
}

อ่านอุณหภูมิและความชื้น

ในแต่ละรอบ ให้เรียกใช้ readTemperature() และ readHumidity() เพื่อดึงค่าล่าสุดจากห้องมาเก็บไว้ในตัวแปรสองตัว

float t = dht.readTemperature();
float h = dht.readHumidity();

ป้องกันค่าที่อ่านไม่ได้

บางครั้งเซนเซอร์อาจส่งค่า NaN กลับมา ให้ตรวจสอบด้วย isnan() และข้ามการส่งข้อมูลในรอบนั้น เพื่อไม่ให้ส่งข้อมูลที่ใช้ไม่ได้ไปยังคลาวด์

if (isnan(t) || isnan(h)) {
  return;
}

เชื่อมต่อกับโบรกเกอร์

กำหนดที่อยู่และพอร์ตของโบรกเกอร์ให้ PubSubClient จากนั้นสร้างตัวช่วยสำหรับการเชื่อมต่อใหม่ เพื่อให้กลับมาเชื่อมต่อโดยอัตโนมัติเมื่อการเชื่อมต่อหลุด

client.setServer(BROKER, 1883);

ส่งค่าที่อ่านได้

ส่งค่าแต่ละค่าไปยังหัวข้อของตัวเองด้วย client.publish() ตอนนี้คลาวด์จะได้รับอุณหภูมิล่าสุดในทุก ๆ รอบ

client.publish("home/livingroom/temp", String(t).c_str());

กำหนดจังหวะของลูป

อย่าส่งข้อมูลถี่จนเครือข่ายทำงานหนักเกินไป ใช้การจับเวลาด้วย millis() เพื่อส่งข้อมูลประมาณทุกไม่กี่วินาที ซึ่งเพียงพอสำหรับสภาพอากาศภายในห้อง

ตรวจสอบอย่างรวดเร็ว

ทดสอบโค้ดของโหนดเซนเซอร์

สรุป

คุณต่อวงจร DHT22 อ่านค่าที่ถูกต้อง ป้องกันค่าที่อ่านไม่ได้ และส่งค่าผ่าน MQTT แล้ว โหนดเซนเซอร์ ของคุณทำงานและกำลังสื่อสารอยู่ 📡

เริ่มต้นได้ฟรี

เรียนรู้ C++ ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “ต่อสายและเขียนโค้ดโหนดเซนเซอร์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ต่อสายและเขียนโค้ดโหนดเซนเซอร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Arduino & IoT Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Arduino & IoT Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ต่อสายและเขียนโค้ดโหนดเซนเซอร์”

อ่านข้อมูลสภาพอากาศและเผยแพร่ผ่าน MQTT คุณปฏิบัติ Arduino & IoT Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Arduino & IoT Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Arduino & IoT Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ต่อสายและเขียนโค้ดโหนดเซนเซอร์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Arduino & IoT Academy นี้ได้ไหม

ได้ บทเรียน Arduino & IoT Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. วางแผนสถาปัตยกรรมตั้งแต่ต้นทางถึงปลายทาง
  2. ต่อสายและเขียนโค้ดโหนดเซนเซอร์
  3. สร้างแดชบอร์ดและการแจ้งเตือนบนคลาวด์
  4. ติดตั้ง ตรวจสอบ และอัปเดตในภาคสนาม
← กลับไปที่ Arduino & IoT Academy