สอบถามครับปกติการ connect wifi จะใช้อีก library ตัวนึง เเต่พอมาใช้แบบนี้เเล้วใช้ line notify ไมไ่ด้เพราะอไรครับ
#define SSID
#define PASSWORD
void setup(){
WiFi.begin(SSID, PASSWORD);
}
โค้ดบนคตืแบบปกติ โค้ดล่างคือที่จะใช้ครับ
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
ESP8266WiFiMulti WiFiMulti;
void setup(){
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("SSID", "PASSWORD");
}
void loop(){
if ((WiFiMulti.run() == WL_CONNECTED)) {
WiFiClient client;
HTTPClient http;
}
Remy_Martin
(Permpol Thanapunnamas)
2
Multi WiFi ไม่ต่างจาก WiFi ปกติ ครับ ที่เห็นต่างตอนนี้คือ WiFiClient client; กับ HTTPClient http; ไปไว้ในนั้นต่างหากละครับ ดูตามตัวอย่างที่ผมแนบมา
ถ้าจะให้วิเคราห์จริงๆ ต้องแนบโค้ต Before และ After ที่บอกว่าไม่ได้มาด้วยครับ
นี่ครับ คือไม่มีการแจ้งเตือไลน์เลยผมคิดว่าน่าจะเพราะใช้ WIFImulti หรือลืมอะไรสักอย่าง
#include <TridentTD_LineNotify.h>
#define LINE_TOKEN "7RTkh0GbDU4UCXMmJVjZNJzRWCWtTLwNenozjr6jwWv"
/**
BasicHTTPClient.ino
Created on: 24.05.2015
*/
#include "SimpleTimer.h"
#include <SPI.h>
#include <TFT_eSPI.h> // Hardware-specific library
TFT_eSPI tft = TFT_eSPI(); // Invoke custom library
#define TFT_GREY 0x5AEB // New colour
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
ESP8266WiFiMulti WiFiMulti;
int buttonState_red = 0;
int buttonState_green = 0;
void setup() {
pinMode(2, INPUT_PULLUP); pinMode(1, INPUT_PULLUP);
tft.init();
tft.setRotation(2);
Serial.begin(115200);
// Serial.setDebugOutput(true);
Serial.println();
Serial.println();
Serial.println();
for (uint8_t t = 4; t > 0; t--) {
Serial.printf("[SETUP] WAIT %d...\n", t);
Serial.flush();
delay(1000);
}
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("PCS-Office", "qawsedrf");
timer.setInterval(360000, resettft); // เคลียร์หน้าจอ tft ทุกๆ หนึ่งนาที
LINE.setToken(LINE_TOKEN);
}
void loop() {
// wait for WiFi connection
if ((WiFiMulti.run() == WL_CONNECTED)) {
WiFiClient client;
HTTPClient http;
Serial.print("[HTTP] begin...\n");
if (http.begin(client, "http://ebooking.cc.pcs-plp.com/borrow/readesp.php")) { // HTTP
Serial.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
String payload = http.getString();
Serial.println(payload);
tft.setCursor(2, 0);
tft.setTextColor(TFT_WHITE,TFT_BLACK); tft.setTextSize(4);
tft.println("MEETING :: PLANT ROOM PCS ");
tft.setTextColor(TFT_RED,TFT_BLACK); tft.setTextFont(2);
tft.print("Nex Que :: ");
tft.print(payload);
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
} else {
Serial.printf("[HTTP} Unable to connect\n");
}
}
//delay(10000);
buttonState_red = digitalRead(2);
buttonState_green = digitalRead(1);
if (buttonState_red == HIGH) {
userwant();
}
else if (buttonState_green == HIGH) {
usercancel();
}
}
}
void userwant(){
LINE.notify("Plant Meeting Room 'Need Help' :");
LINE.notifySticker(11538,51626514);
}
void usercancel(){
LINE.notify("Uer Cancel");
LINE.notifySticker(11537,52002771);
}
void resettft(){
// กำลังหาโค้ด clear หน้าจอเพื่อกันไม่ให้หน้าจอค้างค่าเดิม
}
อัพเดทครับได้เเล้ว ไม่ทราบว่าเพราะอะไร อยู่ดีๆก็ได้เฉยเลย