มันขึ้นยังงี้ครับ Executable segment sizes:

คือผมทำโครงงาน ม.5ครับ แล้วพึ่งใช้แอพ arduino ได้ไม่นานเลยงงเลยครับ ตอนนี้ผมทำตามคลิปนี้ครับ แต่มันerror ลองหาวิธีดูแล้วยังทำไม่ได้เลยครับ

นี้คือโค๊ดที่เขียนครับ

void Line_Notify(String message) ;
#include <ESP8266WiFi.h>
// Config connect WiFi
#define WIFI_SSID "Athiphatss"
#define WIFI_PASSWORD "0953302018"
// Line config
#define LINE_TOKEN "dF55MrfeQz8W66ooieHPHnAdV7rUNlDAgquyURVioga"
#define SW D2
String message = "D KUB :)";
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;
  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("-------------");
}
Executable segment sizes:
ICACHE : 32768           - flash instruction cache 
IROM   : 349052          - code in flash         (default or ICACHE_FLASH_ATTR) 
IRAM   : 27769   / 32768 - code in IRAM          (IRAM_ATTR, ISRs...) 
DATA   : 1496  )         - initialized variables (global, static) in RAM/HEAP 
RODATA : 1636  ) / 81920 - constants             (global, static) in RAM/HEAP 
BSS    : 25696 )         - zeroed variables      (global, static) in RAM/HEAP 
Sketch uses 379953 bytes (36%) of program storage space. Maximum is 1044464 bytes.
Global variables use 28828 bytes (35%) of dynamic memory, leaving 53092 bytes for local variables. Maximum is 81920 bytes.

เลือก comport ถูกรึป่าว เห็นใช้ com1 อยู่

ตอนนี้ เปลี่ยนcom1 เป็นcom6แล้วครับ แต่มันก็ยังไม่ได้ครับ
.
.
.
Executable segment sizes:
ICACHE : 32768 - flash instruction cache
IROM : 349052 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 27769 / 32768 - code in IRAM (IRAM_ATTR, ISRs…)
DATA : 1496 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 1628 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 25688 ) - zeroed variables (global, static) in RAM/HEAP
Sketch uses 379945 bytes (36%) of program storage space. Maximum is 1044464 bytes.
Global variables use 28812 bytes (35%) of dynamic memory, leaving 53108 bytes for local variables. Maximum is 81920 bytes.


.
.

เปิดหน้า comport ใน driver manager มาดูหน่อย ว่ามันขึ้น ที่ comport ไหน

แคปค่าที่เลือกบน arduino ide มาดูหน่อยครับ น่าจะเลือกอะไรผิดไป

ผมว่าน่าจะยังไม่ได้ลง Driver ของผมลงแล้วจะขึ้นแบบนี้

ภาพ

ทำตามกระทู้นี้ เอาไปติดตั้ง

นี้ครับ

ทำตามนี้ดูก่อนครับ

ลองทำตามดูแล้วครับ มันเปลี่ยนจาก com6 ไป com7 แต่เวลาverify ก็ยังขึ้นเหมือนเดิมครับ



อันนี้ลงอัปโหลดก็ไม่ได้เหมือนกันครับ

เอาโค้ต error เต็มมาวางด้วยครับ ต่อแบบไหนถ่ายมาดูด้วย

นี้คือโค๊ดที่ขึ้้นตอนverifyครับ
.
Executable segment sizes:
ICACHE : 32768 - flash instruction cache
IROM : 349052 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 27769 / 32768 - code in IRAM (IRAM_ATTR, ISRs…)
DATA : 1496 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 1636 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 25696 ) - zeroed variables (global, static) in RAM/HEAP
Sketch uses 379953 bytes (36%) of program storage space. Maximum is 1044464 bytes.
Global variables use 28828 bytes (35%) of dynamic memory, leaving 53092 bytes for local variables. Maximum is 81920 bytes.
.

1 Likes

