Servus,
möchte ein paar Sensorwerte zu Thingspeak übertragen. Der Rest vom Kurzarbeitprojekt ist längst fertig. Seit 2 Wochen hänge ich aber an dem Thema ESP8266-01S und Thingspeak fest. Hab zig Sachen probiert, gelesen, zu wenig geschlafen und bekomme trotzdem keine Werte an TS übertragen. Jetzt gebe ich W.O. und möchte Euch Profis um Rat fragen...
Das Thema ist 1000mal im Internet beschrieben, aber nichts zielführendes. Leider habe ich irgendeinen Fehler im System, den ich nicht diagnostizieren kann.
Am Foto ist das Setup zu sehen. ESP8266-TX ist über Softserial auf 2 verbunden. ESP8266-RX ist auf 3 verbunden.
Konfiguration:
ESP-8266-01S:
Der ESP hat die 1.6.0, da die NonOS nur bis 1.6.0 bis 1 MB Flash unterstützt. Über FTDI und AT-Kommandos habe ich schon nett mit dem ESP geplaudert. Das ESP ist auf 9600 konfiguriert, nimmt beim Startup Verbindung zum WLAN auf. Das funktioniert soweit.
Fehlerbeschreibung:
Die TX-LED am Uno blinkt, die LED am ESP8266-01S hat geblinkt, jedoch nichts in TS.
Serialmonitor gibt ein Timeout bei der Verbindung aus.
Ich vermute den Logic-Level - Converter bzw. dessen externe Stromversorgung. Die externe Versorgung liefert 3,3 bzw. 5 V gem. Messgerät.
Ist die WiFiEsp Bibliothek die richtige für diese Verdrahtung?
Habt Ihr einen Tipp für den Code bzw. ist ein Fehler in der Verdrahtung?
Grüße, vielen Dank im Voraus für jede Hilfe,
Pucki
Code:
#include <WiFiEsp.h>
#include <WiFiEspClient.h>
#include <WiFiEspServer.h>
#include <WiFiEspUdp.h>
#include <ThingSpeak.h>
#include <SoftwareSerial.h>
SoftwareSerial serialwifi(2,3); //RX,TX
int vcc = 1;
unsigned long Channel = 12345678;
const char * WriteAPIKey = "123";
char ssid[] = "abc";
char pass[] = "xyz";
int status = WL_IDLE_STATUS; // the Wifi radio's status für attempt to connect to WiFi network
WiFiEspClient client; //für Thingspeak zuordnung
void setup()
{
Serial.begin(115200);
serialwifi.begin(9600);
Serial.print("Searching for ESP8266...");
// initialize ESP module
WiFi.init(&serialwifi);
delay(5000);
WiFi.begin(ssid, pass);
delay(5000);
/*
// check for the presence of the shield
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
// don't continue
while (true);
}
// attempt to connect to WiFi network
while (status != WL_CONNECTED)
{
Serial.print("Attempting to connect to WPA SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network
status = WiFi.begin(ssid, pass);
}
// you're connected now, so print out the data
Serial.println("You're connected to the network");
// print your WiFi shield's IP address
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// print the SSID of the network you're attached to
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// print the received signal strength
long rssi = WiFi.RSSI();
Serial.print("Signal strength (RSSI): ");
Serial.println(rssi);
*/
ThingSpeak.begin(client); // Initialize ThingSpeak
Serial.print("Void Setup erledigt");
delay(5000);
}
void loop()
{
vcc = random(100);
ThingSpeak.writeField(Channel, 1, vcc, WriteAPIKey);
Serial.print("Daten an Thingspeak gesendet...");
delay(20000); // Wait 20 seconds to update the channel again
}