More Related Content
Similar to code-nodemcu.docx (20)
code-nodemcu.docx
- 1. #include <ArduinoJson.h>
#include <SoftwareSerial.h>
#define BLYNK_TEMPLATE_ID "TMPLCKaGjlz5"
#define BLYNK_DEVICE_NAME "IOT"
#define BLYNK_FIRMWARE_VERSION "0.1.0"
#define BLYNK_PRINT Serial
//#define BLYNK_DEBUG
#define APP_DEBUG
#include "BlynkEdgent.h"
const byte Rx= 12;
const byte Tx =14;
SoftwareSerial myserial=SoftwareSerial(Rx,Tx); //Rx-Tx
void sendata(String(thamso1),String(thamso2),String(thamso3));
void control_pump(void);
void read_esp(void);
void xulyjson(String Data);
void send_lenh(void);
String nhiet_do_nhan="";
String do_am_nhan="";
String cd_sang_nhan="";
String do_am_dat_nhan="";
String DataUart="";
String DataSend= "";
String Datapump="";
String Dataled= "";
String Dataquat= "";
int trang_thai_bom;
int trang_thai_led;
int trang_thai_quat;
int led;
int pump1;
int quat;
- 2. int nhiet_do_set;
int do_am_dat_set;
long t = 0;
int che_do;
/////////////////////////////////////////
void setup()
{
myserial.begin(9600);// 8-8,7-9
Serial.begin(9600);
delay(100);
BlynkEdgent.begin();
t= millis();
Blynk.syncAll();
BLYNK_CONNECTED ();
}
BLYNK_WRITE(V4)
{
pump1 = param.asInt();
if(che_do==0)
{
if(pump1==1 && trang_thai_bom==0)
{
myserial.println("{"chedo":"0"}");
Serial.println("{"chedo":"0"}");
myserial.println("{"pump":"1"}");
Serial.println("{"pump":"1"}");
myserial.flush();
delay(100);
}
else if(pump1==0 && trang_thai_bom==1)
{
- 5. Serial.println("{"quat":"1"}");
myserial.flush();
delay(100);
}
else if(quat==0 && trang_thai_quat==1)
{
myserial.println("{"chedo":"0"}");
Serial.println("{"chedo":"0"}");
myserial.println("{"quat":"0"}");
Serial.println("{"quat":"0"}");
myserial.flush();
delay(100);
}
}
}
//////////////////////////////////////////
void loop() {
read_esp();
}
///////////////////////////////////////////////////
void read_esp(void)
{
// kiểm tra cổng RX có tín hiệu hay ko
while (myserial.available())
{
//đọc
char InChar = (char)myserial.read();
- 6. if(InChar !='n')
{
DataUart += InChar;
}
else
{
// xử lí Json
Serial.println(DataUart);
xulyjson(String(DataUart));
DataUart = "";
}
}
}
//////////////////////////////////////
void xulyjson(String Data)
{
const size_t capacity = JSON_OBJECT_SIZE(2) + 256;
DynamicJsonDocument JSON(capacity);
DeserializationError error = deserializeJson( JSON, Data);
if(error)
{
Serial.println("json loi");
return;
}
else
{
nhiet_do_nhan= (String)JSON["b"];
do_am_nhan= (String)JSON["a"];
cd_sang_nhan=(String)JSON["d"];
do_am_dat_nhan=(String)JSON["c"];
Datapump= (String)JSON["e"];
- 7. Dataled= (String)JSON["f"];
Dataquat= (String)JSON["g"];
BlynkEdgent.run();
float vau3,vau1,vau2,vau0;
vau3=cd_sang_nhan.toFloat();
vau1=nhiet_do_nhan.toFloat();
vau2= do_am_dat_nhan.toFloat();
vau0=do_am_nhan.toFloat();
trang_thai_bom= Datapump.toInt();
trang_thai_led= Dataled.toInt();
trang_thai_quat= Dataquat.toInt();
Blynk.virtualWrite(V4,trang_thai_bom);
Blynk.virtualWrite(V9,trang_thai_quat);
Blynk.virtualWrite(V6,trang_thai_led);
Blynk.virtualWrite(V3,vau3);
Blynk.virtualWrite(V2,vau2);
Blynk.virtualWrite(V1,vau1);
Blynk.virtualWrite(V0,vau0);
JSON.clear();
}
}
/////////////////////////////////////
void sendata(String(thamso1),String(thamso2),String(thamso3))
{
//
myserial.print("{"chedo":"");
myserial.print(thamso1);
myserial.print("", "T":"");
myserial.print(thamso2);
myserial.print("", "H":"");
myserial.print(thamso3);