ESP8266
http://188.166.206.43/SVqHuimxomfHge_1pRhbHvvqHo_yCRHR/update/D2
*********************************************************
LAB 4.3 MQ-2
**********************************************************
int ledPin = D2;
int analogPin = A0; //ประกาศตัวแปร ให้ analogPin
int val = 0;
void setup() {
pinMode(ledPin, OUTPUT); // sets the pin as output
Serial.begin(9600);
}
void loop() {
val = analogRead(analogPin); //อ่านค่าสัญญาณ analog
Serial.print("val = "); // พิมพ์ข้อมความส่งเข้าคอมพิวเตอร์ "val = "
Serial.println(val); // พิมพ์ค่าของตัวแปร val
if (val > 500) { // สามารถกำหนดปรับค่าได้ตามสถานที่ต่างๆ
digitalWrite(ledPin, HIGH); // สั่งให้ LED ติดสว่าง
}
else {
digitalWrite(ledPin, LOW); // สั่งให้ LED ดับ
}
delay(100);
}
********************************************************
LAB_5
************************************************************
#define trigPin D7 // Trigger Pin
#define echoPin D8 // Echo Pin
#define LEDPin D1 // Onboard LED
int maximumRange = 200; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Duration used to calculate distance
void setup() {
Serial.begin (115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//Calculate the distance (in cm) based on the speed of sound.
distance = duration / 58.2;
if (distance >= maximumRange || distance <= minimumRange) {
Serial.println("-1"); //เมื่ออยู่นอกระยะให้ใช้ Print -1
digitalWrite(LEDPin, HIGH);
}
else {
Serial.println(distance); //แสดงค่าระยะทาง
digitalWrite(LEDPin, LOW);
}
delay(100);
}
//***********************************************************
LAB_9.2_
************************************************************
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
/***********************************/
#include "DHT.h"
#define DHTPIN D4 // what digital pin the DHT22 is conected to
#define DHTTYPE DHT22 // there are multiple kinds of DHT sensors
//#define DHTTYPE DHT11 // there are multiple kinds of DHT sensors
DHT dht(DHTPIN, DHTTYPE);
/**************************************/
const int sensor_pin = A0; /* Connect Soil moisture analog sensor pin to A0 of NodeMCU */
int Relay1 = D1; //A0
int Relay2 = D2; //Tem
char auth[] = "SVqHuimxomfHge_1pRhbHvvqHo_yCRHR";
bool MODE1 = 0;
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, "TP-LINK_E1BB", "14244186");
Serial.println(F("DHTxx test!"));
dht.begin();
pinMode(Relay1,OUTPUT);
pinMode(Relay2,OUTPUT);
}
void MODE_Temperature_MANUAL()
{
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
// timeSinceLastRead = 0;
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity:");
Serial.print(h);
Serial.print("%\t");
Serial.print("Temperature:");
Serial.print(t);
Serial.print("*C");
Serial.print(f);
Serial.print("*F\t");
Serial.print("Heat index:");
Serial.print(hic);
Serial.print("*C");
Serial.print(hif);
Serial.println("*F");
Blynk.virtualWrite(14,t);
Serial.println("Temperature_MANUAL");
}
void MODE_Temperature_Auto()
{
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
// timeSinceLastRead = 0;
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity:");
Serial.print(h);
Serial.print("%\t");
Serial.print("Temperature:");
Serial.print(t);
Serial.print("*C");
Serial.print(f);
Serial.print("*F\t");
Serial.print("Heat index:");
Serial.print(hic);
Serial.print("*C");
Serial.print(hif);
Serial.println("*F");
if(t <= 34) {Serial.println("Relay2 OFF"); digitalWrite(Relay2,HIGH);}
if(t >= 35 && t <= 100){Serial.println("Relay2 ON"); digitalWrite(Relay2,LOW);}
Serial.println("Temperature_Auto");
Blynk.virtualWrite(14,t);
}
void MODE_Soil_Moisture_Auto()
{
float moisture_percentage;
moisture_percentage = ( 100.00 - ( (analogRead(sensor_pin)/1023.00) * 100.00 ) );
Serial.print("Soil Moisture(in Percentage) = ");
Serial.print(moisture_percentage);
Serial.println("%");
if(moisture_percentage <=10 ){digitalWrite(Relay1,LOW);Serial.println("Relay1_ON");}
if(moisture_percentage >=15 ){digitalWrite(Relay1,HIGH);Serial.println("Relay1_OFF");}
delay(1000);
Serial.println("Soil_Moisture_Auto");
Blynk.virtualWrite(13, moisture_percentage);
}
void MODE_Soil_Moisture_MANUAL()
{
float moisture_percentage;
moisture_percentage = ( 100.00 - ( (analogRead(sensor_pin)/1023.00) * 100.00 ) );
Serial.print("Soil Moisture(in Percentage) = ");
Serial.print(moisture_percentage);
Serial.println("%");
delay(1000);
Blynk.virtualWrite(13, moisture_percentage);
Serial.println("Soil_Moisture_MANUAL");
}
BLYNK_WRITE(V31)
{
if(param.asInt() == 0){Serial.println("MODE_M1");MODE1=0;delay(1000); }
if(param.asInt() == 1){Serial.println("MODE_A1");MODE1=1;delay(1000); }
}
void loop()
{
Blynk.run();
if (MODE1 == 0)
{
Serial.println("MODE_MANUAL");
MODE_Soil_Moisture_MANUAL();
MODE_Temperature_MANUAL();
}
if(MODE1 == 1)
{
Serial.println("MODE_AUTO");
MODE_Soil_Moisture_Auto();
MODE_Temperature_Auto();
}
}
************************************************************
LAB_9_FUNC_Blynk_AtoD
************************************************************
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
const int sensor_pin = A0; /* Connect Soil moisture analog sensor pin to A0 of NodeMCU */
int Relay1 = D1;
char auth[] = "SVqHuimxomfHge_1pRhbHvvqHo_yCRHR";
bool MODE1 = 0;
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, "TP-LINK_E1BB", "14244186");
pinMode(Relay1,OUTPUT);
}
void MODE_Soil_Moisture_Auto()
{
float moisture_percentage;
moisture_percentage = ( 100.00 - ( (analogRead(sensor_pin)/1023.00) * 100.00 ) );
Serial.print("Soil Moisture(in Percentage) = ");
Serial.print(moisture_percentage);
Serial.println("%");
if(moisture_percentage <=10 ){digitalWrite(Relay1,LOW);Serial.println("Relay1_ON");}
if(moisture_percentage >=15 ){digitalWrite(Relay1,HIGH);Serial.println("Relay1_OFF");}
delay(1000);
Blynk.virtualWrite(13, moisture_percentage);
}
void MODE_Soil_Moisture_MANUAL()
{
float moisture_percentage;
moisture_percentage = ( 100.00 - ( (analogRead(sensor_pin)/1023.00) * 100.00 ) );
Serial.print("Soil Moisture(in Percentage) = ");
Serial.print(moisture_percentage);
Serial.println("%");
delay(1000);
Blynk.virtualWrite(13, moisture_percentage);
}
BLYNK_WRITE(V31)
{
if(param.asInt() == 0){Serial.println("MODE_M1");MODE1=0;delay(1000); }
if(param.asInt() == 1){Serial.println("MODE_A1");MODE1=1;delay(1000); }
}
void loop()
{
Blynk.run();
if (MODE1 == 0)
{
Serial.println("MODE_MANUAL");
MODE_Soil_Moisture_MANUAL();
}
if(MODE1 == 1)
{
Serial.println("MODE_AUTO");
MODE_Soil_Moisture_Auto();
}
}
************************************************************
LAB8_Blynk_AtoD
************************************************************
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
const int sensor_pin = A0; /* Connect Soil moisture analog sensor pin to A0 of NodeMCU */
int Relay1 = D1;
char auth[] = "SVqHuimxomfHge_1pRhbHvvqHo_yCRHR";
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, "TP-LINK_E1BB", "14244186");
pinMode(Relay1,OUTPUT);
}
void loop()
{
Blynk.run();
float moisture_percentage;
moisture_percentage = ( 100.00 - ( (analogRead(sensor_pin)/1023.00) * 100.00 ) );
Serial.print("Soil Moisture(in Percentage) = ");
Serial.print(moisture_percentage);
Serial.println("%");
if(moisture_percentage <=10 ){digitalWrite(Relay1,LOW);}
if(moisture_percentage >=15 ){digitalWrite(Relay1,HIGH);}
delay(1000);
Blynk.virtualWrite(13, moisture_percentage);
}
************************************************************
LAB4
************************************************************
const int sensor_pin = A0; /* Connect Soil moisture analog sensor pin to A0 of NodeMCU */
void setup() {
Serial.begin(9600); /* Define baud rate for serial communication */
}
void loop() {
float moisture_percentage;
moisture_percentage = ( 100.00 - ( (analogRead(sensor_pin)/1023.00) * 100.00 ) );
Serial.print("Soil Moisture(in Percentage) = ");
Serial.print(moisture_percentage);
Serial.println("%");
delay(1000);
}
************************************************************
LAB4.1
************************************************************
const int sensor_pin = A0; /* Connect Soil moisture analog sensor pin to A0 of NodeMCU */
int Relay1 = D1;
void setup() {
Serial.begin(9600); /* Define baud rate for serial communication */
pinMode(Relay1,OUTPUT);
}
void loop() {
float moisture_percentage;
moisture_percentage = ( 100.00 - ( (analogRead(sensor_pin)/1023.00) * 100.00 ) );
Serial.print("Soil Moisture(in Percentage) = ");
Serial.print(moisture_percentage);
Serial.println("%");
if(moisture_percentage <=10 ){digitalWrite(Relay1,LOW);}
if(moisture_percentage >=15 ){digitalWrite(Relay1,HIGH);}
delay(1000);
}
************************************************************
1.
https://notify-bot.line.me/my/
********************************************************
2. ดาวน์โหลด library จาก https://github.com/TridentTD/TridentTD_LineNotify
*********************************************************
3. code
**********************************************************
#include <TridentTD_LineNotify.h>
#define SSID "TP-LINK_E1BB"
#define PASSWORD "14244186"
#define LINE_TOKEN "Y68UTsZFNcxEKph1g5ic3bG6PmqUQLOYTeEyztv0p59"
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.setToken(LINE_TOKEN);
}
void loop() {
delay(5000);
LINE.notify("สวัสดีชาวโลก");
}
************************************************************
LAB_7.2
****************************
#include <TridentTD_LineNotify.h>
#define SSID "TP-LINK_E1BB"
#define PASSWORD "14244186"
#define LINE_TOKEN "Y68UTsZFNcxEKph1g5ic3bG6PmqUQLOYTeEyztv0p59"
const int buttonPin = D0;
int buttonState;
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.setToken(LINE_TOKEN);
pinMode(buttonPin, INPUT);
}
void loop() {
delay(100);
buttonState = digitalRead(buttonPin);
if (buttonState == LOW){ LINE.notify("มีคนประตูบ้าน");}
}
******************************************************
lab 3.1
********************************************
#include "DHT.h"
#define DHTPIN D4 // what digital pin the DHT22 is conected to
#define DHTTYPE DHT22 // there are multiple kinds of DHT sensors
//#define DHTTYPE DHT11 // there are multiple kinds of DHT sensors
DHT dht(DHTPIN, DHTTYPE);
int Relay1 = D2;
void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
pinMode(Relay1,OUTPUT);
}
void loop()
{
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
// timeSinceLastRead = 0;
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity:");
Serial.print(h);
Serial.print("%\t");
Serial.print("Temperature:");
Serial.print(t);
Serial.print("*C");
Serial.print(f);
Serial.print("*F\t");
Serial.print("Heat index:");
Serial.print(hic);
Serial.print("*C");
Serial.print(hif);
Serial.println("*F");
if(t <= 34) {Serial.println("Relay2 OFF"); digitalWrite(Relay1,HIGH);}
if(t >= 35 && t <= 100){Serial.println("Relay2 ON"); digitalWrite(Relay1,LOW);}
// timeSinceLastRead = 0;
}
************************************************************
7.3*********************************************
#include <TridentTD_LineNotify.h>
#include "DHT.h"
#define SSID "TP-LINK_E1BB"
#define PASSWORD "14244186"
#define LINE_TOKEN "Y68UTsZFNcxEKph1g5ic3bG6PmqUQLOYTeEyztv0p59"
/*******************************************/
#define DHTPIN D4 // what digital pin the DHT22 is conected to
#define DHTTYPE DHT22 // there are multiple kinds of DHT sensors
//#define DHTTYPE DHT11 // there are multiple kinds of DHT sensors
DHT dht(DHTPIN, DHTTYPE);
int Relay1 = D2;
void setup() {
Serial.begin(9600);
/************************************/
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.setToken(LINE_TOKEN);
/***************************************/
Serial.println(F("DHTxx test!"));
dht.begin();
pinMode(Relay1,OUTPUT);
}
void loop()
{
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
// timeSinceLastRead = 0;
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity:");
Serial.print(h);
Serial.print("%\t");
Serial.print("Temperature:");
Serial.print(t);
Serial.print("*C");
Serial.print(f);
Serial.print("*F\t");
Serial.print("Heat index:");
Serial.print(hic);
Serial.print("*C");
Serial.print(hif);
Serial.println("*F");
if(t <= 34) {Serial.println("Relay1 OFF"); digitalWrite(Relay1,HIGH);}
if(t >= 35 && t <= 100){Serial.println("Relay1 ON"); digitalWrite(Relay1,LOW);}
if(t >= 37 && t <= 100){Serial.println("on fire"); LINE.notify("เกิดเพลิงไหม้");
delay(2000);
}
}
*********************************************************