อยากปรับช่วงอุณหภูมิใน Blynk แทนการแก้ไขโค้ดที่ตั้งค่าไว้ แบบรับค่าอุณหภูมิเข้าไปผ่าน Blynk ทำยังไงได้บ้างหรอคะ

งานตัวเดิมที่เคยทำเป็น สมาร์ทฟาร์ม ที่ทำโค้ดไว้ว่าให้เซ็ตช่วงอุณหภูมิไว้ที่ a-b °C ก็คือถ้าเราจะปรับช่วงอุณหภูมิใหม่ เราก็ต้องไปแก้โค้ดใหม่ ทีนี้เราเลยอยากทำให้มันสามารถแก้ช่วงอุณหภูมิได้ผ่าน Blynk ในโทรศัพท์ได้เลยน่ะค่ะ ไม่ต้องไปแก้โค้ดใหม่เหมือนรับค่าตัวแปรจาก Blynk แล้วส่งให้ตัว NodeMCU ใช้ในโค้ดอีกที มีใครพอจะทราบบ้างไหมคะ ช่วยเราทีนะคะะ ขอบคุณมากๆเลยค่ะ 0.0

ช่วง อุณหภูมิ ฟิกค่าคงที่รึป่าวครับ เช่น ใช้แค่ 0-100 c แค่ช่วงนี้เท่านั้น

ไม่ใช่ค่ะๆ คือเหมือนโค้ดหนู ถ้าอุณหภูมิในห้องไม่อยู่ในช่วง a-b องศาเซลเซียส รีเลย์จะทำงาน ปกติถ้าจะเปลี่ยนช่วงอุณหภูมิ จะต้องไปแก้ในโค้ด แต่คือหนูอยากให้มันเปลี่ยนค่าอุณหภูมิได้เลย โดยไม่ต้องเข้าไปแก้ในโค้ด ประมาณว่าใช้มือถือใส่ค่าอุณหภูมิ เข้าไป แบบว่าเลือกอุณหภูมิในโทรศัพท์ แล้ว Blynk จะส่งค่าอุณหภูมิไปให้ตัว NodeMCU แล้ว NodeMCU ก็จะรับค่าอุณภูมิ 2 ตัว คือ a-b มันสามารถรับค่าในโทรศัพท์ แล้วส่งไปให้ในโค้ดได้ไหมคะะ

สามารถทำได้ครับ ดูตัวอย่างนี้

BLYNK_WRITE(V0) {
  text_In = param.asStr();  // รับค่าจากหน้าแอพมาเป็น String
}

รับค่ามาเสร็จแล้วอย่าลืมแปลง String to int ก่อนนำไปใช้งานด้วยครับ

ขอบคุณมากๆเลยค่ะะ

ได้ไม่ได้ยังไงมาอัพเดทกันหน่อยนะครับ

ขอโทษนะคะที่ไม่ได้มาอัพเดทเลย ช่วงนั้นมันยุ่งๆน่ะค่ะ แต่เพิ่งมาทำวันนี้ คือหนูลองทำดูแล้วค่ะ แต่ใช้วิดเจ็ทเป็น Numeric Input แทนอ่ะค่ะ เพราะหนูอยากเอาไว้ตั้งค่าอุณหภูมิที่เป็นตัวเลข

คือมันสามารถตั้งตัวเลขได้อยู่ค่ะ


แต่เหมือนพอมันรับค่าที่ส่งจากบลิงไป มันไม่ได้เก็บค่าอุณหภูมิที่หนูตั้งอันล่าสุดไว้อ่ะค่ะ (หนูให้เกณฑ์อุณหภูมิเป็นประมานนี้ค่ะ k < temp < m) ปกติ k กับ m มันเป็นตัวเลขที่จะแก้ได้ก็คือแก้ในโค้ด ไปแก้ในบลิงไม่ได้ แต่หนูอยากให้มันปรับเปลี่ยนช่วงอุณหภูมิได้เลย แต่คือตัวบอร์ดที่รับค่าอุณหภูมิที่ตั้งใหม่จากบลิง มันเก็บไว้ได้แค่แปปเดียว ละก็หายไปเลยค่ะ เหมือนถ้าไปกดตัวเลขเซตค่าเกณฑ์อุณหภูมิใหม่ มันก็จะขึ้นให้เห็นว่าเปลี่ยนทันทีเลยค่ะ ขึ้นมาครั้งเดียว อันนี้เหมือนมันไม่เก็บ a กับ b ที่ตั้งให้จากบลิง ไว้ใช้ตลอดนานๆ มันเลยเอาไปใช้ยังไม่ได้อ่ะค่ะ แบบว่าค่าที่รับมามันไม่อยู่แว้ว

พี่พอมีวิธีที่ทำให้เวลารับค่าจากบลิงแล้วเก็บในตัวแปรแล้วใช้เป็นเกณฑ์อุณหภูมิได้ตลอดไหมคะะ

อันนี้เป็นรับค่า อุณหภูมิที่ตั้งใหม่จากบลิงค่ะ
BLYNK_WRITE(V5)
{
    int k = param.asInt(); 
    String tempk = String(k) + " °C";
    Serial.print("เกณฑ์ต่ำสุด : ");Serial.println(tempk);
  
}

BLYNK_WRITE(V6)
{
    int m = param.asInt();
    String tempm = String(m) + " °C";  
    Serial.print("เกณฑ์สูงสุด : ");Serial.println(tempm); 
}
อันนี้เงื่อนไขค่ะ
 if ((t > k && t < m )) 
    {
        digitalWrite(D4,HIGH);
        Serial.println("พัดลมดับ");
    }   
    else 
    {
        digitalWrite(D4,LOW);
        Serial.println("พัดลมติด");
    }        

ขอบคุณค่าา

1 Like

อาจจะต้องเก็นค่าจาก Blynk ลง Eeprom แล้วละครับ เวลา Blynk หลุด ระบบก็ยังทำงานต่อได้

1 Like

@May_Jarung ขอโทษทีนะครับ ลืมตอบไปเลย กระทู้น่าจะถูกดันหายไปจนผมลืมตอบ T_T ตอนนี้ผมใช้ระบบ Bookmark เข้ามาช่วยละ รับรองว่าไม่ลืมตอบแน่นอน อิอิ

@PUYIOT ถ้าพี่ไม่เมนนี้ผมลืมไปเลยนะครับเนี่ย โถ่ววววว ขอบคุณครับ

สำหรับคำตอบที่นอนต้องการน่าจะอยู่ในกระทู้นี้นะครับ ผมได้อธิบายไว้โดยละเอียด ลองศึกษาเพิ่มเติมดูครับ

1 Like

ขอบคุณมากๆเลยค่ะ เดี๋ยวหนูจะเข้าไปอ่านดูนะคะ ขอบคุณค่าา

อัพเดทกันหน่อยนะครับ กระทู้นี้ :grin:

แงง ขอโทษค่ะ จนตอนนี้หนูก็ยังทำแบบที่หนูคิดเอาไว้ไม่ได้เลยค่ะ กระทู้ที่พี่ส่งมาหนูอ่านแล้วงงนิดหน่อยอ่ะค่ะ แต่ตอนนี้หนูไม่ได้ทำแล้วน่ะค่ะ เพราะงานหนูจะส่งไม่ทันTT

ไม่เป็นไรนะครับ ครั้งหน้าเอาใหม่ ต่อไปไม่รู้อะไรให้ถาม เราพร้อมตอบเสมอ

ขอบคุณพี่ๆมากๆเลยนะคะTT