Arduino + ESP8266 von Grund auf neu am Beispiel eines WLAN-Thermometers, Teil eins

    Teil 1. ESP8266 vorbereiten

    Warum dieser Artikel? Auf dem Hub gibt es bereits eine Reihe von Artikeln über die Verwendung von ESP in verschiedenen Konfigurationen, aber aus irgendeinem Grund ohne Details darüber, wie alles verbunden, geflasht und programmiert ist. Wie "Ich habe ein ESP, zwei Fingerbatterien, ein DHT22 genommen, es in eine Schachtel gelegt, die Uhr geschüttelt und das Thermometer ist fertig!". Das Ergebnis ist seltsam: Wer bereits mit ESP arbeitet, sieht nichts Ungewöhnliches in dem, was getan wurde, und wer lernen will, weiß nicht, wo er anfangen soll. Aus diesem Grund habe ich beschlossen, einen ausführlichen Artikel darüber zu schreiben, wie das ESP verbunden und geflasht wird, wie es mit dem Arduino und der Außenwelt verbunden wird und auf welche Probleme ich dabei gestoßen bin. Ich stelle nur Links zu Aliexpress zur Verfügung, um die Reihenfolge der Preise und das Erscheinungsbild der Komponenten darzustellen.

    Ich hatte also zwei Mikrocontroller, sieben verschiedene Sensoren, fünf Netzteile, einen DHT22-Temperatursensor und eine Vielzahl von Drähten aller Art und Farben sowie unzählige Widerstände, Kondensatoren und Dioden. Nicht, dass all dies für das Thermometer notwendig gewesen wäre, aber wenn Sie sich bereits mit Mikroelektronik befasst haben, wird es schwierig, damit aufzuhören.



    Stromversorgung

    Für den Betrieb des ESP8266 werden eine Spannung von 3,3 V und ein Strom von mindestens 300 mA benötigt. Leider ist Arduino Uno nicht in der Lage, solchen Strom bereitzustellen, da es nicht in der Lage ist, USB-UART-Adapter (Programmierer) wie FT232RL bereitzustellen- Ihre Grenze liegt bei ca. 50mA. Sie müssen also eine separate Mahlzeit organisieren. Und es wäre besser, wenn Arduino auch mit 3,3 V arbeiten würde, um Probleme wie "Ich habe ein Fünf-Volt-Signal an den Ausgang des RX-Moduls des ESP angelegt, warum riecht es nach Kunststoff."

    Es gibt drei Lösungen.

    1. Kaufen Sie ein fertiges 3,3-V -Netzteil .

    2. Kaufen Sie ein vorgefertigtes Modul mit einem Spannungsregler, der 5 V bis 3,3 V senkt. Vielleicht ist dies die bequemste Option.

    3. Bauen Sie das Modul selbst aus dem AMS1117-Controller und einem 22uF-Tantalkondensator zusammen.

    Ich habe mich für den dritten Punkt entschieden, weil ich oft 3,3 V benötige, gierig bin und gerne Regler direkt in Netzteile einbaue.

    Mit AMS1117 ist alles ganz einfach: Wenn Sie den Text nach oben stellen, steigt die Spannung an den Beinen von links nach rechts: 0 (Gnd), 3,3 V (Vout), 5 V (Vin).
    Zwischen Null und Leistung wird ein 22-mkF-Tantalkondensator benötigt ( was passiert also laut Anleitung , wenn ich einen elektrolytischen einsetze - habe ich nicht überprüft). Tantal SMD-Kondensator und wo der Streifen. Ein bisschen monströses Löten von SMD-Bauteilen, die für eine solche Barbarei völlig ungeeignet sind und:

    Bild



    Überprüfen Sie unbedingt die Ausgangsspannung. Wenn die Spannung deutlich unter 3,3 V (z. B. 1,17 V) liegt, lassen Sie den Regler nach dem Löten abkühlen und überprüfen Sie die Kontakte. Wenn Sie den Kondensator auf mehr als 22uF einstellen, kann das Multimeter eine höhere Spannung anzeigen.

    Warum genau AMS1117? Es ist weit verbreitet. Sie können es fast überall finden, auch in Arduino Uno, in der Regel kostet es AMS1117-5.0.
    Wenn Sie etwas von ähnlicher Größe und Preis kennen, das noch einfacher zu bedienen ist, schreiben Sie uns bitte.

    Ein wichtiger Punkt. Ich weiß nicht warum, aber AMS1117 ist äußerst launisch über die Qualität der Verbindungen. Kontakte müssen zuverlässig sein. Besser - gelötet. Andernfalls werden in Tests 3,3 V erzeugt, aber unter Last wird nichts erzeugt.

    Anschließen des ESP8266

    Ich habe mich für das Modell 07 entschieden, da es einen hervorragenden Metallschirm hat, der als Schutz vor Störungen, mechanischer Beanspruchung und als Kühler fungiert. Letzteres macht den Unterschied zwischen einem verbrannten und einem einfach beheizten Modul aus. Zusätzlich gibt es eine Buchse für eine externe Antenne.

    Um den Chip zu starten, müssen Sie VCC und CH_P über einen 10kΩ-Widerstand verbinden. Ist dies nicht der Fall, reicht einer der Bereiche von 1 bis 20 kOhm aus. Speziell für das Modell 07 ist es weiterhin erforderlich, dass der GPIO15 (der am nächsten an GND liegt) "auf dem Boden" ist (dies ist auf dem Bild nicht sichtbar, da die Verbindung auf der anderen Seite besteht).



    Jetzt nehmen wir den USB-UART-Adapter, schalten ihn auf 3,3 V und verbinden RX mit TX, TX mit RX und GND mit Masse (ich habe eine instabile Übertragung ohne dies). Wenn Sie nicht auf 3,3 V umschalten können, können Sie den einfachsten Widerstandsspannungsteiler verwenden: Verbinden Sie den ESP RX mit dem TX-Adapter mit einem Widerstand von 1 kOhm und den ESP RX mit einer Erdung von 2 kOhm. Es gibt viel komplexere und zuverlässigere Möglichkeiten , 3,3 V und 5 V anzuschließen. In diesem Fall reicht dies jedoch aus.



    Und wir verbinden mit einer Geschwindigkeit von 9600 auf dem gewünschten COM-Port (Sie können es im Gerätemanager sehen).


    Ich benutze SecureCRT, Putty ist auch in Ordnung, und Linux-Kenner wissen bereits, was zu tun ist und wo sie es sehen müssen.


    (AT + RST lädt den Chip neu.)

    Wenn nichts passiert - Ausschalten - Einschalten, wenn nichts passiert - Überprüfen Sie die TX / RX-Korrespondenz, versuchen Sie, sie neu anzuordnen oder löten Sie sie auf den Chip.

    Manchmal ist der Chip während Mobbing Experimente gefrieren und dann muss es sein stromlos, einschließlich Ausschalten und der Adapter (zum Beispiel, ziehen sie aus dem USB), als Chip selbst genug zu essen Krümel zu hart stumpf kommen und nicht die Arbeit.

    Manchmal hängen Tricks mit einem Adapter einen USB-Port. Sie können einen anderen USB-Anschluss als temporäre Lösung verwenden. Im Allgemeinen ist es jedoch besser, den Computer neu zu starten.

    Manchmal ändert sich dadurch die Nummer des COM-Anschlusses. Unter Linux kann dies mit udev gelöst werden.

    Wenn anstelle von Text Müll kommt, überprüfen Sie die Geschwindigkeitseinstellungen. Einige alte Chips arbeiten mit 115200.

    Zu Beginn erwärmt sich der Chip, aber wenn er sehr heiß ist und sich weiter erwärmt, schalten Sie ihn aus und überprüfen Sie alle Verbindungen. Damit + 3,3V nicht auf das Gehäuse kommen, damit 5V gar nicht dazu kommen, damit die "Masse" des Adapters mit der "Masse" des Chips verbunden wird. Modelle mit Metallabschirmung sind sehr schwer zu brennen (aber nichts ist unmöglich), und sie beklagen sich über Modelle ohne Abschirmung und sagen, dass selbst ein kleiner Fehler der letzte im Leben des Chips sein kann. Aber ich habe es nicht überprüft.

    Firmware

    Meine Wahl ist NodeMCU . Sie hat Probleme mit dem Speicher und der Hardwareunterstützung, aber dies wird immer wieder durch die Einfachheit des Codes und die Leichtigkeit des Debuggens bezahlt. NodeMCU Flasher und LuaLoader

    werden ebenfalls benötigt (letzteres ist optional, es gibt andere Clients für die Arbeit mit dieser Firmware). Schalten Sie den Chip aus. Wir verbinden GPIO0 mit dem Boden und schalten den Chip ein: Wenn nichts passiert und die Felder AP MAC / STA MAC leer sind, überprüfen Sie erneut, ob GPIO0 am Boden ist. Wenn die Firmware gestartet wurde, aber abgestürzt ist - sehen Sie in der Registerkarte "Protokoll" nach, aus irgendeinem Grund habe ich mich ausdrücklich geweigert, diesen Chip auf FT232RL zu flashen , aber es wurde problemlos auf PL2303HX geflasht







    PL2303HX hat in dieser Version keinen Schalter auf 3,3 V. Um ihn zu verwenden, müssen Sie das Kunststoffgehäuse öffnen und den Draht von 5 V auf 3,3 V löten. Es gibt Optionen mit fünf Ausgängen : 3,3, 5, TX, RX, Gnd.


    Bitte beachten Sie: STA MAC hat sich geändert. Ich vermute, dass der Blinker es falsch angezeigt hat, aber eine Überprüfung ist erforderlich.

    Um Energie und Nerven zu sparen, können Sie eine fertige oder halbfertige Version nehmen.

    Es gibt Einwegadapter mit praktischer Verkabelung.
    Es sind bereit für die Firmware .
    Es gibt Optionen mit einfachen Kits und komplizierteren - ESP8266-EVB
    Es gibt mit einem vorgefertigten USB-Adapter - NodeMCU Development Board. Darunter tun sogar einige Schilde.

    Wenn Sie, wie ich, fertige Lösungen nicht zu sehr mögen, dann empfehle ich, alles mit einer Marge zu nehmen, da die Erfahrung direkt proportional zur Anzahl der verbrannten Komponenten sein soll.

    Wertvolle Links von Kommentaren:
    NodeMCU Custom Builds
    Programming ESP8266-EVB mit Arduino IDE
    Erklärung über Tantalkondensator.

    Update: "Programmierer" im Text durch "USB-UART-Adapter" oder nur "Adapter" ersetzt. Meiner Erfahrung nach ist der Begriff „Programmieren“ wird verwendet , häufiger, aber vielleicht «USB-UART Adapter“ genauer ist.

    Nur registrierte Benutzer können an der Umfrage teilnehmen. Bitte komm rein .

    Lohnt es sich, etwas zu ändern?

    • 80,5% mehr Text und Bilder 124
    • 26,6% Video verarbeiten 41
    • 22,7% Weitere Links 35
    • 12,9% prägnanter als 20

    Benötige ich Links zu Komponenten in Geschäften?

    • 66,5% Ja, das ist eindeutig 145
    • 4,1% Es lohnt sich, sie durch Links zu Screenshots 9 zu ersetzen
    • 22,4% Nicht erforderlich, aber nicht störend 49
    • 6,8% nicht erforderlich 15

    Jetzt auch beliebt: