#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;
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)
{
myserial.println("{"chedo":"0"}");
Serial.println("{"chedo":"0"}");
myserial.println("{"pump":"0"}");
Serial.println("{"pump":"0"}");
myserial.flush();
delay(100);
}
}
}
BLYNK_WRITE(V5)
{
nhiet_do_set = param.asInt();
delay(100);
if(che_do==1)
{
sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set));
}
}
BLYNK_WRITE(V6)
{
led = param.asInt();
if(che_do==0)
{
if(led==1 && trang_thai_led==0)
{
myserial.println("{"led":"1"}");
Serial.println("{"led":"1"}");
myserial.flush();
delay(100);
}
else if(led==0 && trang_thai_led==1)
{
myserial.println("{"led":"0"}");
Serial.println("{"led":"0"}");
myserial.flush();
delay(100);
}
}
}
BLYNK_WRITE(V7)
{
che_do= param.asInt();
sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set));
}
BLYNK_WRITE(V8)
{
do_am_dat_set = param.asInt();
delay(100);
if(che_do==1)
{
sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set));
}
}
BLYNK_WRITE(V9)
{
quat = param.asInt();
if(che_do==0)
{
if(quat==1 && trang_thai_quat==0)
{
myserial.println("{"chedo":"0"}");
Serial.println("{"chedo":"0"}");
myserial.println("{"quat":"1"}");
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();
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"];
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);
myserial.println(""}");
}

More Related Content

PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
DOCX
FILE_20220615_220619_NGHIÊN CỨU, ỨNG DỤNG IOT TRONG NÔNG NGHIỆP.docx
DOCX
Vườn-Lan-Thông-Minh-IOT.docx
DOCX
code-arduino-uno-R3.docx
DOCX
NGHIÊN CỨU, ỨNG DỤNG IOT TRONG NÔNG NGHIỆP.docx
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Storytelling For The Web: Integrate Storytelling in your Design Process
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
2024 Trend Updates: What Really Works In SEO & Content Marketing
FILE_20220615_220619_NGHIÊN CỨU, ỨNG DỤNG IOT TRONG NÔNG NGHIỆP.docx
Vườn-Lan-Thông-Minh-IOT.docx
code-arduino-uno-R3.docx
NGHIÊN CỨU, ỨNG DỤNG IOT TRONG NÔNG NGHIỆP.docx

Recently uploaded (20)

PDF
AIGA 012_04 Cleaning of equipment for oxygen service_reformat Jan 12.pdf
PDF
Artificial Intelligence_ Basics .Artificial Intelligence_ Basics .
PPTX
Solar energy pdf of gitam songa hemant k
PPTX
BBOC407 BIOLOGY FOR ENGINEERS (CS) - MODULE 1 PART 1.pptx
PPTX
SC Robotics Team Safety Training Presentation
PPT
Comprehensive Java Training Deck - Advanced topics
PDF
CELDAS DE COMBUSTIBLE TIPO MEMBRANA DE INTERCAMBIO PROTÓNICO.pdf
PDF
Project_Mgmt_Institute_-Marc Marc Marc .pdf
PPTX
Design ,Art Across Digital Realities and eXtended Reality
PPT
UNIT-I Machine Learning Essentials for 2nd years
PDF
VTU IOT LAB MANUAL (BCS701) Computer science and Engineering
PDF
V2500 Owner and Operatore Guide for Airbus
PPTX
Agentic Artificial Intelligence (Agentic AI).pptx
PDF
Software defined netwoks is useful to learn NFV and virtual Lans
PPTX
Soft Skills Unit 2 Listening Speaking Reading Writing.pptx
PDF
Engineering Solutions for Ethical Dilemmas in Healthcare (www.kiu.ac.ug)
PPTX
SE unit 1.pptx by d.y.p.akurdi aaaaaaaaaaaa
PDF
Beginners-Guide-to-Artificial-Intelligence.pdf
PPTX
Real Estate Management PART 1.pptxFFFFFFFFFFFFF
DOCX
ENVIRONMENTAL PROTECTION AND MANAGEMENT (18CVL756)
AIGA 012_04 Cleaning of equipment for oxygen service_reformat Jan 12.pdf
Artificial Intelligence_ Basics .Artificial Intelligence_ Basics .
Solar energy pdf of gitam songa hemant k
BBOC407 BIOLOGY FOR ENGINEERS (CS) - MODULE 1 PART 1.pptx
SC Robotics Team Safety Training Presentation
Comprehensive Java Training Deck - Advanced topics
CELDAS DE COMBUSTIBLE TIPO MEMBRANA DE INTERCAMBIO PROTÓNICO.pdf
Project_Mgmt_Institute_-Marc Marc Marc .pdf
Design ,Art Across Digital Realities and eXtended Reality
UNIT-I Machine Learning Essentials for 2nd years
VTU IOT LAB MANUAL (BCS701) Computer science and Engineering
V2500 Owner and Operatore Guide for Airbus
Agentic Artificial Intelligence (Agentic AI).pptx
Software defined netwoks is useful to learn NFV and virtual Lans
Soft Skills Unit 2 Listening Speaking Reading Writing.pptx
Engineering Solutions for Ethical Dilemmas in Healthcare (www.kiu.ac.ug)
SE unit 1.pptx by d.y.p.akurdi aaaaaaaaaaaa
Beginners-Guide-to-Artificial-Intelligence.pdf
Real Estate Management PART 1.pptxFFFFFFFFFFFFF
ENVIRONMENTAL PROTECTION AND MANAGEMENT (18CVL756)
Ad
Ad

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) {
  • 3. myserial.println("{"chedo":"0"}"); Serial.println("{"chedo":"0"}"); myserial.println("{"pump":"0"}"); Serial.println("{"pump":"0"}"); myserial.flush(); delay(100); } } } BLYNK_WRITE(V5) { nhiet_do_set = param.asInt(); delay(100); if(che_do==1) { sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set)); } } BLYNK_WRITE(V6) { led = param.asInt(); if(che_do==0) { if(led==1 && trang_thai_led==0) { myserial.println("{"led":"1"}"); Serial.println("{"led":"1"}"); myserial.flush(); delay(100); } else if(led==0 && trang_thai_led==1) {
  • 4. myserial.println("{"led":"0"}"); Serial.println("{"led":"0"}"); myserial.flush(); delay(100); } } } BLYNK_WRITE(V7) { che_do= param.asInt(); sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set)); } BLYNK_WRITE(V8) { do_am_dat_set = param.asInt(); delay(100); if(che_do==1) { sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set)); } } BLYNK_WRITE(V9) { quat = param.asInt(); if(che_do==0) { if(quat==1 && trang_thai_quat==0) { myserial.println("{"chedo":"0"}"); Serial.println("{"chedo":"0"}"); myserial.println("{"quat":"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);