Datenübertragung: Raspberry -> UDP -> ESP8266 -> ??? -> Arduino Nano

Hallo Zusammen,

Ich baue mir gerade eine "Wörter-Uhr". Ich nutze keine RTC und kein NTP.

Die Uhrzeit überträgt ein Raspberry Pi zeitgesteuert alle 10 Sek per UDP.

An meiner Wörter-Uhr soll ein ESP8266 und ein Arduino Nano verbaut werden.

Über den seriellen Monitor sehe ich das am ESP8266 zB "18:50" ankommt!!!

Leider bekomme ich diese Daten nicht zum Nano :frowning:

Auf dem Nano haben ich zum Testen folgenden Sketch laufen um zu sehen ob überhaupt Daten ankommen....

Auf den ESP8266 (gekürzt)

void setup()
{
Serial.begin(9600);
Serial.println();

[...]
}

void loop()
{
int packetSize = Udp.parsePacket();
if (packetSize) {
int len = Udp.read(incomingPacket, 255);
if (len > 0) {
incomingPacket[len] = 0;
}
Serial.println(incomingPacket);
Serial.write(incomingPacket);
}
}

Sobald der Raspberry die Uhrzeit schickt wird diese im Monitor des ESP8266 zweimal angezeigt!

Aber auf dem Nano kommt leider nichts an, weiß jemand was ich falsch mache?

TX und RX sind über kreuz verbunden

Vielen Dank und viele Grüße

Markus

hi,

warum der nano? der esp alleine kann doch viel mehr.

komm vom gedanken los, daß der esp ein wlan-modul ist. er ist ein mikroprozessor wie der arduino, nur größer und schneller.

gruß stefan

Du schreibst die Infos vom ESP nach Serial und damit an den seriellen Monitor der IDE, wie Du ja auch sagst.
Wie soll das dann der NANO mitbekommen? Die serielle Schnittstelle ist kein Bus, sondern eine Verbindung zwischen 2 Teilen.
Nimm eine der anderen seriellen SST. Willst Du beide Richtungen betreiben oder nur Befehle an den NANO senden (dann würde ich TXD1 vorschlagen, sonst TX/RXD2)

Ansonsten denk mal über den Hinweis von Eisebär nach.

Gruß Tommy

Hi zusammen,

Dank für die Info Stefan... auf die Idee bin ich noch gar nicht gekommen. Das wäre natürlich perfekt !!!

Leider funktioniert es noch nicht.

Auf dem Nano gibt es keine Probleme.

Ich hab mich erstmal nur auf die LED Kette beschränkt. Die Wlan funktion wollte ich nachher einbauen. Erstmal so wenig Fehlerquellen wie möglich :slight_smile:

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include "LPD8806.h"
#include "SPI.h" // Comment out this line if using Trinket or Gemma

//LPD8806 strip = LPD8806(nLEDs, dataPin, clockPin);
LPD8806 strip = LPD8806(10, 0, 2);

void setup() {
Serial.begin(115200);
strip.begin();
strip.show();
}

void loop() {

strip.setPixelColor(0, strip.Color(0,10,0));
strip.setPixelColor(1, strip.Color(0,10,0));
strip.setPixelColor(2, strip.Color(0,0,10));
strip.setPixelColor(3, strip.Color(0,10,0));
strip.setPixelColor(4, strip.Color(0,10,0));
strip.setPixelColor(5, strip.Color(10,0,0));
strip.setPixelColor(6, strip.Color(10,0,0));
strip.setPixelColor(7, strip.Color(10,0,0));
strip.setPixelColor(8, strip.Color(0,0,10));
strip.setPixelColor(9, strip.Color(0,0,10));

strip.show();

}

GPIO0 = LED-Stripe Data
GPIO2 = LED-Stripe CLK
VDD = 3,3 Volt
GND = GND

LED-Stripe 5V = 5V
GND = GND

Für die Stromversorgung nutze ich ein Modul was 5 und 3.3 Volt kann.
Hab ich durchgemessen, passt wunderbar.

Dahinter ein 5V 2A Netzteil

Hat jemand eine Idee?

Viele Grüße
Markus

Hallo zusammen,

ich hab noch einiges probiert aber egal was ich probiert habe es funktioniert nicht,
die LED geben keinen Mux von sich.