ผมว่ามันเคสเดียวกันนะ error เหมือนกันเลย

ผมก็งงเหมือนกันครับ ผมทำตามที่พี่แนะนำทุกอย่างเลย ทำไมมันไม่ได้ แต่ตอนนี้ผมจะอัปโหลดก็errorครับมันขึ้น

.
.

Executable segment sizes:
ICACHE : 32768           - flash instruction cache 
IROM   : 349052          - code in flash         (default or ICACHE_FLASH_ATTR) 
IRAM   : 27769   / 32768 - code in IRAM          (IRAM_ATTR, ISRs...) 
DATA   : 1496  )         - initialized variables (global, static) in RAM/HEAP 
RODATA : 1636  ) / 81920 - constants             (global, static) in RAM/HEAP 
BSS    : 25696 )         - zeroed variables      (global, static) in RAM/HEAP 
Sketch uses 379953 bytes (36%) of program storage space. Maximum is 1044464 bytes.
Global variables use 28828 bytes (35%) of dynamic memory, leaving 53092 bytes for local variables. Maximum is 81920 bytes.
esptool.py v3.0
Serial port COM7
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
  File "C:\Users\dell\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2/tools/upload.py", line 66, in <module>
    esptool.main(cmdline)
  File "C:/Users/dell/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 3552, in main
    esp.connect(args.before, args.connect_attempts)
  File "C:/Users/dell/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 529, in connect
    raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

มีสายใหม่ไหม ลองเปลียนดู ถ้าสายถูกมันจ่ายได้แค่ไฟ แต่ส่งดาต้า ไม่ได้

ขออนุญาติกลับมาตอบนะครับ พอดีหาวิธีแก้ต่างๆมาแล้วครับ
1.ประเด็นแรกที่ผมได้สอบถามไปข้างต้น เรื่อง …
Sketch uses 379953 bytes (36%) of program storage space. Maximum is 1044464 bytes.
Global variables use 28828 bytes (35%) of dynamic memory, leaving 53092 bytes for local variables. Maximum is 81920 bytes.
ซึ่งผมได้ศึกษามา มันก็น่าจะรันได้ปกติครับ ไม่มีปัญหา แต่ผมดันงงไปเอง
2.เรื่องการเปลี่ยน port ของผม ปัญหาคือ โปรแกรมของผมหาportไม่เจอ ผมเลยได้ไปหาข้อมูล สรุปว่าต้องเพิ่มบอร์ด esp 8266 ก่อนครับ ตามลิ้งนี้เลยครับ โหลดโปรแกรม Arduino IDE พร้อมติดตั้ง และเพิ่มบอร์ด esp 8266 :yin_yang: RiD Finity - YouTube
3.เรื่อง อัปโหลดโค๊ดลงบอร์ดไม่ได้ครับ เพราะ สายที่เขาแถมมากับตัวบอร์ดมันไม่ดีครับ ตามที่พี่Remy_Martin ได้บอกไปว่า “มีสายใหม่ไหม ลองเปลียนดู ถ้าสายถูกมันจ่ายได้แค่ไฟ แต่ส่งดาต้า ไม่ได้” ผมก็เลยลองเปลี่ยนสายดู เป็นสายแท้จากค่ายๆหนึ่งครับ ก็ลองอัปดูครับ สรุปว่า อัปโหลดได้ครับ
.
ต้องขอโทษพี่ Remy_Martin ที่ผมไม่ได้มาตอบกระทู้ด้วยครับ

1 Likes

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

1 Likes

ศึกษาจากตัวอย่างนี้ครับ

1 Likes

