ช่วยดูCodeหน่อยครับว่าถูหรือเปล่าพอดีผมจะเอาแสดงผลที่LCDครับ
Codeครับ
#include <LiquidCrystal.h> //Librairie pour l'écran LCD
#include <DHT.h> //Librairie pour le capteur DHT
LiquidCrystal lcd(12, 11, 4, 3, 2, 1); //Initialisation de l'écran LCD avec les numéros des pins utilisés
#define DHTPIN 9 //Pin auquel est connecté le capteur DHT
#define DHTTYPE DHT11 //Si vous utiliser le DHT 11
//#define DHTTYPE DHT22 //Si vous utiliser le DHT 22 (AM2302)
//#define DHTTYPE DHT21 //Si vous utiliser le DHT 21 (AM2301)
const int intTimePause = 5000; //Par défaut on actualise les valeures toutes les 5 secondes
float fltHumidity; //Pourcentage d'humidité mesuré
float fltTemperature; //Température mesurée en Celsius
DHT dht(DHTPIN, DHTTYPE); //On initialise le capteur DHT
void setup()
{
lcd.begin(16, 2); //On indique le nombre de colonnes et de lignes de l'écran
lcd.clear(); //On efface tout ce qui se trouve sur l'écran
}
void loop()
{
fltHumidity = dht.readHumidity(); //On lit le pourcentage d'humidité
fltTemperature = dht.readTemperature(); //On lit la température en degrés Celsuis
if (isnan(fltTemperature) || isnan(fltHumidity)) //Si les valeures retournées ne sont pas des nombres :
{
lcd.setCursor(0, 1); //Positionnement du curseur
lcd.print(DHTTYPE); //On affiche le type de capteur
lcd.setCursor(5, 1);
lcd.print(" illisible"); //On affiche l'erreur
}
else
{
//mise en forme et affichage des informations sur l'écran LCD
lcd.setCursor(0, 0); //Positionnement du curseur
lcd.print("Degres : ");
lcd.setCursor(9, 0);
lcd.print(fltTemperature); //Affichage de la température
lcd.setCursor(13, 0);
lcd.print((char)223); //Affiche le caractère ° (degrés)
lcd.setCursor(14, 0);
lcd.print("C"); //En degrés Celsuis
lcd.setCursor(0, 1);
lcd.print("Humidite : ");
lcd.setCursor(11, 1);
lcd.print(fltHumidity); //Affichage de l'humidité
lcd.setCursor(15, 1);
lcd.print("%");
}
delay(intTimePause); //On actualise les informations toutes les x millisecondes.
}
1.มี ไลบารี <LiquidCrystal.h> ,<DHT.h> แล้วยังครับ
2.สังเกตเป็นภาษา ที่ใช้ ไม่ใช่ อังกฤษ ตรงข้ออธิบาย ผมก็หัดเล่นใหม่นะครับ ก็ไม่ค่อยรู้เรื่องเท่าใด
แต่ คาดเอาว่า การเขียน Code คำสั่ง บางคำสั่ง ต้อง สำพัน กับ ไลบารี ซึ่งชื่อมัน อาจเหมือนกัน
แต่วิธีเขียน ให้ติดต่อกันกับ Sensor ไม่เหมือนกัน
3.ตอนนี้ติดตรง Verify (Complie) Sketh หรือปล่าวครับ ถ้าใช่ ช่วย ส่ง ข้อความที่มันแจ้ง Error มาด้วยครับ
คงมีคนช่วยตอบได้แน่ ๆ
ลองดู Code ที่ผมเคย test ได้นะครับ แต่ผมใช้ Display แบบ I2C นะ
#include <Wire.h>
#include <DHT.h>
#define DHTPIN 2 // what pin we're connected to
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
dht.begin();
lcd.begin();
lcd.backlight();
}
void loop() {
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
float t = dht.readTemperature();
// check if returns are valid, if they are NaN (not a number) then something went wrong!
if (isnan(t) || isnan(h)) {
lcd.println("Failed to read from DHT");
} else {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Humi: ");
lcd.print(h);
lcd.print(" %");
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.print(t);
lcd.println(" *C ");
delay(5000);
}
}
ต่อรับสัญญาณ จาก DHT11 เข้าที่ ขา 9 ของ บอร์ด ปะครับครับ CODE ผมเอามาลอง Compli ผ่านนะ
วิธีเล่น ตามสโคปต้องการอ่านค่าจาก DHT11 ออกมาแสดงผลทางจอ LCD ให้ลองทำทีละโคดก่อนครับ ออกแล้วเอาโคด 2 ตัวมารวมกัน ผมเชื่อว่าไม่นานต้องทำได้
แสดงว่า lcd ยังลงไลบารีไม่ถูก วิธีการคือให้ลากทั้ง 2 โพลเดอร์ไปไว้ในโพลเดอร์ C:\Users\max\Documents\Arduino\libraries แล้วเปิด arduino ใหม่ครับ
ขอบคุณ คุณมือใหม่ ที่ช่วยตอบครับ : )
#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
}
else {
lcd.setCursor(0,0);
lcd.print("Temp=");
lcd.print(t);
lcd.print(" *C");
lcd.setCursor(0,1);
lcd.print("Humidity=");
lcd.print(h);
lcd.print("% ");
delay(500);
}
}
ตัวสีแดงอะครับที่มันเตือนครับ
คำสั่งที่มันerror
sketch_jan18a.ino:1:17: error: DHT.h: No such file or directory
sketch_jan18a:5: error: 'DHT' does not name a type
sketch_jan18a.ino: In function 'void setup()':
sketch_jan18a:10: error: 'dht' was not declared in this scope
sketch_jan18a.ino: In function 'void loop()':
sketch_jan18a:13: error: 'dht' was not declared in this scope
ด้านล่างเป็นรูปวงจรครับ
Libary DHT เอาไปวางไว้ ที่ไหนเนี่ย โปรแกรมมันหาไม่เจอ