Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* New with JSON */
- #include <ESP8266WiFi.h> //https://github.com/esp8266/Arduino
- #include <DNSServer.h>
- #include <ESP8266WebServer.h>
- #include <WiFiManager.h>
- #include <Wire.h>
- #include "Adafruit_MCP23017.h"
- Adafruit_MCP23017 mcp;
- #define S0 D0 /* Assign Multiplexer pin S0 connect to pin D0 of NodeMCU */
- #define S3 D3 /* Assign Multiplexer pin S3 connect to pin D3 of NodeMCU */
- #define S1 D7 /* Assign Multiplexer pin S1 connect to pin D1 of NodeMCU */
- #define S2 D8 /* Assign Multiplexer pin S2 connect to pin D2 of NodeMCU */
- #define SIG A0 /* Assign SIG pin Analog output for all Multiplexer's channels to A0 of NodeMCU */
- #define SoilHumidity 430 /* Assign the level of the soil humidity to irrigate the plant */
- #define PUMP D6
- #define solenoid0 0 //Connect Solenoid0 for Sens0 GPA0 on mcp
- #define solenoid1 1 //Connect Solenoid1 for Sens1 GPA1 on mcp
- #define solenoid2 2 //Connect Solenoid2 for Sens2 GPA2 on mcp
- #define solenoid3 3 //Connect Solenoid3 for Sens3 GPA3 on mcp
- #define solenoid4 4 //Connect Solenoid4 for Sens4 GPA4 on mcp
- #define solenoid5 5 //Connect Solenoid5 for Sens5 GPA5 on mcp
- #define solenoid6 6 //Connect Solenoid6 for Sens6 GPA6 on mcp
- #define solenoid7 7 //Connect Solenoid7 for Sens7 GPB0 on mcp
- #define solenoid8 8 //Connect Solenoid8 for Sens8 GPB1 on mcp
- #define solenoid9 9 //Connect Solenoid9 for Sens9 GPB2 on mcp
- #define solenoid10 10 //Connect Solenoid10 for Sens10 GPB3 on mcp
- #define solenoid11 11 //Connect Solenoid11 for Sens11 GPB4 on mcp
- #define solenoid12 12 //Connect Solenoid11 for Sens11 GPB5 on mcp
- #define solenoid13 13 //Connect Solenoid11 for Sens11 GPB6 on mcp
- #define solenoid14 14 //Connect Solenoid11 for Sens11 GPB7 on mcp
- #define solenoid15 15 //Connect Solenoid11 for Sens11 GPB8 on mcp
- int sensor[15];
- /* Assign the name "sensor[0]" as analog output value from Channel C0 */
- /* Assign the name "sensor[1]" as analog output value from Channel C1 */
- /* Assign the name "sensor[2]" as analog output value from Channel C2 */
- /* Assign the name "sensor[3]" as analog output value from Channel C3 */
- /* Assign the name "sensor[4]" as analog output value from Channel C4 */
- /* Assign the name "sensor[5]" as analog output value from Channel C5 */
- /* Assign the name "sensor[6]" as analog output value from Channel C6 */
- /* Assign the name "sensor[7]" as analog output value from Channel C7 */
- /* Assign the name "sensor[8]" as analog output value from Channel C8 */
- /* Assign the name "sensor[9]" as analog output value from Channel C9 */
- /* Assign the name "sensor[10]" as analog output value from Channel C10 */
- /* Assign the name "sensor[11]" as analog output value from Channel C11 */
- /* Assign the name "sensor[12]" as analog output value from Channel C12 */
- /* Assign the name "sensor[13]" as analog output value from Channel C13 */
- /* Assign the name "sensor[14]" as analog output value from Channel C14 */
- /* Assign the name "sensor[15]" as analog output value from Channel C15 */
- String pumpstate = "OFF";
- String solenoidState0 = "OFF";
- String solenoidState1 = "OFF";
- String solenoidState2 = "OFF";
- String solenoidState3 = "OFF";
- String solenoidState4 = "OFF";
- String solenoidState5 = "OFF";
- String solenoidState6 = "OFF";
- String solenoidState7 = "OFF";
- String solenoidState8 = "OFF";
- String solenoidState9 = "OFF";
- String solenoidState10 = "OFF";
- String solenoidState11 = "OFF";
- String solenoidState12 = "OFF";
- String solenoidState13 = "OFF";
- String solenoidState14 = "OFF";
- String solenoidState15 = "OFF";
- String XML; // pour envoyer le code XML a ma page web
- ESP8266WebServer server(80);
- static const char PROGMEM INDEX_HTML[] = R"rawliteral(
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title>Irrigation Viewer</title>
- <style type="text/css">
- td, th {
- border: 1px solid white;
- }
- table {
- margin: 15px 0;
- border: 1px solid black;
- table-layout: fixed;
- width: 100%; /* must have this set */
- border-spacing: 18px;
- }
- html {
- background: black;
- }
- body {
- font-family: sans-serif;
- color: #FFFFFF;
- max-width: 600px;
- margin: 0 auto;
- background: black;
- padding: 10px;
- }
- h1{
- text-align: center;
- }
- .wider td {
- width: 218px;
- }
- </style>
- </head>
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
- <body onload="obtenirVariables()">
- <h1>Irrigation System Viewer</h1>
- <table class="wider">
- <tr>
- <td colspan="2" id="pumpstate"></td>
- </tr>
- <tr>
- <td id="sensor0"></td>
- <td id="solenoidState0"></td>
- </tr>
- <tr>
- <td id="sensor1"></td>
- <td id="solenoidState1"></td>
- </tr>
- <tr>
- <td id="sensor2"></td>
- <td id="solenoidState2"></td>
- </tr>
- <tr>
- <td id="sensor3"></td>
- <td id="solenoidState3"></td>
- </tr>
- <tr>
- <td id="sensor4"></td>
- <td id="solenoidState4"></td>
- </tr>
- <tr>
- <td id="sensor5"></td>
- <td id="solenoidState5"></td>
- </tr>
- <tr>
- <td id="sensor6"></td>
- <td id="solenoidState6"></td>
- </tr>
- <tr>
- <td id="sensor7"></td>
- <td id="solenoidState7"></td>
- </tr>
- <tr>
- <td id="sensor8"></td>
- <td id="solenoidState8"></td>
- </tr>
- <tr>
- <td id="sensor9"></td>
- <td id="solenoidState9"></td>
- </tr>
- <tr>
- <td id="sensor10"></td>
- <td id="solenoidState10"></td>
- </tr>
- <tr>
- <td id="sensor11"></td>
- <td id="solenoidState11"></td>
- </tr>
- <tr>
- <td id="sensor12"></td>
- <td id="solenoidState12"></td>
- </tr>
- <tr>
- <td id="sensor13"></td>
- <td id="solenoidState13"></td>
- </tr>
- <tr>
- <td id="sensor14"></td>
- <td id="solenoidState14"></td>
- </tr>
- <tr>
- <td id="sensor15"></td>
- <td id="solenoidState15"></td>
- </tr>
- <tr>
- <td><i class="fa fa-refresh fa-spin"></i></td>
- <td>ssss</td>
- </tr>
- </table>
- <script type="text/javascript">
- function obtenirVariables(){
- var uniqueURL = "/reqEtatVariables" + "?aleatoire=" + Math.trunc(Math.random() * 1000000);
- var request = new XMLHttpRequest(); // http://www.toutjavascript.com/reference/ref-xmlhttprequest.php
- // la fonction à appeler lors d'un changement d'avancement de la requête AJAX
- request.onreadystatechange = function()
- {
- if (request.readyState == 4) {
- // Indicateur de l'avancement de l'appel AJAX == 4 => Données complètement accessibles
- if (request.status == 200) {
- document.getElementById("pumpstate").innerHTML = "Pump: " + this.responseXML.getElementsByTagName('pumpstate')[0].childNodes[0].nodeValue;
- document.getElementById("sensor0").innerHTML = "SoilHumidity Sensor 0: " + this.responseXML.getElementsByTagName('sensor0')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor1").innerHTML = "SoilHumidity Sensor 1: " + this.responseXML.getElementsByTagName('sensor1')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor2").innerHTML = "SoilHumidity Sensor 2: " + this.responseXML.getElementsByTagName('sensor2')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor3").innerHTML = "SoilHumidity Sensor 3: " + this.responseXML.getElementsByTagName('sensor3')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor4").innerHTML = "SoilHumidity Sensor 4: " + this.responseXML.getElementsByTagName('sensor4')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor5").innerHTML = "SoilHumidity Sensor 5: " + this.responseXML.getElementsByTagName('sensor5')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor6").innerHTML = "SoilHumidity Sensor 6: " + this.responseXML.getElementsByTagName('sensor6')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor7").innerHTML = "SoilHumidity Sensor 7: " + this.responseXML.getElementsByTagName('sensor7')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor8").innerHTML = "SoilHumidity Sensor 8: " + this.responseXML.getElementsByTagName('sensor8')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor9").innerHTML = "SoilHumidity Sensor 9: " + this.responseXML.getElementsByTagName('sensor9')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor10").innerHTML = "SoilHumidity Sensor 10: " + this.responseXML.getElementsByTagName('sensor10')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor11").innerHTML = "SoilHumidity Sensor 11: " + this.responseXML.getElementsByTagName('sensor11')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor12").innerHTML = "SoilHumidity Sensor 12: " + this.responseXML.getElementsByTagName('sensor12')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor13").innerHTML = "SoilHumidity Sensor 13: " + this.responseXML.getElementsByTagName('sensor13')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor14").innerHTML = "SoilHumidity Sensor 14: " + this.responseXML.getElementsByTagName('sensor14')[0].childNodes[0].nodeValue + "%";
- document.getElementById("sensor15").innerHTML = "SoilHumidity Sensor 15: " + this.responseXML.getElementsByTagName('sensor15')[0].childNodes[0].nodeValue + "%";
- document.getElementById("solenoidState0").innerHTML = "Solenoid0 State 0: " + this.responseXML.getElementsByTagName('solenoidState0')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState1").innerHTML = "Solenoid0 State 1: " + this.responseXML.getElementsByTagName('solenoidState1')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState2").innerHTML = "Solenoid0 State 2: " + this.responseXML.getElementsByTagName('solenoidState2')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState3").innerHTML = "Solenoid0 State 3: " + this.responseXML.getElementsByTagName('solenoidState3')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState4").innerHTML = "Solenoid0 State 4: " + this.responseXML.getElementsByTagName('solenoidState4')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState5").innerHTML = "Solenoid0 State 5: " + this.responseXML.getElementsByTagName('solenoidState5')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState6").innerHTML = "Solenoid0 State 6: " + this.responseXML.getElementsByTagName('solenoidState6')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState7").innerHTML = "Solenoid0 State 7: " + this.responseXML.getElementsByTagName('solenoidState7')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState8").innerHTML = "Solenoid0 State 8: " + this.responseXML.getElementsByTagName('solenoidState8')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState9").innerHTML = "Solenoid0 State 9: " + this.responseXML.getElementsByTagName('solenoidState9')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState10").innerHTML = "Solenoid0 State 10: " + this.responseXML.getElementsByTagName('solenoidState10')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState11").innerHTML = "Solenoid0 State 11: " + this.responseXML.getElementsByTagName('solenoidState11')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState12").innerHTML = "Solenoid0 State 12: " + this.responseXML.getElementsByTagName('solenoidState12')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState13").innerHTML = "Solenoid0 State 13: " + this.responseXML.getElementsByTagName('solenoidState13')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState14").innerHTML = "Solenoid0 State 14: " + this.responseXML.getElementsByTagName('solenoidState14')[0].childNodes[0].nodeValue;
- document.getElementById("solenoidState15").innerHTML = "Solenoid0 State 15: " + this.responseXML.getElementsByTagName('solenoidState15')[0].childNodes[0].nodeValue;
- }
- }
- }
- request.open("GET", uniqueURL , true); // ici on envoie la requête GET sur l'URL /reqEtatVariables
- request.send(null);
- setTimeout("obtenirVariables()", 1000); // on rappelle obtenirVariables()
- }
- </script>
- </body>
- </html>
- )rawliteral";
- void handleRoot(){
- server.send_P(200, "text/html", INDEX_HTML);
- }
- void handleNotFound() {
- String message = "File Not Found\n\n";
- message += "URI: ";
- message += server.uri();
- message += "\nMethod: ";
- message += (server.method() == HTTP_GET) ? "GET" : "POST";
- message += "\nArguments: ";
- message += server.args();
- message += "\n";
- for (uint8_t i = 0; i < server.args(); i++) {
- message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
- }
- server.send(404, "text/plain", message);
- }
- // read soil humiduty and display in html
- void getSoilHumidity() {
- // Channel 0 (C0 pin - binary output 0,0,0,0)
- digitalWrite(S0,LOW); digitalWrite(S1,LOW); digitalWrite(S2,LOW); digitalWrite(S3,LOW);
- sensor[0] = analogRead(SIG);
- // Channel 1 (C1 pin - binary output 1,0,0,0)
- digitalWrite(S0,HIGH); digitalWrite(S1,LOW); digitalWrite(S2,LOW); digitalWrite(S3,LOW);
- sensor[1] = analogRead(SIG);
- // Channel 2 (C2 pin - binary output 0,1,0,0)
- digitalWrite(S0,LOW); digitalWrite(S1,HIGH); digitalWrite(S2,LOW); digitalWrite(S3,LOW);
- sensor[2] = analogRead(SIG);
- // Channel 3 (C3 pin - binary output 1,1,0,0)
- digitalWrite(S0,HIGH); digitalWrite(S1,HIGH); digitalWrite(S2,LOW); digitalWrite(S3,LOW);
- sensor[3] = analogRead(SIG);
- // Channel 4 (C4 pin - binary output 0,0,1,0)
- digitalWrite(S0,LOW); digitalWrite(S1,LOW); digitalWrite(S2,HIGH); digitalWrite(S3,LOW);
- sensor[4] = analogRead(SIG);
- // Channel 5 (C5 pin - binary output 1,0,1,0)
- digitalWrite(S0,HIGH); digitalWrite(S1,LOW); digitalWrite(S2,HIGH); digitalWrite(S3,LOW);
- sensor[5] = analogRead(SIG);
- // Channel 6 (C6 pin - binary output 0,1,1,0)
- digitalWrite(S0,LOW); digitalWrite(S1,HIGH); digitalWrite(S2,HIGH); digitalWrite(S3,LOW);
- sensor[6] = analogRead(SIG);
- // Channel 7 (C7 pin - binary output 1,1,1,0)
- digitalWrite(S0,HIGH); digitalWrite(S1,HIGH); digitalWrite(S2,HIGH); digitalWrite(S3,LOW);
- sensor[7] = analogRead(SIG);
- // Channel 8 (C8 pin - binary output 0,0,0,1)
- digitalWrite(S0,LOW); digitalWrite(S1,LOW); digitalWrite(S2,LOW); digitalWrite(S3,HIGH);
- sensor[8] = analogRead(SIG);
- // Channel 9 (C9 pin - binary output 1,0,0,1)
- digitalWrite(S0,HIGH); digitalWrite(S1,LOW); digitalWrite(S2,LOW); digitalWrite(S3,HIGH);
- sensor[9] = analogRead(SIG);
- // Channel 10 (C10 pin - binary output 0,1,0,1)
- digitalWrite(S0,LOW); digitalWrite(S1,HIGH); digitalWrite(S2,LOW); digitalWrite(S3,HIGH);
- sensor[10] = analogRead(SIG);
- // Channel 11 (C11 pin - binary output 1,1,0,1)
- digitalWrite(S0,HIGH); digitalWrite(S1,HIGH); digitalWrite(S2,LOW); digitalWrite(S3,HIGH);
- sensor[11] = analogRead(SIG);
- // Channel 12 (C12 pin - binary output 0,0,1,1)
- digitalWrite(S0,LOW); digitalWrite(S1,LOW); digitalWrite(S2,HIGH); digitalWrite(S3,HIGH);
- sensor[12] = analogRead(SIG);
- // Channel 13 (C13 pin - binary output 1,0,1,1)
- digitalWrite(S0,HIGH); digitalWrite(S1,LOW); digitalWrite(S2,HIGH); digitalWrite(S3,HIGH);
- sensor[13] = analogRead(SIG);
- // Channel 14 (C14 pin - binary output 0,1,1,1)
- digitalWrite(S0,LOW); digitalWrite(S1,HIGH); digitalWrite(S2,HIGH); digitalWrite(S3,HIGH);
- sensor[14] = analogRead(SIG);
- // Channel 15 (C15 pin - binary output 1,1,1,1)
- digitalWrite(S0,HIGH); digitalWrite(S1,HIGH); digitalWrite(S2,HIGH); digitalWrite(S3,HIGH);
- sensor[15] = analogRead(SIG);
- }
- // Drive the Solenoid
- String solenoidStatus(int sensor, int solenoidPin) {
- String solenoidState;
- if(sensor <= SoilHumidity) {
- solenoidState = "OFF";
- mcp.digitalWrite(solenoidPin,LOW);
- }
- else {
- solenoidState = "ON";
- mcp.digitalWrite(solenoidPin,HIGH);
- }
- return(solenoidState);
- }
- // Read Solenoid status and display status in html
- void driveSolenoid() {
- solenoidState0 = solenoidStatus(sensor[0], solenoid0);
- solenoidState1 = solenoidStatus(sensor[1], solenoid1);
- solenoidState2 = solenoidStatus(sensor[2], solenoid2);
- solenoidState3 = solenoidStatus(sensor[3], solenoid3);
- solenoidState4 = solenoidStatus(sensor[4], solenoid4);
- solenoidState5 = solenoidStatus(sensor[5], solenoid5);
- solenoidState6 = solenoidStatus(sensor[6], solenoid6);
- solenoidState7 = solenoidStatus(sensor[7], solenoid7);
- solenoidState8 = solenoidStatus(sensor[8], solenoid8);
- solenoidState9 = solenoidStatus(sensor[9], solenoid9);
- solenoidState12 = solenoidStatus(sensor[10], solenoid10);
- solenoidState11 = solenoidStatus(sensor[11], solenoid11);
- solenoidState12 = solenoidStatus(sensor[12], solenoid12);
- solenoidState13 = solenoidStatus(sensor[13], solenoid13);
- solenoidState14 = solenoidStatus(sensor[14], solenoid14);
- solenoidState15 = solenoidStatus(sensor[15], solenoid15);
- }
- // Drive the pump and display status in html
- void drivePump() {
- if(solenoidState0 == "OFF" && solenoidState1 == "OFF" && solenoidState2 == "OFF" && solenoidState3 == "OFF" &&
- solenoidState4 == "OFF" && solenoidState5 == "OFF" && solenoidState6 == "OFF" && solenoidState7 == "OFF" &&
- solenoidState8 == "OFF" && solenoidState9 == "OFF" && solenoidState10 == "OFF" && solenoidState11 == "OFF" &&
- solenoidState12 == "OFF" && solenoidState13 == "OFF" && solenoidState14 == "OFF" && solenoidState15 == "OFF") {
- if(pumpstate == "ON") {
- pumpstate = "OFF";
- digitalWrite(PUMP,LOW);
- }
- }
- else {
- if(pumpstate == "OFF") {
- pumpstate = "ON";
- digitalWrite(PUMP,HIGH);
- }
- }
- }
- void handleXML(){
- XML="<?xml version='1.0'?>";
- XML+="<xml>";
- XML+="<pumpstate>";
- XML+= pumpstate;
- XML+="</pumpstate>";
- XML+="<sensor0>";
- XML+= sensor[0];
- XML+="</sensor0>";
- XML+="<sensor1>";
- XML+= sensor[1];
- XML+="</sensor1>";
- XML+="<sensor2>";
- XML+= sensor[2];
- XML+="</sensor2>";
- XML+="<sensor3>";
- XML+= sensor[3];
- XML+="</sensor3>";
- XML+="<sensor4>";
- XML+= sensor[4];
- XML+="</sensor4>";
- XML+="<sensor5>";
- XML+= sensor[5];
- XML+="</sensor5>";
- XML+="<sensor6>";
- XML+= sensor[6];
- XML+="</sensor6>";
- XML+="<sensor7>";
- XML+= sensor[7];
- XML+="</sensor7>";
- XML+="<sensor8>";
- XML+= sensor[8];
- XML+="</sensor8>";
- XML+="<sensor9>";
- XML+= sensor[9];
- XML+="</sensor9>";
- XML+="<sensor10>";
- XML+= sensor[10];
- XML+="</sensor10>";
- XML+="<sensor11>";
- XML+= sensor[11];
- XML+="</sensor11>";
- XML+="<sensor12>";
- XML+= sensor[12];
- XML+="</sensor12>";
- XML+="<sensor13>";
- XML+= sensor[13];
- XML+="</sensor13>";
- XML+="<sensor14>";
- XML+= sensor[14];
- XML+="</sensor14>";
- XML+="<sensor15>";
- XML+= sensor[15];
- XML+="</sensor15>";
- XML+="<solenoidState0>";
- XML+= solenoidState0;
- XML+="</solenoidState0>";
- XML+="<solenoidState1>";
- XML+= solenoidState1;
- XML+="</solenoidState1>";
- XML+="<solenoidState2>";
- XML+= solenoidState2;
- XML+="</solenoidState2>";
- XML+="<solenoidState3>";
- XML+= solenoidState3;
- XML+="</solenoidState3>";
- XML+="<solenoidState4>";
- XML+= solenoidState4;
- XML+="</solenoidState4>";
- XML+="<solenoidState5>";
- XML+= solenoidState5;
- XML+="</solenoidState5>";
- XML+="<solenoidState6>";
- XML+= solenoidState6;
- XML+="</solenoidState6>";
- XML+="<solenoidState7>";
- XML+= solenoidState7;
- XML+="</solenoidState7>";
- XML+="<solenoidState8>";
- XML+= solenoidState8;
- XML+="</solenoidState8>";
- XML+="<solenoidState9>";
- XML+= solenoidState9;
- XML+="</solenoidState9>";
- XML+="<solenoidState10>";
- XML+= solenoidState10;
- XML+="</solenoidState10>";
- XML+="<solenoidState11>";
- XML+= solenoidState11;
- XML+="</solenoidState11>";
- XML+="<solenoidState12>";
- XML+= solenoidState12;
- XML+="</solenoidState12>";
- XML+="<solenoidState13>";
- XML+= solenoidState13;
- XML+="</solenoidState13>";
- XML+="<solenoidState14>";
- XML+= solenoidState14;
- XML+="</solenoidState14>";
- XML+="<solenoidState15>";
- XML+= solenoidState15;
- XML+="</solenoidState15>";
- XML+="</xml>";
- server.send(200,"text/xml",XML);
- }
- void setup() {
- Serial.begin(115200);
- mcp.begin();
- pinMode(S0,OUTPUT); /* Define digital pin as output to the Multiplexer pin SO */
- pinMode(S1,OUTPUT); /* Define digital pin as output to the Multiplexer pin S1 */
- pinMode(S2,OUTPUT); /* Define digital pin as output to the Multiplexer pin S2 */
- pinMode(S3,OUTPUT); /* Define digital pin as output to the Multiplexer pin S3 */
- pinMode(SIG, INPUT); /* Define analog pin as input from the Multiplexer pin SIG */
- pinMode(PUMP,OUTPUT); /* Define digital pin os output to control pump */
- mcp.pinMode(solenoid0, OUTPUT);
- mcp.pinMode(solenoid1, OUTPUT);
- mcp.pinMode(solenoid2, OUTPUT);
- mcp.pinMode(solenoid3, OUTPUT);
- mcp.pinMode(solenoid4, OUTPUT);
- mcp.pinMode(solenoid5, OUTPUT);
- mcp.pinMode(solenoid6, OUTPUT);
- mcp.pinMode(solenoid7, OUTPUT);
- mcp.pinMode(solenoid8, OUTPUT);
- mcp.pinMode(solenoid9, OUTPUT);
- mcp.pinMode(solenoid10, OUTPUT);
- mcp.pinMode(solenoid11, OUTPUT);
- mcp.pinMode(solenoid12, OUTPUT);
- mcp.pinMode(solenoid13, OUTPUT);
- mcp.pinMode(solenoid14, OUTPUT);
- mcp.pinMode(solenoid15, OUTPUT);
- digitalWrite(PUMP,LOW);
- mcp.digitalWrite(solenoid0,LOW);
- mcp.digitalWrite(solenoid1,LOW);
- mcp.digitalWrite(solenoid2,LOW);
- mcp.digitalWrite(solenoid3,LOW);
- mcp.digitalWrite(solenoid4,LOW);
- mcp.digitalWrite(solenoid5,LOW);
- mcp.digitalWrite(solenoid6,LOW);
- mcp.digitalWrite(solenoid7,LOW);
- mcp.digitalWrite(solenoid8,LOW);
- mcp.digitalWrite(solenoid9,LOW);
- mcp.digitalWrite(solenoid10,LOW);
- mcp.digitalWrite(solenoid11,LOW);
- mcp.digitalWrite(solenoid12,LOW);
- mcp.digitalWrite(solenoid13,LOW);
- mcp.digitalWrite(solenoid14,LOW);
- mcp.digitalWrite(solenoid15,LOW);
- WiFiManager wifiManager;
- wifiManager.autoConnect("AutoConnectAP");
- Serial.println("Yourconnected...yeey :)");
- server.on("/", handleRoot);
- server.on("/reqEtatVariables",handleXML);
- server.onNotFound(handleNotFound); /* page not found */
- server.begin();
- Serial.println("HTTP server started");
- Serial.println(WiFi.localIP());
- }
- void loop() {
- server.handleClient();
- getSoilHumidity();
- driveSolenoid();
- drivePump();
- }
Add Comment
Please, Sign In to add comment