ตัว NodeMCU เชื่อมเข้า WIFI ได้แต่ไม่ทำงานครับ

Saharat_Imthong (Saharat Imthong) June 24, 2020, 4:20am #1

ผมเขียนให้ NodeMCU เชื่อม WIFI และติด Censor ไว้เพื่อให้ส่งข้อความเข้า LINE ครับ ตรวจโปรแกรมผ่านแล้วลงบอร์ดได้ แต่พอเสียบทดลองตัว NodeMCU เชื่อม WIFI ได้ตัว Censor ก็มีไฟกระพริบตอนเอามือปัด แต่ไม่มีข้อความส่งเข้ามาใน LINE เลยครับ ต้องทำยังไงครับ

PUYIOT June 2, 2020, 8:03am #2

มี code ที่เขียนมั๊ยครับ เอามาลงให้ดูหน่อย แล้ว Sensor ที่ว่าคือ Sensor อะไรหรือครับ คือข้อมูลที่ให้ค่อนข้างน้อยครับมองภาพไม่ออก

Saharat_Imthong (Saharat Imthong) June 2, 2020, 8:52am #5

ภาพ

ภาพ

ภาพ

อันนี้ตัว code ครับ

Saharat_Imthong (Saharat Imthong) June 2, 2020, 8:54am #6

2950

อันนี้ตัว Censer ครับ

PUYIOT June 2, 2020, 9:19am #7

เรื่อง Line massage ผมของเสนอ Library นี้ ครับ เพราะใช้ง่ายกว่าครับ (เค้ารวบรวม Code ไว้แล้ว เราหยิบใช้ได้เลย)
ไม่ต้องเขียน code ติดต่อ line ลงใน Sketch
TridentTD_LineNotify

GitHub

TridentTD/TridentTD_LineNotify

LINE Notify library for ESP8266 & ESP32. Contribute to TridentTD/TridentTD_LineNotify development by creating an account on GitHub.

PUYIOT June 2, 2020, 9:25am #8

แนวการทดสอบคือ เป็นขั้นๆ นะครับ (แค่แนะนำครับ)

  1. Node MCU ESP8266 ของคุณสามารถเชื่อมต่อ Wifi ได้แล้ว ใน Void setup เราก็เขียนคำสั่ง ให้ส่ง Line มา เพื่อยืนยันว่ามันส่งมาได้จริง
  2. จากนั้น ค่อยเอา code sensor มาใส่เข้าไปอีกทีครับ

PUYIOT June 2, 2020, 9:28am #9

ลองดูตัวอย่างนี้ครับ

#include <TridentTD_LineNotify.h>

#define SSID        "--------------------"
#define PASSWORD    "--------------------"
#define LINE_TOKEN  "--------------------"

void setup() {
  Serial.begin(115200); Serial.println();
  Serial.println(LINE.getVersion());
  
  WiFi.begin(SSID, PASSWORD);
  Serial.printf("WiFi connecting to %s\n",  SSID);
  while(WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(400); }
  Serial.printf("\nWiFi connected\nIP : ");
  Serial.println(WiFi.localIP());  

  // กำหนด Line Token
  LINE.setToken(LINE_TOKEN);

  // ตัวอย่างส่งข้อความ
  LINE.notify("อุณหภูมิ เกินกำหนด");

 
}

void loop() {
  delay(1);
}

ถ้ามันทำงานปกติ ค่อยเอา code ของ Sensor มาใส่อีกที

Saharat_Imthong (Saharat Imthong) June 2, 2020, 9:28am #10

Add images

2953

ต้องนำไปใส่ในนี้ใช่ไหมครับ

PUYIOT June 2, 2020, 9:29am #11

ใช่ครับ
1

Saharat_Imthong (Saharat Imthong) June 2, 2020, 3:17pm #12

void Line_Notify(String message) ;

#include <ESP8266WiFi.h>

// Config connect WiFi
#define WIFI_SSID "Aon12142"
#define WIFI_PASSWORD "351123aon"

// Line config
#define LINE_TOKEN "2v55D8mZMhrBbHqDu06jtpPP8tTeZF2flVKBCrC8uZn"

#define SW D2

String message = "Massage Box"; // ArduinoIDE เวอร์ชั่นใหม่ ๆ ใส่ภาษาไทยลงไปได้เลย

void setup() {
  pinMode(SW, INPUT);

  Serial.begin(9600);

  WiFi.mode(WIFI_STA);
  // connect to wifi.
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("connecting");

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("connected: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  if (digitalRead(SW) == HIGH) {
    while(digitalRead(SW) == HIGH) delay(10);

    Serial.println("Enter !");
    Line_Notify(message);
    // Serial.println();
  }
  delay(10);
}

void Line_Notify(String message) {
WiFiClientSecure client; // กรณีขึ้น Error ให้ลบ axTLS:: ข้างหน้าทิ้ง

  if (!client.connect("notify-api.line.me", 443)) {
    Serial.println("connection failed");
    return;   
  }

  String req = "";
  req += "POST /api/notify HTTP/1.1\r\n";
  req += "Host: notify-api.line.me\r\n";
  req += "Authorization: Bearer " + String(LINE_TOKEN) + "\r\n";
  req += "Cache-Control: no-cache\r\n";
  req += "User-Agent: ESP8266\r\n";
  req += "Connection: close\r\n";
  req += "Content-Type: application/x-www-form-urlencoded\r\n";
  req += "Content-Length: " + String(String("message=" + message).length()) + "\r\n";
  req += "\r\n";
  req += "message=" + message;
  // Serial.println(req);
  client.print(req);
    
  delay(20);

  // Serial.println("-------------");
  while(client.connected()) {
    String line = client.readStringUntil('\n');
    if (line == "\r") {
      break;
    }
    //Serial.println(line);
  }
  // Serial.println("-------------");
}

PUYIOT June 2, 2020, 12:41pm #13

ติดตรงไหนครับ

Saharat_Imthong (Saharat Imthong) June 2, 2020, 2:51pm #14

ขอบคุณมากครับตอนนี้ใช้ได้แล้วคับ
โหลดตัว TridentTD/TridentTD_LineNotify มาก็ใช้ได้เลย
ขอบคุณมากครับ

1 Like

PUYIOT June 2, 2020, 2:57pm #15

ครับขอให้มีความสุขกับงานประดิษฐ์ครับ