|
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <TridentTD_LineNotify.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET LED_BUILTIN //4
Adafruit_SSD1306 display(OLED_RESET);
int dustPin=A0;
int dustVal=0;
int ledPower=D5;
int delayTime=280;
int delayTime2=40;
float offTime=9680;
float dustdisplay=0;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "IoT99"; //ชื่อ wifi
char pass[] = "iot0837286389"; //รหัสผ่าน wifi
#define LINE_TOKEN "0H04J4JwCSmYtXNXitrHsFNXiMk0yC8WBN23UqlyPM6" //Token ที่ได้จากการสมัคร ID Line
void setup(){
Serial.begin(9600);
pinMode(ledPower,OUTPUT);
pinMode(4, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// กำหนด Line Token
WiFi.begin(ssid, pass);
Serial.print("connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());
Serial.println(LINE.getVersion()); //อ่านค่า version ของ line
LINE.setToken(LINE_TOKEN);
// Clear the buffer.
display.clearDisplay();
display.display();
display.setTextSize(1);
display.setTextColor(WHITE);
}
void loop(){// ledPower is any digital pin on the arduino connected to Pin 3 on the sensor
digitalWrite(ledPower,LOW);// power on the LED
delayMicroseconds(delayTime);
dustVal=analogRead(dustPin);// read the dust value via pin 5 on the sensor
delayMicroseconds(delayTime2);
digitalWrite(ledPower,HIGH);// turn the LED off
delayMicroseconds(offTime);
display.clearDisplay();
display.setCursor(0,0);
display.println("Dust Capacity ug/m3)");
display.print(dustVal*0.5*1000/1024);
display.println(" ug/m3");
display.display();
delay(3000);
Serial.print(dustVal);
Serial.print(" ");
Serial.println(dustVal*0.5*1000/1024);
dustdisplay = dustVal*0.5*1000/1024;
if (dustdisplay>250) {
LINE.notify("ฝุ่นควันเกินค่ามาตรฐาน");
LINE.notify(String(dustdisplay)+"ug/m3");
} else {
}
}
|
|