arduino:solar_wifi
Envois les valeurs analogique sur un adresse wifi
- Arduino nano pro en 5V
- led sur d13 , et R 220Ω sur masse
- de 1 a 6 entrees analogique ex LDR sur A0-5
- ESP8266 sur RX/TX de l'arduino !! important , ne fonctionne pas bien en softmodem !
- un moniteur optionnel sur d10 d11
- une alimentation 5V ET 3,3V base sur le 78L33 alim5-3
//# ESP8266 envoi des entrees analogies // 13 led on si ok // envoi toutes les seconde #include<stdlib.h> #define SSID "SNHACK" #define PASS "0123456789" #define IP "192.168.1.33" // snhack ip reception //#define IP "224.1.2.3" // snhack ip reception #define PORT "9009" String GET = "/SolarWifi1/"; #define MAXADC 5 // le port moniteur ne peut etre sur 0 et 1 ! //#include <SoftwareSerial.h> //SoftwareSerial monitor(10, 11); // RX, TX void setup() { pinMode(12, OUTPUT); digitalWrite(12, LOW); Serial.begin(9600); // 115200 pour le module olimex et le firmware de base // monitor.begin(9600); Serial.println("AT+RST"); delay(5000); Serial.println("AT"); if(Serial.find("OK")){ digitalWrite(12, HIGH); delay(1000); digitalWrite(12, LOW); connectWiFi(); } } void loop(){ int i; int adcs[MAXADC]; digitalWrite(12, HIGH); delay(1000); String valeurs = GET; for(i=0;i<MAXADC;++i){ valeurs += String(analogRead(i)) ; valeurs+=" "; } Serial.print("AT+CIPSEND="); Serial.println(valeurs.length()); if(Serial.find(">")){ Serial.println(valeurs); // monitor.println(valeurs); }else{ Serial.println("AT+CIPCLOSE"); connectWiFi(); // monitor.println("Close"); } digitalWrite(12, LOW); } boolean connectWiFi(){ digitalWrite(12, LOW); Serial.println("AT+CWMODE=1"); delay(2000); String cmd="AT+CWJAP=\""; cmd+=SSID; cmd+="\",\""; cmd+=PASS; cmd+="\""; Serial.println(cmd); // monitor.println(cmd); delay(2000); if(Serial.find("OK")){ digitalWrite(12, HIGH); // monitor.println("OK"); delay(5000); String cmd = "AT+CIPSTART=\"UDP\",\""; cmd += IP; cmd += "\","; cmd += PORT; Serial.println(cmd); // monitor.println(cmd); delay(2000); if(Serial.find("OK")){ digitalWrite(12, HIGH); // monitor.println("OK"); }else{ // monitor.println("NO"); digitalWrite(12, LOW); delay(5000); } return true; }else{ digitalWrite(12, LOW); // monitor.println("NO"); return false; } }
arduino/solar_wifi.txt · Dernière modification : 2024/02/09 17:10 de 127.0.0.1