บทที่ 15.1 ESP32 อ่านค่า เซนเซอร์อุณหภูมิ ความชื้น AHT10 แสดงผลจอ OLED 0.96"
🔥💧📺 ในบทนี้จะนำเสนอการอ่านค่าจากเซนเซอร์อุณหภูมิ ความชื้น AHT10 ซึ่งใช้การเชื่อมต่อแบบ I2C จากรูปด้านล่าง AHT10 จะต่อแบบ I2C ตำแหน่งด้านล่างของบอร์ด IoT Education Kit
การเชื่อมต่อ AHT10 กับบอร์ด ESP32 ด้วย I2C ซึ่งจะมีสายสัญญาณ 4 เส้น ดังนี้ VIN, GND,SCL และ SDA ดังรูปด้านล่าง
คุณสมบัติของ เซนเซอร์ AHT10 มีดังนี้
— ย่านวัดความชื้นช่วง 0–100% ความแม่นยำ +- 2%
— ย่านวัดอุณหภูมิช่วง -40–85 องศาเซลเซียส ความแม่นยำ +- 0.3 องศาเซลเซียส
— ใช้เวลาในการอ่านค่าสัญญาณ 5–30 วินาที
ก่อนการเขียนโปรแกรมจะต้องติดตั้งไลบรารี่ ของ AHT10 ในโปรแกรม Arduino IDE ซึ่งมีขั้นตอนดังนี้
- ไปที่เมนู Sketch เลือก Include Library จากนั้นกดที่เมนู Manage Libraries
2.พิมพ์ ahtx0 ในช่อง และหาไลบรารี่ Adafruit AHTX0 จากนั้นกดปุ่ม Install
3. เมื่อติดตั้งเสร็จจะแสดงข้อความ Installed ให้กดปุ่ม close ได้เลย
4. ขั้นตอนเปิดไฟล์ตัวอย่าง เข้าเมนู File เลือก Example >Adafruit AHTX0 กดที่ Adafruit_aht_test
5. จากนั้นให้ UPLOAD โค้ดได้เลย ค่าอุณหภูมิ ความชื้น จะแสดงผลผ่าน Serial Monitor ตั้งค่า baud ที่ 115200
7. ต่อไปนำค่าอุณหภูมิ ความชื้นที่อ่านได้ แสดงผลที่จอ OLED โดยการ copy โค้ดคำสั่งแสดงผลจอ LCD มาใส่ใน โค้ดคำสั่ง AHT10 ดังคำสั่งด้านล่าง
โค้ดหลังจากรวมคำสั่ง
/*****************************************************************
* Mr.Narin Damnuy (KruRin)
* Technology Computer
* Phatthalung Technical College
* fb.com/damnuy : LineID:damnuy27
* Free License
*****************************************************************/
#include <Adafruit_AHTX0.h>
#include <Wire.h> // Only needed for Arduino 1.6.5 and earlier
#include "SSD1306Wire.h" // legacy: #include "SSD1306.h"
SSD1306Wire display(0x3c, SDA, SCL); // ADDRESS, SDA, SCL
Adafruit_AHTX0 aht;
float t,h;
void setup() {
Serial.begin(115200);
display.init();
display.flipScreenVertically();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_16);
Serial.println("Adafruit AHT10/AHT20 demo!");
if (! aht.begin()) {
Serial.println("Could not find AHT? Check wiring");
while (1) delay(10);
}
Serial.println("AHT10 or AHT20 found");
}
void loop() {
sensors_event_t humidity, temp;
aht.getEvent(&humidity, &temp);
t=temp.temperature;
h=humidity.relative_humidity;
Serial.print("Temperature: "); Serial.print(t); Serial.println(" degrees C");
Serial.print("Humidity: "); Serial.print(h); Serial.println("% rH");
display.clear();
display.drawString(10, 5, "Temp : ");
display.drawString(60, 5, String(t));
display.drawString(10, 35, "Humi : ");
display.drawString(60, 35, String(h));
display.display();
delay(2000);
}
ผลการรันคำสั่ง
ขอบคุณที่รับชมครับผม
สนันสนุน KruRin ในการเขียนบทความ เลี้ยงกาแฟซักแก้วครับ กดที่นี่
สนใจบอร์ด IoT Education Kit V1.1
สั่งซื้อใน Shopee ที่ลิ้งค์ด้านล่างได้เลยครับผม
หรือ กด ที่นี่
KruRin
บทต่อไป กดลิ้งค์ด้านล่างเลยครับ