ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

ปัญหาใช้ dht21 AM2301

Jintrai Tong

เซนเซอร์มีอาการส่งข้อมูล ได้บ้างไม่ได้บ้างเป็นเพราะอะไรครับ ตอนส่งไม่ได้ serial monitor จะขึ้น timeout nan nan แต่พอส่งค่าอุณหภูมิได้ แล้วนำ nodemcu v.3 ไปต่ออแด็ปเตอร์ ทำให้ส่งอุณหภูมิไม่ได้อีก แก้ยังไงครับ มีใครรู้บ้าง ขอบคุณครับ

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน

แสดงว่าเซนเซอร์ทำงานถูกต้องแล้วครับ

เซนเซอร์ตระกูล DHT ส่วนมากจะใช้เวลาอ่านประมาณ 2-3 วินาที ถ้าอ่านเร็วกว่านี้จะยังรวมรวมข้อมูลไม่เสร็จ จะให้ค่า nan ออกมา

ลองใช้คำสั่ง delay(3000); ก่อนอ่านครั้งต่อไปครับ

QUOTE 
ความคิดเห็นที่ #2
Jintrai Tong

ขอบคุณมากๆเลยครับ เดี๋ยวจะลองเอาไปทำดูครับ

 

สอบถามอีกอันครับ ถ้าผมใช้ nodemcu ดึงเวลามาจากเน็ต แล้วผมอยากให้รีเลย์ทำงานทุกๆ 2ชั่วโมง พอมีวิธีแนะนำไหมครับ ขอบคุณมากครับ

 

QUOTE 
ความคิดเห็นที่ #3
เจ้าของร้าน

ทำได้ครับ ดึงเวลามา แล้วเช็ค if ตามช่วงเวลา มีตัวอย่างในคอร์สสอน Arduino ESP8266 เรียนฟรี ที่หน้าเว็บครับ

QUOTE 
ความคิดเห็นที่ #4
Jintrai Tong

 time_t now = time(nullptr);

  struct tm* p_tm = localtime(&now);

  

  int timSec = p_tm->tm_sec;

  int timMin = p_tm->tm_min;

  int timHour = p_tm->tm_hour;

 

  String timeNow = String(timHour)+":"+String(timMin)+":"+String(timSec);

  Serial.println(timeNow);

  anto.pub("time_now",timeNow);

  delay(1000);

  

 

 if(timMin = timMin+5) // จะเช็คทุก 5 นาที แบบนี้ได้ไหมครับ

     {

       

       Serial.print("123456");

     }

}

QUOTE 
ความคิดเห็นที่ #5
เจ้าของร้าน

เวลา นาที จะมี 0-60 ถ้าเกิน 60 จะนับ 0 ใหม่ โคดนี้จะทำงานไม่ถูกต้อง

เขียน if เช็คหลายเงื่อนไขกว่านี้ครับ

ถ้าแบบง่าย ๆ ลองใช้คำสั่ง mod ในการหาว่า หารด้วย 5 ได้เศษ 0 แสดงว่าเวลาจะลงท้ายด้วย 0 หรือ 5

เช่น if((timer%5)==0){}

QUOTE 
ความคิดเห็นที่ #6
Jintrai Tong

มีข้อแนะนำไหมครับ อยากตั้งเวลาทุก2ชั่วโมง

ให้รดน้ำ 1 นาที หยุด1นาที รด1นาที หยุด 1 นาที

ในลูป ทุกๆ 2 ชั่วโมงคครับ 

ตอนนี้ไปไม่ถูกเลยครับ

QUOTE 
ความคิดเห็นที่ #7
เจ้าของร้าน

ถ้าใช้ Arduino ใช้ timer เช็ค if ธรรมดา

หรือใช้ RTC เช่น โมดูล DS3231 ลองดูโคดตัวอย่าง ในหน้าบทความ ครับ 

แต่ถ้ายังไปไม่ถูก ขอแนะนำให้เริ่มจากพื้นฐานก่อน มีตัวอย่างในคอร์สสอน Arduino Starter ครับ

QUOTE 
ความคิดเห็นที่ #8
Jintrai Tong

ขอบคุณครับผม

QUOTE 
ความคิดเห็นที่ #9
เจ้าของร้าน

ยินดีครับ 

QUOTE 
ความคิดเห็นที่ #10
Jintrai Tong

ขอสอบถามอีกนิดหนึ่งครับ ถ้าผมจะรดน้ำทุก2ชั่วโมง

if(timHour%2==0)

{

if (timMin==0||timMin==2)

{

anto.pub("statuspump",1);

}

else if(timMin==1||timMin==3)

{

anto.pub("statuspump",0);

}

แต่ปัญหา คือถ้าเริ่ม 19.00 น. พอครบ 20.00 น. มันจะผ่านไปแค้ 1 ชั่วโมง

มีวิธีแนะนำ ไหมครับ ทุกชั่วโมงเป้นเลขคี่ จะเกิดปัญหานี้รับ

แสดงความคิดเห็นที่ 1-10 จากทั้งหมด 12 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม