Outils pour utilisateurs

Outils du site


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;
  }
}

ana_wifi_esp8266.ino

arduino/solar_wifi.txt · Dernière modification: 2017/04/11 15:13 (modification externe)