Hat nicht doch jemand einen tipp für mich?

Viele Grüße
Markus

gi,

welchen ESP hast Du? mit USB oder ohne? kannst Du ihn überhaupt programmieren? also einen einfachen blink-sketch?

ich weiß nicht, ob die 3,3V für den stripe reichen. vielleicht ein kleiner logic-level-shifter...

gruß stefan

Hallo Stefan,

ich hab den ESP 01.

Er ist programmiert, empfängt auch UDP, aber die Leds bleiben dunkel.

Der selbe Code zur Ansteuerung der Leds funktionieren auch auf einem Nano.

Ich vermute mal das irgendwas mit den GPIOs nicht stimmt, dass die LED Kette kein Signal bekommt.

An welchen GPIOs muss ich den CLK und Data anschließen? Ist das GPIO0 und GPIO2 also 0 und 2 oder muss man sie d0urchzählen also 3 und 5.

Die LED Kette braucht 5V und bekommt diese von einem separaten Stromquelle...

Viele Grüße
Markus

Hat der ESP01 nicht nur einen frei verfügbaren Pin?

Hier werden mehr nutzbar ESP-01 and ESP-01S How program and use the Pins and Leds

hi,

ist Deine library für den ESP geeignet? bekommst Du irgendeinen beispiel-sketch der library auf den ESP, wo dann was leuchtet?

gruß stefan

@Whandall: Soweit ich verstanden habe stehen GPIO0 und GPIO2 zur Verfügung

@Stefan: Nein, ein Beispiel für die LED Stripes gibt es nicht. Ich weiß es leider nicht ob er geeignet ist.
Hatte es so verstanden, da du oben ja geschrieben hast dass das ESP wie ein Arduino ist.

Der ESP liefert 3,3V. Ob das zur Ansteuerung Deiner Peripherie genügt, wissen wie nicht.

Gruß Tommy

I’m using GPIO12 on the ESP-12 – I’ve also used GPIO4, GPIO5 and there’s no reason that I can think of why you can’t use GPIO0 on an ESP-01.

Der benutzt aber ws2812b mit Daten und Takt über einen Pin.

Wie oben schon zweimal geschrieben, hat die LED-Kette eine eigene 5 Volt Stromversorgung.

An der Kette oder am Script liegt es nicht, dass funktioniert alles auf einem Nano!

Nur das ESP verweigert seinen Dienst. Ich gehe davon aus dass die LED-Kette einfach keine Daten bekommt welche LEDs wie geschalter werden sollen, also bleiben alle aus

Hat den noch nie einer eine LPD8806 LED-Kette direkt an einen ESP01 angeschlossen?

Viele Grüße
Markus

PS @ Whandall: Die LPS8806 wird soweit ich weiß ganz anders angesteuert.

Du könntest einen anderen ESP benutzen, dann hast du mehr Pins die garantiert frei sind.

Leider hab ich keinen anderen ESP zur Hand

Hat den jemand schon mal am ESP01 zwei GPIOs (als Ausgang) benutzt?

Was dahinter hängt wäre ja erstmal egal, nur um zu wissen dass es geht.

Beim Nano wird CLK und DATA wie folgt festgelegt

//LPD8806 strip = LPD8806(nLEDs, dataPin, clockPin);

LPD8806 strip = LPD8806(10, 2, 3); // Also PIN D2 und D3

Wie sollte sowas den bei einen ESP aussehen?

Angeschlossen an GPIO0 und GPIO2

LPD8806 strip = LPD8806(10, 0, 2);

Oder abgezählt also PIN3 und PIN5

LPD8806 strip = LPD8806(10, 3, 5);

Hab auch irgendwo gesehen, dass man die GPIOs als Ausgang festlegen kann

pinMode(0, OUTPUT);
pinMode(2, OUTPUT);

oder

pinMode(3, OUTPUT);
pinMode(5, OUTPUT);

Markus1979:
Hat den jemand schon mal am ESP01 zwei GPIOs (als Ausgang) benutzt?

Was dahinter hängt wäre ja erstmal egal, nur um zu wissen dass es geht.

Ja. Hab ich dir schon gezeigt.

Whandall:
Hier werden mehr nutzbar ESP-01 and ESP-01S How program and use the Pins and Leds