Gast
#4492331
Ich möchte gerne ein ESP-01 Modul (=ESP8266 mit AT Firmware) mit einem Arduino Nano clone (=ATmega328 mit USB-UART) verwenden. Das Modul soll über WLAN Kommandos vom Smartphone empfangen und Sachen ferngesteuert an/aus zu schalten. Und das Smartphone soll den Zustand von ein paar digitalen Eingängen abfragen können. Ich möchte mindestens 100 Kommandos pro Sekunde ausführen können - mein angestrebtes Ziel sind 1000. Den USB Port brauche ich zum Flashen und um Debug Meldungen auszugeben. Ein zweiter serieller Port ist leider nicht vorhanden. Deswegen habe ich mir folgende Lösung ausgedacht:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Vorgegeben ist: CH341 und Atmega werden mit 5V versorgt, das ESP Modul aber nur mit 3,3V. Die 1k Widerstände befinden sich auf dem Arduino Modul (wieso eigentlich der obere?). Das ESP Modul muss mit 115200 Baud angesprochen werden. Will ich nicht ändern. Ich habe mir dabei folgendes gedacht: Mit PD3 kann ich den ESP resetten, und außerdem sorge ich durch den Pull-Up Widerstand dafür, dass der ESP inaktiv ist, wenn ich den Atmega über seinen Bootloader programmiere. Meine Software kann über TxD Debug Meldungen in Richtung PC ausgeben, und sie kann per Soft-Seriell über PD4 Kommandos and den ESP senden. Der ATmega empfängt normalerweise nur Antworten und Ereignisse vom ESP. Solange ich vom PC aus nicht dazwischen plappere, sollte das funktionieren. Richtig? Der Spannungsteiler R3 und R4 passt den Pegel für den RxD Eingang des ESP an. Die Diode D2 und R2 sorgen dafür, dass High pegel am TxD Pin des ESP Modul nicht zu hoch sind. Zur Spannungsversorgung des ESP Modul werde ich einen "externen" 3,3V LDO verwenden, der interne Regler im CH341 Chip reicht dazu wohl nicht aus. Kann das so klappen, oder habe ich noch was wichtiges vergessen?