วันศุกร์ที่ 19 กุมภาพันธ์ พ.ศ. 2564

โค้ด ค่ายนักประดิษฐ์ IOT

- เขียนคำสั่ง LED

เซนเซอร์ตรวจจับสิ่งแวดล้อมและแจ้งเตือนเข้ามือถือ

 line notify

URL Decoder

โค้ด
void Line_Notify1(String message1) ; #include <ESP8266WiFi.h> #define WIFI_SSID "Oppo F9" /////////////*************แก้ #define WIFI_PASSWORD "guy12345"////////**************แก้ #define LINE_TOKEN_PIR "7UNkJqhlAP7PxoWCQLW1qrnZZSRhVm9FpimZAcuPgjK"////***************แก้ #define PirPin D6 String message1 = "%E0%B9%84%E0%B8%94%E0%B9%89%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B8%88%E0%B8%94%E0%B8%AB%E0%B8%A1%E0%B8%B2%E0%B8%A2";//****************แก้ 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); 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!!"); ts = ts1 = ts2 = millis(); } void loop() { ts = millis(); if (WiFi.status() == WL_CONNECTED) { digitalWrite(LED_BUILTIN, LOW); } else { digitalWrite(LED_BUILTIN, HIGH); } 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; } } }

ควบคุมมอเตอร์และหลอดไฟ ผ่านมือถือ

#define BLYNK_PRINT Serial 

#include <ESP8266WiFi.h> 

#include <BlynkSimpleEsp8266.h> 

#define ON LOW

#define OFF HIGH

char auth[] = "M-Ee2Vubx7Pf5DbN8_5SFvSAjkSCNB_0"; 

char ssid[] = "";

char pass[] = "";


void setup()

{


Serial.begin(9600); 

Blynk.begin(auth, "Audom","audomidea2019"); 


}


void loop()

{

Blynk.run();

}

ควบคุมมอเตอร์/เซอโว และ หลอดไฟ ด้วย Butthon

 const int buttonPin = 2;   

int buttonState = 0;       


void setup() {

  pinMode(ledPin, OUTPUT);

}


void loop() {

  buttonState = digitalRead(buttonPin);


  if (buttonState == HIGH) {

    // turn LED on:

    digitalWrite(ledPin, HIGH);

  } else {

    // turn LED off:

    digitalWrite(ledPin, LOW);

  }

}

เขียนคำสั่ง SERVO

 #include <Servo.h> 

Servo myservo;


void setup() {

  

 myservo.attach(A0); 

}


void loop() {


 myservo.write(0); 

 delay(1000); 

 myservo.write(90); 

 delay(1000); 

  

}

เขียนคำสั่ง LED

   const int LED =  3;        


void setup() {

 

  pinMode(LED, OUTPUT);

}


void loop() {


    digitalWrite(LED, HIGH);


  

}

วันศุกร์ที่ 5 กุมภาพันธ์ พ.ศ. 2564

การส่งตำแหน่ง GPS ของอุปกรณ์เข้ามือถือ

 

อุกรณ์

1. NodeMcu  ESP8266

2.GPS Module GY-NEO6MV2 Ublox 

---------------------------------------------------------------------------

ไลบารี่อุปกรณ์ 

โค้ด 

 #include "TinyGPS++.h"

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

#define BLYNK_PRINT Serial


char auth[] = "M-Ee2Vubx7Pf5DbN8_5SFvSAjkSCNB_0";

char ssid[] = "MR DOM";

char pass[] = "audomidea2019";

BlynkTimer timer;

TinyGPSPlus gps;

void setup()

{

Serial.begin(9600);

Serial.println("GPS Start");

Blynk.begin(auth, ssid, pass);

timer.setInterval(1000L, sendGPS);


}

String lat_ ;

String lon_ ;

int speed_ = 0 ;

int Index1 = 0;


void sendGPS()

{

  Blynk.virtualWrite(V1, Index1, lat_, lon_, "value");

  Blynk.virtualWrite(V2, speed_);

}


void loop()

{

  Blynk.run();  

  timer.run();  

  

while(Serial.available())

{

gps.encode(Serial.read());

}

if(gps.location.isUpdated())

{

  

lat_ = String(gps.location.lat(),6);

lon_ = String(gps.location.lng(),6);

speed_ =  gps.speed.mph() ;


Serial.println("Latitude:");

Serial.println(lat_);

Serial.println("Longitude:");

Serial.println(gps.location.lng(), 6);

Serial.println("Speed MPH:");

Serial.println(gps.speed.mph());

Serial.println("");

}

}

โค้ด

 #include "TinyGPS++.h"

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

#define BLYNK_PRINT Serial


char auth[] = "M-Ee2Vubx7Pf5DbN8_5SFvSAjkSCNB_0";

char ssid[] = "MR DOM";

char pass[] = "audomidea2019";

BlynkTimer timer;

TinyGPSPlus gps;

void setup()

{

Serial.begin(9600);

Serial.println("GPS Start");

Blynk.begin(auth, ssid, pass);

timer.setInterval(1000L, sendGPS);


}

String lat_ ;

String lon_ ;

int speed_ = 0 ;

int Index1 = 0;


void sendGPS()

{

  Blynk.virtualWrite(V1, Index1, lat_, lon_, "value");

  Blynk.virtualWrite(V2, speed_);

}


void loop()

