Yhbi_Guij
(Yhbi Guij)
1
สวัสดีครับพอดีเขียนโค้ดให้แสดงค่าฝุ่นไปที่จอLCD ตอนแรกก็แสดงค่าปกติครับ ตอนนี้ไม่แสดงค่าครับ แต่โค้ดอัพได้ปกติครับ (ปล.โค้ดทดลองจอก็มีข้อความขึ้น พอเป็นโค้ดนี้ไม่มีค่าขึ้นเลยครับ)
#include "PMS.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
PMS::DATA data;
PMS pms(Serial);
LiquidCrystal_I2C lcd(0x27, 16, 4);
void setup() {
Serial.begin(9600); Serial.println();
// initialize the LCD
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
}
void loop() {
if (pms.read(data)){
Serial.print("PM 1.0: ");
Serial.println(data.PM_AE_UG_1_0);
Serial.print("PM 2.5: ");
Serial.println(data.PM_AE_UG_2_5);
Serial.print("PM 10.0: ");
Serial.println(data.PM_AE_UG_10_0);
lcd.setCursor(3,0);
lcd.print("PMS:Reporter");
lcd.setCursor(0, 1);
lcd.print("PM 1.0: ");
lcd.print(data.PM_AE_UG_1_0);
lcd.print(" ug/m3");
lcd.setCursor(0, 2);
lcd.print("PM 2.5: ");
lcd.print(data.PM_AE_UG_2_5);
lcd.print(" ug/m3");
lcd.setCursor(0, 3);
lcd.print("PM 10 : ");
lcd.print(data.PM_AE_UG_10_0);
lcd.print(" ug/m3");
}
delay(4);
}
Yhbi_Guij
(Yhbi Guij)
2
อันนี้เป็นตอนที่อัพโค้ดทดลองจอนะครับขึ้นปกติ
Yhbi_Guij
(Yhbi Guij)
3
ส่วนอันนี้ใช้โค้ดข้างต้นครับ ไม่มีข้อความเลย
PUYIOT
(อิทธิรงค์ ทองย้อย (ปุ๋ย))
4
ใช้ Arduino หรือ ESP8266 หรือ ESP32 ครับ ข้อมูลคุณน้อยจัง
Yhbi_Guij
(Yhbi Guij)
5
Esp8266 ครับ หัววัด pms3003
Yhbi_Guij
(Yhbi Guij)
6
ใครรู้ช่วยแก้หน่อยนะครับพอดี ผมต้องรีบส่งก่อนวันที่1 ขอบคุณล่วงหน้าครับ
PUYIOT
(อิทธิรงค์ ทองย้อย (ปุ๋ย))
7
ลองดูครับ (ผมแค่ Complie ให้ผ่านนะครับ ไม่ลองกับอุปกรณ์จริง)
#include "PMS.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
PMS::DATA data;
PMS pms(Serial);
#include <LCD.h> // บรรทัดที่ 1 และ 2 สามารถสลับบรรทัดกันได้
#include <Wire.h> // บรรทัดที่ 1 และ 2 สามารถสลับบรรทัดกันได้
#include <LiquidCrystal_I2C.h> //บรรทัดนี้ต้องอยู่ในบรรทัดที่ 3 เท่านั้น ถ้าไปอยู่บรรทัดที่ 1 และ 2 จะคอมไพล์ไม่ผ่าน
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //// ตั้งค่า Address ของอุปกรณ์จอ LCD ที่มีการเชื่อมต่อแบบ I2C
void setup() {
Serial.begin(9600); Serial.println();
// initialize the LCD
lcd.begin(20, 4);
// Turn on the blacklight and print a message.
lcd.backlight();
}
void loop() {
if (pms.read(data)){
Serial.print("PM 1.0: ");
Serial.println(data.PM_AE_UG_1_0);
Serial.print("PM 2.5: ");
Serial.println(data.PM_AE_UG_2_5);
Serial.print("PM 10.0: ");
Serial.println(data.PM_AE_UG_10_0);
lcd.setCursor(3,0);
lcd.print("PMS:Reporter");
lcd.setCursor(0, 1);
lcd.print("PM 1.0: ");
lcd.print(data.PM_AE_UG_1_0);
lcd.print(" ug/m3");
lcd.setCursor(0, 2);
lcd.print("PM 2.5: ");
lcd.print(data.PM_AE_UG_2_5);
lcd.print(" ug/m3");
lcd.setCursor(0, 3);
lcd.print("PM 10 : ");
lcd.print(data.PM_AE_UG_10_0);
lcd.print(" ug/m3");
}
delay(4);
}
Library Download :
New-LiquidCrystal-master.rar (1.3 MB)
ที่เหลือให้ผู้รู้ช่วยอีกแรงนะครับ ศึกษาดูให้ถ้วนถี่ เราจะได้ความรู้ไปต่อยอดได้เยอะ
PUYIOT
(อิทธิรงค์ ทองย้อย (ปุ๋ย))
9
งั้นลอง Scan Address I2C ดูก่อนครับ ว่า มันเป็น Address อะไร
I2CScaneresp8266_2OK.ino (1.1 KB)
เมื่อได้แล้วก็ ไปเปลี่ยน จาก
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
ตรง 0x27
เป็น
0x… ตามที่ Scan ได้ครับ ซึ่งอาจะเป็น 0x3F ประมาณนั้น
Yhbi_Guij
(Yhbi Guij)
11
อัพได้แล้วครับพอเปิดใช้อีกทีแล้ว ไม่ขึ้นเกิดจากอะไรครับ
PUYIOT
(อิทธิรงค์ ทองย้อย (ปุ๋ย))
12
คุณให้รายละเอียดมาน้อยเกินไปครับ เช่น การต่อ Hardware + Code ผมเอง ก็ต้องให้ข้อมูลเท่าที่คิดว่ามันน่าจะมีปัญหามาจากอะไรบ้าง 555…
Remy_Martin
(Permpol Thanapunnamas)
13
แคป serial ออกมาดูด้วยครับ ดูว่ามันโชวร์อะไรบ้างการทำงานปกติ มันทำไหม