IR Sensor is connected to NodeMCU
void setup() {
pinMode(D1,INPUT);
Serial.begin(9600);//baud rate
}
void loop() {
int s=digitalRead(D1);
Serial.println(s);
delay(500);
}
connections
Sensor OUT- Node MCU D1
Sensor VCC- Node MCU 3V3
Sensor GND- Node MCU GND
LDR connected to Arduino as analog sensor
void setup() {
Serial.begin(9600); // 9600 - baud rate
pinMode(A0,INPUT);
pinMode(D2,OUTPUT);
}
void loop() {
int s = analogRead(A0);
Serial.println(s);
if(s<150){
digitalWrite(D2,HIGH);
}
else{
digitalWrite(D2,LOW);
}
delay(1000);
}
Controlling LED from serial monitor
void setup() {
Serial.begin(9600); // 9600 - baud rate
pinMode(D2,OUTPUT);
}
void loop() {
if(Serial.available()){
char s = Serial.read();
Serial.println(s);
if(s=='2'){
digitalWrite(D2,HIGH);
Serial.println("LED IS ON");
}
if(s=='1'){
digitalWrite(D2,LOW);
Serial.println("LED IS OFF");
}
}
}
HTTP protocol
GET- For non sensitive data
Google search engine uses GET method when we search my name
POST- For sensitive data like password
Facebook site login page uses post method when we try to login
- there are 2 modes in WIFI- stationary mode, access point mode
- mobile is connected to mobile data through stationary mode
- Another device which is connected with mobile with hotspot in acesspoint mode
Scanning WiFi
This code is used to scan WiFi name & range
#include <ESP8266WiFi.h>
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Scanning Wifi");
int n = WiFi.scanNetworks();
if(n==0){
Serial.println("No Wifi Present");
}
else{
for(int i=0;i<n;i++){
Serial.print(WiFi.SSID(i)); //SSID means service set identifier. It is used for getting name
Serial.print("(");
Serial.print(WiFi.RSSI(i)); //It is used for range
Serial.println(")");
}
}
Serial.println("");
delay(5000);
}
Output on serial monitor:
Scanning Wifi
PVY2(-57)
Scanning Wifi
PVY2(-68)
Scanning Wifi
PVY2(-56)
Requesting access with WiFi
#include <ESP8266WiFi.h>
char* ssid = "PVYeswanth";
char* pass = "password";
WiFiServer server(80); //Port 80
void setup() {
Serial.begin(9600);
pinMode(D2,OUTPUT);
Serial.println("Connecting to Wifi");
WiFi.begin(ssid,pass);
while(WiFi.status()!=WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("Wifi Connected");
server.begin();
Serial.println(WiFi.localIP()); //IP address of the server
}
void loop() {
WiFiClient client = server.available();
if(!client){
return;
}
Serial.println("New Request Received");
String request = client.readStringUntil('\r');
Serial.println(request);
}
Output on serial monitor
............Wifi Connected
192.168.43.57
New Request Received
New Request Received
New Request Received
New Request Received
Controlling LED from web
#include <ESP8266WiFi.h>
char* ssid = "PVY2";
char* pass = "Haveli@246#";
WiFiServer server(80); //Port 80
void setup() {
Serial.begin(9600);
pinMode(D2,OUTPUT);
Serial.println("Connecting to Wifi");
WiFi.begin(ssid,pass);
while(WiFi.status()!=WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("Wifi Connected");
server.begin();
Serial.println(WiFi.localIP()); //IP address of the server
}
void loop() {
WiFiClient client = server.available();
if(!client){
return;
}
// Serial.println("New Request Received");
String request = client.readStringUntil('\r');
// Serial.println(request);
if (request.indexOf("/on")!= -1){
digitalWrite(D2,HIGH);
Serial.println("LED ON");
}
else if (request.indexOf("/off")!= -1){
digitalWrite(D2,LOW);
Serial.println("LED OFF");
}
client.println("<html><title>Local Web Server</title><center>");
client.println("<h1>Local Web Server LED Control</h1>");
client.println("<a href='/on'><button>LED ON</button></a>");
client.println("<a href='/off'><button>LED OFF</button></a>");
client.println("</center></html>");
}
Controlling LED using BLYNK app
#define BLYNK_PRINT Serial
#include<BlynkSimpleEsp8266.h>
char auth[]="MsNAQRGjqpb_PAQB97JmEV3B1QM-ZJ8-";
char ssid[]="PVY2";
char pass[]="Haveli@246#";
void setup()
{
Serial.begin(9600);
Blynk.begin(auth,ssid,pass);
}
void loop()
{
Blynk.run();
}
For IFTTT, Blynk server URL
URL- http://188.166.206.43/MsNAQRGjqpb_PAQB97JmEV3B1QM-ZJ8-/update/D4
DHT11 sensor data on serial monitor
#include<DHT.h>
DHT dht(D2,DHT11);
float hum,temp;
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
hum=dht.readHumidity();
temp=dht.readTemperature();
Serial.print("Humidity-");
Serial.print(hum);
Serial.print("%");
Serial.print(",Temperature-");
Serial.print(temp);
Serial.println("*C");
delay(10000);
}
DHT11 sensor data on Blynk
#include<DHT.h>
DHT dht(D2,DHT11);
#define BLYNK_PRINT Serial
#include<BlynkSimpleEsp8266.h>
char auth[]="MsNAQRGjqpb_PAQB97JmEV3B1QM-ZJ8-";
char ssid[]="PVY2";
char pass[]="Haveli@246#";
float hum,temp;
BlynkTimer timer;
void setup() {
Serial.begin(9600);
dht.begin();
Blynk.begin(auth,ssid,pass);
timer.setInterval(10000L,sendData);
}
void sendData()
{
hum=dht.readHumidity();
temp=dht.readTemperature();
Serial.print("Humidity-");
Serial.print(hum);
Serial.print("%");
Serial.print(",Temperature-");
Serial.print(temp);
Serial.println("*C");
Blynk.virtualWrite(V0,hum);
Blynk.virtualWrite(V1,temp);
}
void loop()
{
Blynk.run();
timer.run();
}