{

  Blynk.run();  

  timer.run();  

  

while(Serial.available())

{

gps.encode(Serial.read());

}

if(gps.location.isUpdated())

{

  

lat_ = String(gps.location.lat(),6);

lon_ = String(gps.location.lng(),6);

speed_ =  gps.speed.mph() ;


Serial.println("Latitude:");

Serial.println(lat_);

Serial.println("Longitude:");

Serial.println(gps.location.lng(), 6);

Serial.println("Speed MPH:");

Serial.println(gps.speed.mph());

Serial.println("");

}

}

การวัดอุณหภูมิและความชื้น

อุปกรณ์

1.NodeMcu V3 CH340 Lua WIFI ESP8266-12E

2.DHT11 เซ็นเซอร์วัดอุณหภูมิและความชื้น พร้อม PCB แถมสายไฟ

>>โหลดไลบารี่ของอุปกรณ์ <<

โค้ด

#include "DHT.h"

DHT dht;

void setup()

{

  Serial.begin(9600);

  Serial.println();

  Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)");


  dht.setup(2);

}


void loop()

{

  delay(dht.getMinimumSamplingPeriod());

  float humidity = dht.getHumidity(); 

  float temperature = dht.getTemperature(); 

  Serial.print(dht.getStatusString());

  Serial.print("\t");

  Serial.print(humidity, 1);

  Serial.print("\t\t");

  Serial.print(temperature, 1);

  Serial.print("\t\t");

  Serial.println(dht.toFahrenheit(temperature), 1);

  delay(1000);

}

-----------------------------------------------------------------------------

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

#include "DHT.h"

DHT dht;


char auth[] = "M-Ee2Vubx7Pf5DbN8_5SFvSAjkSCNB_0";

char ssid[] = "MR DOM";

char pass[] = "audomidea2019";


void setup()

{

  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);

  Serial.println();

  Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)");

  dht.setup(D4); 

}


void loop()

{

  delay(dht.getMinimumSamplingPeriod());

  float humidity = dht.getHumidity(); // ดึงค่าความชื้น

  float temperature = dht.getTemperature(); // ดึงค่าอุณหภูมิ

  Serial.print(dht.getStatusString());

  Serial.print("\t");

  Serial.print(humidity, 1);

  Serial.print("\t\t");

  Serial.print(temperature, 1);

  Serial.print("\t\t");

  Serial.println(dht.toFahrenheit(temperature), 1);

  Blynk.run();

  delay(100);

  Blynk.virtualWrite(V0, temperature);

  Blynk.virtualWrite(V1, humidity);


}

ใช้งาน NodeMCU ESP8266 วัดความเข้มแสงด้วยเซ็นเซอร์ GY-302 BH1750FVI

อุปกรณ์

1. NodeMcu V3 CH340 Lua WIFI ESP8266-12E

2.เซ็นเซอร์ วัดความเข้มแสง Ambient Light Sensor Module (BH1750FVI)

วิธีต่อ

  • Vin -> Vcc
  • GND -> GND
  • SDA -> D2
  • SCL -> D1


 โค้ด

#include <BH1750FVI.h>
2
BH1750FVI LightSensor(BH1750FVI::k_DevModeContLowRes);
3
void setup()
4
{
5
Serial.begin(9600);
6
LightSensor.begin();
7
}
8
9
void loop()
10
{
11
uint16_t lux = LightSensor.GetLightIntensity();
12
Serial.print("Light: ");
13
Serial.print(lux);
14
Serial.println(" lux");
15
delay(250);
16
}

วันอังคารที่ 2 กุมภาพันธ์ พ.ศ. 2564

การติดตั้งโปรแกรม Arudino IDE + เพิ่ม ESP8266


1.ดาวน์โหลด ArduinoIDE + เพิ่ม ESP8266 

 https://www.arduino.cc/en/Main/OldSoftwareReleases#previous 

2.เลือกระบบปฏิบัติการของเครื่องคอมพิวเตอร์ที่ท่านจะใช้ในการเขียนโปรแกรม Arduino



3.กด JUST DOWNLOAD 



4.ดับเบิ้ลคลิกที่ไฟล์ arduino.exe เพื่อเปิดโปรแกรม Arduino IDE


5.เปิดโปรแกรมขึ้นมา ในหน้าต่างโปรแกรม Arduino IDE คลิกไปที่เมนู File -> Preferences เพื่อติดตั้งบอร์ด NodeMCU/ESP8266 แบบออนไลน์

6.เพิ่ม http://arduino.esp8266.com/stable/package_esp8266com_index.json ลงในช่อง Additional Boards Manager URLs ดังภาพ


7.คลิกไปที่เมนู Tools -> Board -> Board Manager


8.พิมพ์คำว่า ESP8266 ลงในช่อง และเริ่มต้นติดตั้งดังภาพ 

>>เสียบบอร์ด NodeMCU/ESP8266 เข้ากับคอมพิวเตอร์และตรวจสอบพอตเชื่อมต่อ<<

 >>โหลดไดร์เวอร์พอต <<

>> ทดสอบด้วยการเขียนโค้ดให้หลอดไฟ LED บนบอร์ด NodeMCU ESP8266 กระพริบ <<

โค้ด

 -------------------------------------------------------------------------------------------------------------------------

-

>> การส่งตำแหน่ง GPS ของอุปกรณ์เข้ามือถือ <<

>>ใช้งาน NodeMCU ESP8266 วัดความเข้มแสง<<