UPDATE
<p>Function Multiple, Nodemcu Offline , Online , JSON Data, ESP Wifi Camera , Leaning</p><p>Read All String from Serial</p><p><br></p><p><br></p><p>Read All String from Serial</p><p>while (Serial.available()) {</p><p> delay(2); //delay to allow byte to arrive in input buffer</p><p> char c = Serial.read();</p><p> readString += c;</p><p> }</p><p><br></p><p> if (readString.length() >0) {</p><p> Serial.println(readString);</p><p><br></p><p> readString="";</p><p> } </p><p> </p><p> </p><p>Nodemcu to Arduino</p><p>//Send </p><p>#include <SoftwareSerial.h> </p><p>SoftwareSerial espSerial(0, 1);</p><p>String str;</p><p>int val=1;</p><p>void setup(){</p><p>Serial.begin(115200);</p><p>espSerial.begin(115200);</p><p>delay(2000);</p><p>}</p><p>void loop()</p><p>{ </p><p>str =String("coming from ESP8266: " + val ) ;</p><p>Serial.println(str);</p><p>espSerial.println(str);</p><p>delay(1000);</p><p>}</p><p><br></p><p><br></p><p>//Received</p><p>readString="%%11%22%3%4%5%6%7%8%9%10";</p><p><br></p><p> del = readString.indexOf("%");</p><p> del_1 = readString.indexOf("%", del + 1); </p><p> del_2 = readString.indexOf("%", del_1 +1);</p><p> del_3 = readString.indexOf("%", del_2 +1);</p><p> del_4 = readString.indexOf("%", del_3 +1);</p><p> </p><p> uv1 = readString.substring(del_1 + 1, del_2) ; </p><p> uv2 = readString.substring(del_2 + 1, del_3) ; </p><p> uv3 = readString.substring(del_3 + 1, del_4) ; </p><p><br></p><p> Serial.println(uv1);</p><p> Serial.println(uv2);</p><p> Serial.println(uv3);</p><p><br></p><p> ESP Wifi Camera</p><p> https://www.youtube.com/watch?v=vPcJ5HOVSRQ</p><p> https://www.youtube.com/watch?v=U7qbehy9aDo&t=144s </p><p> </p><p> </p><p>Learning</p><p>NRf24l01 wiring diagram Need Capacitor 10v-100v 100uf</p><p><br></p><p>Function</p><p><br></p><p>void ledFunction(uint8_t st, int x){</p><p>// digitalWrite(st, HIGH); //On</p><p>// delay(1000);</p><p> for(i = 0; i < x; i += 1) </p><p> {</p><p> digitalWrite(st, HIGH); //On</p><p> delay(1000);</p><p> digitalWrite(st, LOW); //Off</p><p> delay(1000);</p><p> } </p><p> digitalWrite(st, HIGH); //On</p><p> delay(6000);</p><p>}</p><p><br></p><p><br></p><p>Offline</p><p><br></p><p><br></p><p>Online</p><p><br></p><p><br></p><p>------------JSON Data</p><p>#include <SoftwareSerial.h></p><p>#include <ArduinoJson.h></p><p>SoftwareSerial nodemcu(8,9); //RX,TX</p><p><br></p><p>int minTrig=1;</p><p>int i;</p><p>String datas;</p><p><br></p><p>int LDRSensor = 2;</p><p> </p><p>void setup() {</p><p> // initialize serial communication at 9600 bits per second:</p><p> pinMode (LDRSensor, INPUT);</p><p> Serial.begin(9600);</p><p>nodemcu.begin(9600);</p><p>}</p><p><br></p><p>// the loop routine runs over and over again forever:</p><p>void loop() {</p><p>datas ="";</p><p>static const uint8_t digital_pins[] = {13,12,11,10,24,26,7,6,5,4,3,2,14,15,16,17,18,19,20,21,22};</p><p>// Setup pins for input</p><p>for (int i = 0; i < 21; i++) { //or i <= 4</p><p> //Serial.println(digitalRead(digital_pins[i]));</p><p>datas = datas + digitalRead(digital_pins[i]);</p><p>}</p><p> Serial.println(datas);</p><p>// Serial.print(s1);</p><p>// Serial.print(s2);</p><p>// Serial.print(s3);</p><p>// Serial.print(s4);</p><p>// Serial.print(s5);</p><p><br></p><p> StaticJsonDocument<1000> doc; </p><p> </p><p> doc["val"] =datas ;</p><p> serializeJson(doc,nodemcu);</p><p> delay(5000); // delay in between reads for stability</p><p>}</p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p>-----------------MEDBOX</p><p>#include <SoftwareSerial.h></p><p>#include <ESP8266WiFi.h></p><p>#include <ESP8266HTTPClient.h></p><p>#include <WiFiClientSecure.h> </p><p><br></p><p>#include <Wire.h></p><p>#include <LiquidCrystal_I2C.h> </p><p>LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2); //D4 =SDA D3=SCL</p><p><br></p><p>#include <ArduinoJson.h> </p><p>SoftwareSerial nodemcu(D2,D1);</p><p><br></p><p>//const String ssid = "connect_virus";</p><p>//const String password = "imBlessed@01";</p><p><br></p><p>const String ssid = "Ginora2.4G";</p><p>const String password = "ger@ldGG32;;;;";</p><p>String url = "https://phsite.tech/smartmedbox/save-data.php?id=1&r=";</p><p>String getUrl = "https://phsite.tech/smartmedbox/get-data.php?id=1&uid=3";</p><p> </p><p><br></p><p>//Declare </p><p>#define relay D7 //D7</p><p>#define ledPin1 D5 </p><p>#define ledPin2 D6 // </p><p>#define buzzer D0 // </p><p> </p><p><br></p><p>int i;</p><p>int del, del_1, del_2, del_3,del_4,del_5,del_6; //delimiter</p><p>String ldrValue,msg ,day,xname,box,xtime, tim,rel,str,timeNow;</p><p>String payload="%0%0%0%0%0%";</p><p><br></p><p> </p><p><br></p><p>void setup()</p><p>{</p><p> Wire.begin(2,0);</p><p> lcd.init(); // initializing the LCD</p><p> lcd.backlight(); // Enable or Turn On the backlight </p><p> lcdDisplay("WELCOME TO" ,"SMART MEDBOX");</p><p> Serial.begin(9600); </p><p><br></p><p> Serial.begin(115200); // Starts the serial communication</p><p> WiFi.begin(ssid, password);</p><p> Serial.println("");</p><p> Serial.print("Connecting");</p><p> while (WiFi.status() != WL_CONNECTED) {</p><p> delay(500);</p><p> Serial.print(".");</p><p> }</p><p><br></p><p> Serial.println("");</p><p> Serial.print("Connected to ");</p><p> Serial.println(ssid);</p><p> Serial.print("IP address: ");</p><p> Serial.println(WiFi.localIP());</p><p> </p><p> pinMode(relay, OUTPUT); </p><p> pinMode(buzzer, OUTPUT); </p><p> pinMode(ledPin1, OUTPUT); </p><p> pinMode(ledPin2, OUTPUT); </p><p> lcdDisplay("System","Ready"); </p><p><br></p><p> </p><p> nodemcu.begin(9600); </p><p>}</p><p><br></p><p><br></p><p>int ByteReceived = 0;</p><p>void loop()</p><p>{ </p><p> StaticJsonDocument<1000> doc;</p><p>DeserializationError error = deserializeJson(doc,nodemcu);</p><p>if(error) {</p><p> Serial.println("Invalid JSON Object");</p><p> return;</p><p>}else{ </p><p>String ldrValue = doc["val"];</p><p><br></p><p> //TO DATABASE</p><p> if (WiFi.status() == WL_CONNECTED) {</p><p> WiFiClientSecure client;</p><p> client.setInsecure();</p><p> // ldrValue = "010100000000000000001";</p><p> HTTPClient https; </p><p> String fullUrl = url + ldrValue ; </p><p> Serial.println("Requesting " + fullUrl);</p><p> if (https.begin(client, fullUrl)) {</p><p> int httpCode = https.GET();</p><p> Serial.println("============== Response code: " + String(httpCode));</p><p> if (httpCode > 0) {</p><p> Serial.println(https.getString());</p><p> }</p><p> https.end();</p><p> } else {</p><p> Serial.printf("[HTTPS] Unable to connect\n");</p><p> }</p><p> }</p><p>}</p><p><br></p><p>//FROM DATABASE</p><p> if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status </p><p> WiFiClientSecure client;</p><p> client.setInsecure();</p><p> </p><p> HTTPClient https; //Declare an object of class HTTPClient </p><p> https.begin(client,getUrl); //Specify request destination</p><p> int httpCode = https.GET(); //Send the request</p><p> </p><p> if (httpCode > 0) { //Check the returning code</p><p> String payload = https.getString(); //Get the request response payload </p><p> String readString = payload; //Split</p><p> del = readString.indexOf("%");</p><p> del_1 = readString.indexOf("%", del + 1);</p><p> del_2 = readString.indexOf("%", del_1 +1); </p><p> del_3 = readString.indexOf("%", del_2 +1); </p><p> del_4 = readString.indexOf("%", del_3 +1); </p><p> del_5 = readString.indexOf("%", del_4 +1); </p><p> del_6 = readString.indexOf("%", del_5 +1); </p><p> </p><p> </p><p> // Define variables to be executed on the code later by collecting information from the readString as substrings.</p><p> xname = readString.substring(del + 1, del_1) ;</p><p> box = readString.substring(del_1 + 1, del_2) ; </p><p> xtime = readString.substring(del_2 + 1, del_3) ; </p><p> str = readString.substring(del_3 + 1, del_4) ; </p><p> rel = readString.substring(del_4 + 1, del_5) ; </p><p> timeNow = readString.substring(del_5 + 1, del_6) ; </p><p><br></p><p> Serial.println("DATAGET");</p><p> Serial.println("Name:");</p><p> Serial.println(xname); </p><p> Serial.println("Box:");</p><p> Serial.println(box); </p><p> </p><p> Serial.println("Time:");</p><p> Serial.println(xtime); </p><p> Serial.println("Day:");</p><p> Serial.println(str); </p><p> Serial.println("Relay:");</p><p> Serial.println(rel); </p><p> </p><p> Serial.println("Time Now:");</p><p> Serial.println(timeNow); </p><p> Serial.println("----------------");</p><p> //DO TASK </p><p> lcdDisplay(xname + " " + box,xtime + " " + str );</p><p> taskToDo();</p><p> }</p><p> https.end(); //Close connection</p><p> }</p><p>//</p><p>// For TESTING</p><p>// onRed();</p><p>// lcdDisplay("System","Ready"); </p><p>// delay(5000); </p><p>// onBlue();</p><p>// digitalWrite(relay, HIGH); //Off</p><p>// delay(5000);</p><p>// Serial.println("Relay Off");</p><p>// </p><p>// digitalWrite(relay, HIGH); //Off</p><p>// delay(5000);</p><p>// Serial.println("Relay Off");</p><p><br></p><p> delay(5000); </p><p>}</p><p><br></p><p>void taskToDo(){ </p><p><br></p><p>if(rel=="0"){</p><p> digitalWrite(ledPin1, LOW); </p><p> digitalWrite(ledPin2, HIGH); </p><p> digitalWrite(relay, HIGH); //ON</p><p> // delay(5000);</p><p> }else{ //ON</p><p> buzTone(3);</p><p> digitalWrite(ledPin1, HIGH); </p><p> digitalWrite(ledPin2, LOW); </p><p> digitalWrite(relay, LOW);//On </p><p> delay(10000); </p><p>}</p><p><br></p><p><br></p><p>}</p><p><br></p><p><br></p><p>void buzTone(int x){</p><p> for (int i = 1; i <= x; i++) {</p><p> digitalWrite(buzzer,HIGH) ; //Turn on active buzzer</p><p> delay (1000);</p><p> digitalWrite(buzzer,LOW) ; //Turn off active buzzer</p><p> delay (1000); </p><p> }</p><p>}</p><p><br></p><p>void onRed(){</p><p> digitalWrite(ledPin1, HIGH); </p><p> digitalWrite(ledPin2, LOW); </p><p>}</p><p>void onBlue(){</p><p> digitalWrite(ledPin1, LOW); </p><p> digitalWrite(ledPin2, HIGH); </p><p>}</p><p><br></p><p>void offLed(){</p><p> digitalWrite(ledPin1, LOW); </p><p> digitalWrite(buzzer, LOW); </p><p> digitalWrite(ledPin2, LOW); </p><p>}</p><p><br></p><p>void lcdDisplay(String x , String y)</p><p>{</p><p> lcd.setCursor(2, 0);</p><p> lcd.print(x);</p><p> lcd.setCursor(2, 1);</p><p> lcd.print(y);</p><p> delay(3000);</p><p> lcd.clear();</p><p>}</p><div><br></div>