โค้ต expected unqualified-id before '--' token แก้ยังไงครับ

void Line_Notify1(String message1) ;
#include <ESP8266WiFi.h>
#include <DHT.h>
#define WIFI_SSID "JONG" /////////////*************แก้
#define WIFI_PASSWORD "0810761818"////////**************แก้
#define LINE_TOKEN_PIR "Or6wlLP2MAKGly4lcxmbs2Jz3iIcrb01EaLbFrlKIfh"////***************แก้
#define PirPin D6
#define DHTPIN D7
#define DHTTYPE           DHT11
DHT dht(DHTPIN, DHTTYPE);
String message1 = "tessssssssssssssssssssssst";//****************แก้
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;
  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 ");
}
----------------------------------------------------------

Arduino: 1.8.11 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"

C:\Users\premp\Desktop\sketch_dec26a\sketch_dec26a.ino: In function 'void setup()':
sketch_dec26a:35:3: error: 'read_sensor' was not declared in this scope
   35 |   read_sensor();
      |   ^~~~~~~~~~~
C:\Users\premp\Desktop\sketch_dec26a\sketch_dec26a.ino: In function 'void loop()':
sketch_dec26a:46:5: error: 'read_sensor' was not declared in this scope
   46 |     read_sensor();
      |     ^~~~~~~~~~~
C:\Users\premp\Desktop\sketch_dec26a\sketch_dec26a.ino: In function 'void Line_Notify1(String)':
sketch_dec26a:86:20: error: a function-definition is not allowed here before '{' token
   86 | void read_sensor() {
      |                    ^
sketch_dec26a:97:57: error: expected primary-expression at end of input
   97 | ----------------------------------------------------------
      |                                                         ^~
sketch_dec26a:97:57: error: expected '}' at end of input
C:\Users\premp\Desktop\sketch_dec26a\sketch_dec26a.ino:59:35: note: to match this '{'
   59 | void Line_Notify1(String message) {
      |                                   ^
exit status 1
'read_sensor' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

ไม่มีฟังก์ชันนี้ในโค้ตครับ เช็คกับที่มาดีๆ ว่าเอามาครบหรือไม่

ขอบคุณครับได้แล้วครับ