บทความประกอบการเรียนรู้ => ไมโครคอนโทรลเลอร์ (Arduino) => ข้อความที่เริ่มโดย: admin ที่ เมษายน 07, 2016, 03:18:30 PM

หัวข้อ: งานครั้งที่ 48 เขียนโปรแกรมอุณหภูมิ,ความชื้นด้วย DHT22 แสดง UART (install Lib )
เริ่มหัวข้อโดย: admin ที่ เมษายน 07, 2016, 03:18:30 PM
เขียนโปรแกรมอุณหภูมิและความชื้นด้วย DHT22 แสดงผลที่ UART
ฟังก์ชั่นอยู่ในกลุ่ม Serial http://arduino.cc/en/Reference/Serial (http://arduino.cc/en/Reference/Serial)
-Serial.begin() http://arduino.cc/en/Serial/Begin (http://arduino.cc/en/Serial/Begin)
-if (Serial) http://arduino.cc/en/Serial/IfSerial (http://arduino.cc/en/Serial/IfSerial)
-Serial.available() http://arduino.cc/en/Serial/Available (http://arduino.cc/en/Serial/Available)
-Serial.read() http://arduino.cc/en/Serial/Read (http://arduino.cc/en/Serial/Read)
-Serial.print() http://arduino.cc/en/Serial/Print (http://arduino.cc/en/Serial/Print)
-Serial.println() http://arduino.cc/en/Serial/Println (http://arduino.cc/en/Serial/Println)
-Serial.flush() http://arduino.cc/en/Serial/Flush (http://arduino.cc/en/Serial/Flush)

ฟังก์ชั่นที่ใช้งาน
-pinMode() http://arduino.cc/en/Reference/PinMode (http://arduino.cc/en/Reference/PinMode)
-digitalWrite() http://arduino.cc/en/Reference/DigitalWrite (http://arduino.cc/en/Reference/DigitalWrite)
-delay() http://arduino.cc/en/reference/delay (http://arduino.cc/en/reference/delay)

ไลบารี่เพิ่มเติม
-DHT.h https://github.com/adafruit/DHT-sensor-library (https://github.com/adafruit/DHT-sensor-library)
-Adafruit_Sensor.h https://github.com/adafruit/Adafruit_Sensor (https://github.com/adafruit/Adafruit_Sensor)

การเพิ่มไลบารี่ลงในโปรแกรม Arduino IDE จากไฟล์ Zip (ดำเนินการทั้ง 2 ตัว)
1. ดาวน์โหลดไฟล์ Zip ดังรูป
(http://www.praphas.com/PhotoForum/arduino/Lab-48-a.png)

(http://www.praphas.com/PhotoForum/arduino/Lab-48-b.png)

2. ทำการเพิ่มไลบรารี่ลงในโปรแกรม Arduino IDE โดยการเพิ่มจากไฟล์ zip แล้วทำการหาไฟล์ zip ที่ได้จากการดาวน์โหลดในข้อ 1
(http://www.praphas.com/PhotoForum/arduino/Lab-16-b.png)

โจทย์การทดลอง
-เขียนโปรแกรมอุณหภูมิและความชื้นด้วย DHT22 แสดงผลที่ UART
-โปรแกรมรายละเอียดพิเศษรายกลุ่ม (แจ้งให้ทราบเมื่อถึงชั่วโมงเรียน)

วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้บอร์ด Arduino
[imghttp://www.praphas.com/PhotoForum/arduino/Lab-48-01.png[/img]http://วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้ไอซี ATmega328 (ที่มี Boot Loader Arduino)
(http://www.praphas.com/PhotoForum/arduino/Lab-48-02.png)

ตัวอย่างโปรแกรม
โค๊ด: [Select]
#include <DHT.h>
#define DHTPIN 13     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321

DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(9600);
  Serial.println("DHTxx test!");
  dht.begin();
}
void loop() {
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();      // Read temperature as Celsius (the default)
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t))
 {
     Serial.println("Failed to read from DHT sensor!");
     return;
  }
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.println(" *C ");
}