มาอัพเดตครับ
ตอนนี้สามารถแจ้งเตือนผ่านไลน์ได้ปกติแล้วครับ โดยผมได้ศึกษาจากคลิปๆหนึ่งในytมาครับ
1.อัพเดตไลบาลี่ให้ครบ
2. ดาวน์โหลดและติดตั้ง Libraries TridentTD_LineNotify
ได้ที่ GitHub - TridentTD/TridentTD_LineNotify: LINE Notify library for ESP8266 & ESP32
3.ผมได้ใส่โค๊ดเพิ่มไป1บรรทัดครับ โดยใส่โค๊ตบรรทัดนี้ครับ
client.setInsecure();//skip verification
.
.
.
โค๊ตโดยรวมก็จะประมาณนี้ครับ
#include <ArduinoWiFiServer.h>
#include <BearSSLHelpers.h>
#include <CertStoreBearSSL.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiAP.h>
#include <ESP8266WiFiGeneric.h>
#include <ESP8266WiFiGratuitous.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WiFiScan.h>
#include <ESP8266WiFiSTA.h>
#include <ESP8266WiFiType.h>
#include <WiFiClient.h>
#include <WiFiClientSecure.h>
#include <WiFiClientSecureBearSSL.h>
#include <WiFiServer.h>
#include <WiFiServerSecure.h>
#include <WiFiServerSecureBearSSL.h>
#include <WiFiUdp.h>

void Line_Notify1(String message1) ;
#include <ESP8266WiFi.h>
#include <DHT.h>
#define WIFI_SSID “xxxxxxxxxxx” /////////////*************แก้ ใส่ชื่อwifi
#define WIFI_PASSWORD “xxxxxxxxxxxxxx”////////**************แก้ ใส่รหัสwifi
#define LINE_TOKEN_PIR “xxxxxxxxxxxxxxx”////***************แก้ ใส่รหัส line notify
#define PirPin D6
#define DHTPIN D7
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
String message1 = “xxxxxxxxxx”;//****************แก้ ข้อความการแจ้งเตือน
bool beep_state = false;
bool send_state = false;
uint32_t ts, ts1, ts2;
void setup() {
Serial.begin(115200);
Serial.println();
pinMode(PirPin, INPUT);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
dht.begin();
Serial.println(“connecting”);
WiFi.mode(WIFI_STA);
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());
delay(10000);
Serial.println(“Pir Ready!!”);
read_sensor();
ts = ts1 = ts2 = millis();
}
void loop() {
ts = millis();
if (WiFi.status() == WL_CONNECTED) {
digitalWrite(LED_BUILTIN, LOW);
} else {
digitalWrite(LED_BUILTIN, HIGH);
}
if ((ts - ts2 >= 60000) && (WiFi.status() == WL_CONNECTED)) {
read_sensor();
}
if ((ts - ts1 >= 5000) && (beep_state == true)) {
beep_state = false;
}
if ((digitalRead(PirPin) == HIGH) && (beep_state == false) && (WiFi.status() == WL_CONNECTED)) {
while (digitalRead(PirPin) == HIGH) delay(100);
Serial.println(“Detect !”);
Line_Notify1(message1);
beep_state = true;
}
delay(10);
}
void Line_Notify1(String message) {
WiFiClientSecure client;
client.setInsecure();//skip verification
if (!client.connect(“notify-api.line.me”, 443)) {
Serial.println(“connection failed”);
delay(2000);
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_PIR) + “\r\n”;
req += “Cache-Control: no-cache\r\n”;
req += “User-Agent: ESP8266\r\n”;
req += “Content-Type: application/x-www-form-urlencoded\r\n”;
req += "Content-Length: " + String(String(“message=” + message1).length()) + “\r\n”;
req += “\r\n”;
req += “message=” + message1;
// Serial.println(req);
client.print(req);
delay(20);
while (client.connected()) {
String line = client.readStringUntil(’\n’);
if (line == “\r”) {
break;
}
}
}
void read_sensor() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println(“Failed to read from DHT sensor!”);
return;
}
Serial.print("Temperature: “);
Serial.print(t);
Serial.println(” *C ");
}
.
.
.
ตอนนี้ก็เสร็จแล้วครับ ไม่error แค่นี้ก็โครงงานผ่านฉลุยยยค้าบบบบ