Esp8266 2 ตัว ส่งข้อมูลเข้าไลน์

ขออนุญาติสอบถามครับ ESP82669 ตัวที่1 สามารถส่งข้อมูลให้ ESP8266 ตัวที่2 แบบไร้สายผ่านสัญญานไวฟาย และให้ ESP8266 ตัวที่2 ส่งข้อมูลเข้าไลน์แบบนี้สามารถทำได้ไหมครับ

1 Like

ลองทำดูก็ได้ ติดตรงไหนได้อะไรมา เอามาคุยกันครับ

ตอนนี้ยังไม่มีแนวทางเลยครับผมขอคีย์เวิอร์ดในการค้นหาหน่อยครับ
เรื่องใหม่สำหรับผมเลยครับเรื่องนี้

ตามนี้ครับ

พี่ครับผมขออนุญาติสอบถามหน่อยครับ
1.ถ้าผมอยากส่งค่าจาก sensor เข้าไลน์ (line-notify) แต่อยากจะให้ตั้วเวลาส่งเช่น 1ชั่วโมงส่ง 1ครั้งแบบนี้พอมีวิธีใหมครับ
2.ถ้าอยากทำเป็นเงื่อนไขเช่น ถ้ารับค่าจาก sensor = 10, sensor = 50, sensor = 100, sensor = 150
ให้ส่งค่าจาก sensor เข้าไลน์แบบนี้สามารถทำได้ใหมครับ

ข้อ 1 ส่งตามเวลา มาตฐานโลกใช่ไหม
คือ 08:00 ส่งค่าsensor และเวลาต่อไป คือส่ง ตอน 09:00 ซึ่งค่านี้จะส่งตามเวลาโลก ถึงแม้เราจะเรา Reset Esp ตอน 07:45 แต่มื่อถึงเวลาตอน 08:00 ESP ก็ส่งค่า Sensor
หรือ…เป็นการส่งตามเวลาแบบ ตั้งเวลาส่งตามการนับเวลา คือตั้งส่ง ทุกๆชั่วโมง เวลาจะนับหลังจาก จ่ายไฟให้ESP เช่น กดReset ESP ตอน 08:30 การส่ง ค่า Sensor จะส่งเมื่อนับเวลาได้ 1 ชั่วโมง นั่นคือ ตอน 09:30 แต่ถ้าระหว่างทาง หยุดจ่ายไฟ ESP และเมื่อไหร่ที่จ่ายไฟใหม่ ESPจะนับเวลาใหม่ นั่นหมายถึง ตอน 09:30 ESP จะไม่ส่งค่า Sensor ให้ จนกว่าจะนับใหม่จนครบ 1 ชั่วโมง

ข้อ 2 ทำได้

ตอนนี้ผมลองทำข้อ 2 อยู่ครับแต่เมื่อผมตั้งเงื่อนไขไว้ที่ 10 แล้วให้ส่งค่าแต่พอเข้าเงื่อนไขแล้วมันไม่หยุดส่งให้ครับมันส่งมาแบบรัวๆเลยครับ และไม่ยอมไปทำเงื่อนไขที่ 2 นะครับ

ข้อ 1 ใช่ครับ

ปล.หากเป็นไปตามเงื่อนไขให้ส่งเข้าไลน์เพียงคร้งเดียวพอครับ

ลง Code ให้ดูหน่อยครับ แต่จากที่บอก มันติดเงื่อนไข ว่าจริงอยู่ ให้ เขียนเงื่อนไข ตรวจสอบการส่ง Line ว่ามีการส่งหรือยัง ถ้าส่งแล้ว ให้หลุดออกจากเงื่อไข

ข้อ 1 แบบไหนครับ มันมี 2 แบบ

ข้อ 1 แบบส่งตามเวลาโลกครับ

code ข้อ2

   // sensor = i_data 

   int runnumber = 1;
      if(i_data > 10){
         runnumber ++;
              if(runnumber = 10){
                   String LineText;
                   String string1 = "ระดับน้ำในถังเก็บ ";
                   String string2 = " เซ็นติเมตร";
                   LineText = string1 + i_data + string2;
                   Serial.print("Line ");
                   Serial.println(LineText);
                   LINE.notify(LineText);
                }
           }
            else  {
                  runnumber = 1;
            }

ข้อ 1 แบบส่งตามเวลาโลกครับ

code ข้อ2

// sensor = i_data

int runnumber = 1;
if(i_data > 10){
runnumber ++;
if(runnumber = 10){
String LineText;
String string1 = "ระดับน้ำในถังเก็บ ";
String string2 = " เซ็นติเมตร";
LineText = string1 + i_data + string2;
Serial.print("Line ");
Serial.println(LineText);
LINE.notify(LineText);
}
}
else {
runnumber = 1;
}

อธิบาย Code ให้ฟังหน่อยครับ
แล้ว i_data มาจากไหน ?

i_data เป็นตัวแปรที่เก็บค่าจากเซนเซอร์ครับ

โค้ดเต็มอยู่ในคอมอีกเครื่องครับผมจำได้ไม่หมดผมเลยยกมาแค่ส่วนที่ติดปัญหาครับ

อย่างที่บอก ติด Loop ครับ
loop