· 4 years ago · Jul 12, 2021, 02:30 PM
1#include <SoftwareSerial.h>
2#define RX 2
3#define TX 3
4String AP = ""; // AP NAME
5String PASS = ""; // AP PASSWORD
6String API = ""; // Write API KEY
7String HOST = "api.thingspeak.com";
8String PORT = "80";
9String field = "field1";
10int countTrueCommand;
11int countTimeCommand;
12boolean found = false;
13long valSensor = 1;
14SoftwareSerial esp8266(RX,TX);
15
16// For Ultrasonic sensor
17int trigPin = 9;
18int echoPin = 10;
19int led = 7;
20
21
22void setup() {
23 Serial.begin(9600);
24 pinMode(led, OUTPUT);
25 pinMode(trigPin, OUTPUT);
26 pinMode(echoPin, INPUT);
27 esp8266.begin(115200);
28 sendCommand("AT",5,"OK");
29 sendCommand("AT+CWMODE=1",5,"OK");
30 sendCommand("AT+CWJAP=\""+ AP +"\",\""+ PASS +"\"",20,"OK");
31}
32
33void loop() {
34 long duration, distance;
35 digitalWrite(trigPin,HIGH);
36 delayMicroseconds(10);// should be 1000
37 digitalWrite(trigPin, LOW);
38 duration = pulseIn(echoPin, HIGH);
39 distance =(duration/2)/29.1;
40 Serial.print(distance);
41 Serial.println("CM");
42 delay(10);
43
44 if((distance<=10))
45 {
46 digitalWrite(led, HIGH);
47}
48 else if(distance>10)
49 {
50 digitalWrite(led, LOW);
51 }
52 valSensor = distance;
53 String getData = "GET /update?api_key="+ API +"&"+ field +"="+String(valSensor);
54sendCommand("AT+CIPMUX=1",5,"OK");
55 sendCommand("AT+CIPSTART=0,\"TCP\",\""+ HOST +"\","+ PORT,15,"OK");
56 sendCommand("AT+CIPSEND=0," +String(getData.length()+4),4,">");
57 esp8266.println(getData);delay(1500);countTrueCommand++;
58 sendCommand("AT+CIPCLOSE=0",5,"OK");
59}
60
61int getSensorData(){
62 return random(1000); // Replace with your own sensor code
63}
64
65void sendCommand(String command, int maxTime, char readReplay[]) {
66 Serial.print(countTrueCommand);
67 Serial.print(". at command => ");
68 Serial.print(command);
69 Serial.print(" ");
70 while(countTimeCommand < (maxTime*1))
71 {
72 esp8266.println(command);//at+cipsend
73 if(esp8266.find(readReplay))//ok
74 {
75 found = true;
76 break;
77 }
78
79 countTimeCommand++;
80 }
81
82 if(found == true)
83 {
84 Serial.println("OYI");
85 countTrueCommand++;
86 countTimeCommand = 0;
87 }
88
89 if(found == false)
90 {
91 Serial.println("Fail");
92 countTrueCommand = 0;
93 countTimeCommand = 0;
94 }
95
96 found = false;
97 }