Hilfe. Ethernet gegen ESP8622 ersetzen

Brauche bitte mal Eure Hilfe.
habe ein Sketch für eine Wetterstation die mit einem Ethernet Shield funktioniert.
Leider habe ich immer wieder Ärger mit meinem repeater.

Möchte nun das Shield austauschen gegen ein EPS8622 WIFI.

Diesen habe ich an Pin 10 Tx und Pin 11 Rx an dem Uno angeschlossen.

Bekomme aber einfach den Sketch nicht umgewandelt.

Kann mir da bitte jemand helfen ?

#include <Ethernet.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
#include "DHT.h"

//////////////////////////-- BASIC CONFIGURATION --///////////////////////////////////
#define DHTPIN 2  //PIN of the DHT sensor
#define DHTTYPE DHT22 //Type of the DHT sensor
String id = "00"; //ID of the Weatherstation (001 = own server)
String key = "BR"; //Masterkey of the weatherstation
byte mac[] = { 
  0xad,};
  //MAC Adress of the weatherstation
 const char Serverurl[] ="s1-relay";



const int windPin = 3;          
const float windFactor = 2.4;   
const int measureTime = 3;      
volatile unsigned int windCounter = 0;   
float windSpeed = 0.0;
unsigned long time = 0;
void countWind() {
  windCounter ++; 
}


EthernetClient client;
Adafruit_BMP085 bmp;
DHT dht(DHTPIN, DHTTYPE);

char inString[32]; 
int stringPos = 0; 
boolean startRead = false;

void setup(){
  Serial.begin(9600);
  dht.begin();
  Ethernet.begin(mac);
  delay(1000);
  if (!bmp.begin()) {
    Serial.println("BMP085 error, check wiring!");
  }
}

void loop(){
  
  measureandsend();
  if(millis() > 3600000){
    autoreset();
  }
  delay(52000); //Interval (Default is every minute)
}


void measureandsend(){

  windCounter = 0;
  time = millis();
  attachInterrupt(1,countWind,RISING);
  delay(1000 * measureTime);
  detachInterrupt(1);
  time = (millis() - time) / 1000;
  windSpeed = (float)windCounter / (float)measureTime * windFactor;

  float humidity = dht.readHumidity();

  String data;
  data+="";
  data+="text=Temp~Preasure~Humidity~Windspeed~Uptime";
  data+="&submit=Submit"; 
  
  Serial.print("Humidity: ");
  Serial.println(humidity);
  Serial.print("Wind: ");
  Serial.println(windSpeed);
  Serial.print("Temp: ");
  Serial.println(bmp.readTemperature());
  Serial.print("Pressure: ");
  Serial.println(bmp.readPressure()/100);
  

  if (client.connect(Serverurl,80)) {
    Serial.println("Start transmission!");
    client.println("POST /uplink.php HTTP/1.1");
    client.print("Host: ");
    client.println(Serverurl);
    client.println("Content-Type: application/x");
    client.println("Connection: close");
    client.print("Content-Length: ");
    client.println(data.length());
    client.println();
    client.print("text=");
    client.print(id);
    client.print(";");
    client.print(key);
    client.print(";");
    client.print(bmp.readTemperature());
    client.print(";");
    client.print(bmp.readPressure()/100);
    client.print(";");
    client.print(humidity);
    client.print(";");
    client.print(windSpeed);
    client.print(";");
    client.print(millis()/1000);
    client.print(";");
    client.print("&submit=Submit");
    client.println();

  }
  delay(5000);

  if (client.connected()) {
    client.stop();
    Serial.println("Transmission succesful!");
  }
  else{
    Serial.println("Transmission error!");
  }
}


void autoreset(){
  pinMode(4, OUTPUT);
  digitalWrite(4, HIGH); 
  Serial.println("RESET");
}

Danke

Wollte das include Ethernet mit
#include <SoftwareSerial.h>
SoftwareSerial softSerial(10,11); // RX, TX

ersetzen

Nur mal so ganz nebenbei, es wäre für alle Beteiligten und auch Suchende gut, wenn du nach unseren Vorschlägen (z.B. hier) auch mal ein Ergebnis liefern könntest.

Das ist auch der Sinn des Forums.

Habe jetzt drauf geantwortet. Hatte kein Internet. Fritzbox ist zu heiss geworden. Sorry

Hallo,

Vorweg, kannst du Fehler in deiner Verdrahtung ausschließen? Ausreichende Stromversorgung für den esp, lvl-shifter, ch-p, etc?
Um welchen esp genau handelt es sich?

edit: hab jetzt erst geschnallt, dass du vermutlich ein "shield" verwendest, damit hat sich dieser post entsprechend erübrigt

ist das von dir eingesetzte Wifi Shield den Code kompatibel mit dem Ethernet Shield?

würde mich schon sehr wundern

Selbst wenn es sich um ein Shield handelt wird es doch trotzdem über AT Comands gesteuert, oder?
Ein Link zu deiner Hardware wäre nicht schlecht.

Ich habe das Uno und den hier http://www.mikrocontroller.net/articles/ESP8266

Zusätzlich noch ein Nodemcu.

Muss nur noch sehen, welches am besten und wenig Änderungen läuft

Der jetzige ist ein Mega mit Ethernet-Shield.
Aber leider bricht die Verbindung vom Repeater immer wieder ab.
Im selben Raum habe ich noch einen Nodemcu am laufen , welches immer die Verbindung hält, deshalb der Umbau von Ethernet auf WIFI

Seltsam, normalerweise ist LAN ausfallsicherer als WLAN :slight_smile:

Wenn du mit dem Nodemcu gut klar kommst mach es doch mit dem.

Ja das ist richtig. Problem ist. Box ist im Keller da alle Leitungen hin laufen.
Am Dachboden habe ich den Repeater aufgebaut, der auch einen Lan anschluss hat den ich benutze.
Damit läuft die Wetterstation.

Trotzdem hat der Netgear Repeater immer 1 mal am Tag einen Aussetzer und verbindet sich nicht mehr mit der Box.

Ich verstehe diesen Autoreset nicht so ganz. Du schaltest damit dein Ethernetshield vom Bus weg und nie wieder zu, warum?

PS: Deine Delay von über einer Minute sind auch nicht gerade optimal bei einer dauerhaften Ethernetverbindung

Scherheinz:
Ich verstehe diesen Autoreset nicht so ganz. Du schaltest damit dein Ethernetshield vom Bus weg und nie wieder zu, warum?

PS: Deine Delay von über einer Minute sind auch nicht gerade optimal bei einer dauerhaften Ethernetverbindung

Stimmt auch. Den Delay könnte ich viel kürzer machen, danke für den Hinweis

Am besten Delay ganz verbannen. Beispiele dafür gibt es hier:

.... und dein Autoreset auch!! :slight_smile:

Scherheinz:
Am besten Delay ganz verbannen. Beispiele dafür gibt es hier:

https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

Anleitung: Endlicher Automat mit millis() - Deutsch - Arduino Forum

.... und dein Autoreset auch!! :slight_smile:

Dann habe ich einen Gedankenfehler mit dem Reset gemacht.
wusste nicht dass der vom Bus komplett getrennt. Verdammt. Man lernt nie aus