1. Diese Seite verwendet Cookies. Wenn Sie sich weiterhin auf dieser Seite aufhalten, akzeptieren Sie unseren Einsatz von Cookies. Weitere Informationen
  2. Kandidat werden bei Die Modellbauer
    Information ausblenden

ESP 8266 - der etwas andere Arduino

Dieses Thema im Forum "Arduino, RaspberryPi und Co." wurde erstellt von BAXL, 11. September 2019.

  1. BAXL

    BAXL Moderator Mitarbeiter

    Zum Thema Arduino findet sich schon einiges hier im Forum. Programmierung, Sensoren usw.. Es gibt aber noch mehr in der Welt der kleinen Steuercomputer. Ein weiter interessanter Vetreter dieser Gattung ist ein ESP8266. Das sind ganz tolle geräte, weil die zum einen einen Microprozessor haben, der wesentlich leistungsfähiger als der Atmel auf dem Arduino ist und wir haben viel mehr Speicherplatz für Programme usw. zu Verfügung. Die Zahlen möchte ich im Einzelnen an dieser Stelle noch nicht auflisten, weil es mir um etwas anderes geht. Der ESP8266 ist recht kontaktfreudig, das heißt, man kann von Hause aus drahtlos mit ihm kommunizieren (natürlich gerade nicht, wenn man ihm ein Programm verpasst). Ich meine damit eine WLAN -Kommunikation.

    Warum "der etwas andere Arduino"?
    Ganz einfach, zum Programmieren verwende ich dieselbe Programmierumgebung und dieselben Programmbefehle, wie für einen Arduino. Das größte Verständnisproblem (zumindest bei mir) ist das Wissen, wie ich dem Ding beibringe per WLAN mit mir zu kommunizieren, d.h. wie sage ich ihm, dass er z.B. ein Relais einschalten soll, oder wie erfahre ich, dass ein Bewegungsmelder eine Bewegung erkannt hat.

    Wieder Mal durch Zufall bin ich auf ein paar tolle YT-Videos gestoßen, in denen einer sehr einfach und verständlich und in überschaubaren Schritten erklärt wie das funktioniert. Man sollte allerdings vorher bereits selbstständig ein paar Codezeilen in einem Arduino geschrieben haben, dann fällt es leichter.

    Hier die Videos.









    Der Kanal ist von makesmart :thumbsup:

    Hier ist noch ein Link zu einer Seite von den Youtubern. Dort ist einiges noch einmal zum Nachlesen erklärt, leider sind die Programmbeispiele dort nicht als Code verfügbar. Man muß das wohl oder übel im Video ablesen und von Hand eintippen. Wenn ich Zeit habe, mache ich das vielleicht mal und stelle den Code in kopierbarer Form hier in das Thema. Wenn ich Zeit habe....

    Wer suchet, der findet. Offensichtlich haben die Burschen auch nur abgeschrieben, allerdings schrittweise gut erklärt. Wenn ihr den Code sucht, guckt mal hier. Der komplette Code ist leider so überfrachtet, dass man die wesentlichen Teile nur schwer erkennt.
     
    Zuletzt bearbeitet: 11. September 2019
  2. DFENCE

    DFENCE Mitglied

    Für den ESP wird auch Phyton als Programmiersprache interessant und verwendet, da die Kiste ja ebenso ein Webserver, FTP Server und web-stack fest Onboard hat inkl 1-4mb Flash Ram.

    Gibt auch noch den Großen Bruder ESP32, da sitzt dann ein Dualcore drin, samt Bluetooth 4.1 und Wlan B/G/N

    Man sollt noch erwähnen das es den ESP8266 als Verschiedene Versionen gibt, der hier gezeigte ist ein WIMEOS D1 MINI. Die teile gibts z.b auch als AMICA LUA und haben um einiges mehr I/O Ports.

    Hier mal 3 Stück
    ESP32
    AMICA LUA 1.0
    Wimeos D1 Mini

    esps.jpg
     
    Crazy virus 4.0 und BlackbirdXL1 gefällt das.
  3. BAXL

    BAXL Moderator Mitarbeiter

    Guter Hinweis. Ich habe zuhause ein etwas größeres Modell davon liegen, aber noch nie wirklich was damit gemacht. Durch die strukturierten und verständlichen Videos werde ich mich doch mal darüber her machen.

    Was hast Du bereits damit gemacht? Kannst Du evtl. nachvollziehbare Beispiele vorstellen, gerne auch mit den zugehörigen Sketches. :)
     
  4. DFENCE

    DFENCE Mitglied

    Ich hab z.b meine komplette Ambilight Beleuchtung mit ESP8266 Realisiert, Raspberry PI dienst als Server und schickt per Wlan die Daten an die Einzelnen ESP zur Steuerung der LED´s





    Sketch is allerdings problematisch, das ist zu arg auf mein kram programmiert, ich kann bei Interesse aber helfen die Standart Demo Sketches sind ja immer bei den Bibliotheken.


    Im Grunde ist das Teil von meinem Hausautomatisierungs Projekt, die ESP´s nutze ich zur Vernetzung von Temperatur Sensoren, Helligkeitssensoren, Abstandsensoren und eben zur Ansteuerung der Wohnraumbeleuchtung. Das Ambilight is quasi der Prototyp.

    Als LED´s kommen bei mir Digitale LEDßs zum einsatz. WS2811 und WS2812b.

    Was ich auch schon mit dem ESP8622 gemacht hab, ein Lauflicht gebaut, bzw ein Display selbst gebaut mit Digital LED´s

    Das Lauflicht is ganz Banal, ich hab 4 LED Ketten mit jeweils 50 LED´s in nen Stück Styropor gesteckt




    Bei Interesse ich muss mal den Sketch raussuchen, das war auch ne Abwandlung von einem Demo Sketch, allerdings nen Arduino hat hier schon nicht mehr genug Leistung, mehr als 200 LED´s sind auch für nen ESP auf Standart takt 80mhz schon hart an der Grenze ( 30 Bilder pro Sekunde ) übertaktet auf 120mhz gehts.
    ( den ESP kann man ab Werk übertakten beim Flashen von 80mhz auf 120mhz )

    hier z.b das Display, ist mit 150*150 Pixel aufgelöst läuft bei 30fps. Komplexe GIF´s sind nur mit nem ESP32 möglich, alternativ für Videos nen Arduino DUE,


    Und hier als Lichsteuerung mit eigener Webseite realisiert über den Webstack und Webserver der verbaut ist im ESP




    Was noch ganz wichtig ist zu erwähnen, die ESP´s sind Elektrisch NICHT Kompatibel zu Arduino ! Die Benutzen 3.3V Signalspannung ( wie der Raspberry PI und die meisten 32Bit µController ) der Arduino ( Ausnahme DUE mit 32bit CPU und und atmega 16U2 als µController ) der Arduino selbst nutzt 5V Man muss also mit Sog. Pegel Konvertern Arbeiten, oder wenn sehr schnelle Schaltzeiten erforderlich sind einen Multiplexer, anders geht es z.b nicht die WS2811 anzusteuern weil die mit 800khz PWM Takt so Timing Kritisch sind das ein Pegelconverter zu lahm ist.
    Alternativ kann man auch sehr schnell schaltende NAND Gatter benutzen aus der SH74 Gattung.
     
    Hubipilot und BlackbirdXL1 gefällt das.
  5. BlackbirdXL1

    BlackbirdXL1 Mitglied

  6. BAXL

    BAXL Moderator Mitarbeiter

    Das sieht doch schon gut aus. Kannst Du einen nackten Sketch bauen, in dem nur die minimal notwendigen Zeilen stecken, mit einer kurzen Erklärung wofür jede Zeile ist. Die machen das zwar auch in den Videos, das geht aber alles ziemlich flott und man muß sich alles merken. Einfacher ist es, wenn man Schritt für Schritt nachlesen kann. Ich habe schon mal angefangen die Beispiele aus dem Video manuell abzutippen und zu dokumentieren. Ausprobieren geht aber noch nicht, weil ich so einen kleinen ESP erst ordern muß. Der, den ich zuhause liegen habe, wurde mit einer Art Hausautomationsbetriebssystem geflasht. Da will ich jetzt nicht dran fummeln.
     
  7. DFENCE

    DFENCE Mitglied

    Im grunde bediene ich mich auch an Beispielen, nur nutze ich die Vorhanden Codes zum Lernen, geht mir irgendwie besser rein als mit Videos. In den Codes steht im grunde auch alles Relevante drin.

    Hier mal der Sketch für das Lauflicht ( ist nicht ESP Spezifisch ) der Sketch stammt aus der AdaFruit NeoMatrix Library und nenne sich MatrixTest


    // Adafruit_NeoMatrix example for single NeoPixel Shield.
    // Scrolls 'TEST' across the matrix in a portrait (vertical) orientation.

    #include <Adafruit_GFX.h>
    #include <Adafruit_NeoMatrix.h>
    #include <Adafruit_NeoPixel.h>
    #ifndef PSTR
    #define PSTR // Make Arduino Due happy
    #endif

    #define PIN 6

    // MATRIX DECLARATION:
    // Parameter 1 = width of NeoPixel matrix
    // Parameter 2 = height of matrix
    // Parameter 3 = pin number (most are valid)
    // Parameter 4 = matrix layout flags, add together as needed:
    // NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
    // Position of the FIRST LED in the matrix; pick two, e.g.
    // NEO_MATRIX_TOP + NEO_MATRIX_LEFT for the top-left corner.
    // NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: LEDs are arranged in horizontal
    // rows or in vertical columns, respectively; pick one or the other.
    // NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: all rows/columns proceed
    // in the same order, or alternate lines reverse direction; pick one.
    // See example below for these values in action.
    // Parameter 5 = pixel type flags, add together as needed:
    // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
    // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
    // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
    // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)


    // Example for NeoPixel Shield. In this application we'd like to use it
    // as a 5x8 tall matrix, with the USB port positioned at the top of the
    // Arduino. When held that way, the first pixel is at the top right, and
    // lines are arranged in columns, progressive order. The shield uses
    // 800 KHz (v2) pixels that expect GRB color data.
    Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(5, 8, PIN,
    NEO_MATRIX_TOP + NEO_MATRIX_RIGHT +
    NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE,
    NEO_GRB + NEO_KHZ800);

    const uint16_t colors[] = {
    matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) };

    void setup() {
    matrix.begin();
    matrix.setTextWrap(false);
    matrix.setBrightness(40);
    matrix.setTextColor(colors[0]);
    }

    int x = matrix.width();
    int pass = 0;

    void loop() {
    matrix.fillScreen(0);
    matrix.setCursor(x, 0);
    matrix.print(F("TEST"));
    if(--x < -36) {
    x = matrix.width();
    if(++pass >= 3) pass = 0;
    matrix.setTextColor(colors[pass]);
    }
    matrix.show();
    delay(100);
    }


    -------------------------------------------------------------------------

    Damit kann man schon etwas spielen, als beispiel oder kleine Übungsaufgabe, einbinden eines DHT22 Temperatur Sensor und Textausgabe der Temperatur, als Bonus die Textfarbe Temperaturabhängig machen.

    mit der Textfarbe ist sogar recht einfach, dazu würde ich zusätzlich den Demo Code vom DHT aufrufen, den nicht Relevanten Teil Rauslöschen, und den Relevanten Teil in den Matrix Code übertragen, also erstmal die Definitionen, die Setup Configuration, und den Loop dann entsprechend Anpassen mit ner Abfrage des Sensors ganz verreinfacht ausgedrückt

    IF ( Sensor Reeding 20 )
    Then
    matrix.setTextColor(255.0.0[0]);
    usw.


    Ich hab das jetzt nur nebenbei ausm kopf runtergerattert, ich muss mich selbst davor setzen und bisl mit beschäftigen um da wieder rein zu kommen, aber das Prinzip passt soweit. Ich kann mich aber Abends nochmal hinsetzen und das bisl weiter ausarbeiten ( So Sachen kann ich nur Abends / Nachts am besten wo mich nichts ablenkt )


    Für Profis, WebServer vom ESP Nutzen um über ne Webseite den Text zu ändern, optional Textfarbe.

    Das wären jetzt so dinge die mir z.b auf Anhieb einfallen würden was man aus dem Code basteln könnte.
     
  8. BlackbirdXL1

    BlackbirdXL1 Mitglied

    Genau so gehe ich auch immer vor :D

    Eine Art "learning by doing" quasi.
     
  9. BAXL

    BAXL Moderator Mitarbeiter

    Ich versuche gerne die Basics zu verstehen, um mich darauf mit trial and error an die Applikation heranzutasten. Ich habe aber schon eine Idee um das Thema auseinanderzupflücken.
     
  10. BlackbirdXL1

    BlackbirdXL1 Mitglied

    Naja, die Basics ........ ich hab schon viel gelernt und gemacht, aber ehrlich gibt es da mittlerweile eine gewisse "Unlust".
    Wenn dann Leute wie @DFENCE das schon durchgeackert haben, zehre ich gerne davon. :thumbsup:

    Leider ist die elektronische Seite IN DIESEM Forum eher die Stiefmutter.
    Schade eigentlich, aber ein Basher braucht auch kein Soundmodul oder eine Lichtsteuerung, eher nen Haufen Ersatzteile.

    Ich persönlich würde mich freuen wenn die Themen auch mal Boote und son Zeug beinhalten.
    Dabei rede ich nicht von Rennbooten, das ist nix anderes als was hier läuft, nur ohne Räder.

    Das RCMP sollte für JEDE Art RC-Modellbau offen sein!
     
  11. BAXL

    BAXL Moderator Mitarbeiter

    Im alten Forum hat sich erst auch keiner für Multicopter interessiert. Das hat mich auch fast 2 Jahre gekostet bis es brummte. Die Aktivität kommt nicht aus unserem Forum selbst, sondern erst durch Leute, die hier hinfinden. Da ist etwas Arbeit nötig. Ich schreibe nicht umsonst unermüdlich weiter. Die müssen uns erst finden, schließlich sind wir kein Spezialforum dafür.
     
    Crazy virus 4.0 und BlackbirdXL1 gefällt das.
  12. BAXL

    BAXL Moderator Mitarbeiter

    Auf funduino.de bin ich fündig geworden. Dort wird alles so beschrieben, wie ich mir das in etwa vorstelle. Die reinen Arduino Programme sind das kleinere Problem, die Verknüpfung zum WLAN ist die Herausforderung, weil die Begriffe und Abkürzungen nicht jeden so geläufig sind.
     

Diese Seite empfehlen