Archiv der Kategorie: ESP8266

NodeMCU V2 Motorplatine

Für den NodeMCU V2 gibt es ein Erweiterungsplatine mit Motortreiber. Mit ihr können zwei kleine Motoren (bis 1,2 Ampere) über eine Motorbrücke L293DD angesteuert werden.  Auch der Anschluss eines Schrittmotors ist möglich.

Sie bietet weiterhin zwei getrennte Anschlüsse für die Stromversorgung der Platine und die der Motoren. Die meisten Pins des ESP sind mit einem zusätzlichen Masse/Strom Pin herausgeführt, was den Anschluss von Peripherie erleichtert.

Die Pins D1, D2, D3, and D4 sind von der Motorbrücke belegt.

Daten

Stromversorgung: 4,5V bis 9 V
Motorspannung: 4,5V – 36V
Maximaler Motor Strom: 1,2 A

Ansicht

Frontansicht

Rückansicht

Anschlüsse

Pin-Belegung

Mit den Pins D1 -D4 können die Motoren angesteuert werden weitere Belegungen können der Tabelle unten entnommen werden.

Programmierung

Der Versuchsaufbau gestaltet sich simpel. Den ESP8266 aufs Board stecken, zwei Motoren an die entsprechenden Kontakte anschliessen und das Beispielprogramm unten, auf den ESP laden.

Bibliothek

… habe nach kurzer Suche keine gefunden, für jeden Tip bin ich dankbar.

Eigenes Testprogramm

Hier ein simpler Test. Er lässt beide Mortoren vorwärts drehen, rückwärts drehen und stoppen.

ESP8266MCUV2Motorplatine

Eigene Lib

Werde mir wohl in naher Zukunft mal eine Klasse schreiben, welche alle Funktionen kapselt.

 

Quellen

https://cdn.hackaday.io/files/8856378895104/user-mannual-for-esp-12e-motor-shield.pdf

http://www.instructables.com/id/Motorize-IoT-With-ESP8266/

ESP8266: NodeMCU Motor Shield Review

SSD1306 Monochrom OLED 128×64 I2C

Ich habe mir zwei fast baugleiche 128×64 Displays gekauft um diese zu testen. Diese werden über den Wire (I2C) Bus angesteuert. Es gibt aber auch Varianten für den SPI Bus, die hier aber nicht behandelt werden.

Die beiden Displays haben auf den ersten Blick nur zwei offensichtliche Unterschiede. Erstens sie haben unterschiedlich große Bohrlöcher und zweitens bei ihnen ist VCC und GND vertauscht. Also aufpassen beim anschliessen eines ähnlichen displays, sonst raucht’s.
Als ich sie das erstes Mal leuchteten sah, fiel mir noch auf, dass das eine Display blaue Schrift hat und das andere weiße. Wenn man den schnellen Ali fragt, findet man noch weitere Variationen.

Versuchsaufbau

Zuerst habe ich mal einen Testaufbau mit einem NodeMCU V3 gesteckt. Die Spannungsversorgung hole ich mir vom Node. Die Kommunikation habe ich an die Pins D5 und D6 angeschlossen. Die Schaltung sieht wie folgt aus:

Bibliothek

Da ich andere Pins für den Wirebus verwende als die standard Arduino und ich feststellen musste, dass in der entsprechenden Adaruit Libray zum einen der Wirebus hardcodiert ist und zum anderen diese für Displays mit Resetanschluss gedacht ist. Habe ich mich, ohne weiter zu forschen für die ThingPulse Biliothek entschieden. Diese kann entweder über GIT herunter geladen werden oder über den LibraryManager in der Arduino Gui installiert werden.

Nach SSD suchen und die von Daniel Eichorn auswählen.

Programmierung

Beispielprogram

Als Testprogramm nutze ich mir die Uhr aus dem Beispielen.

Noch die richigen Pins eingetragen, hier ist der Code:

ESP8266_SSD1306ClockDemo

Kompiliert und den ESP programmiert und so sah es aus.

Die Genaue Uhr

Damit die Uhr auch stimmt habe ich kurzer Hand nocht die NTP Server abfrage eingebaut.

ESP8266_SSD1306ClockDemoNTP

ein Bild erübrigt sich, da sich hieran nichts geändert hat.

Nachtrag 27.06.2018: Ich habe einige fertige NTP Clients gefunden, ihre Verwendung ist wahrscheinlich leichter als als meine kleinst Entwicklung aus zusammen gestückelten Quellen.

https://github.com/aharshac/EasyNTPClient

https://github.com/gmag11/NtpClient

Weitere Projekte

NodeMCU V3 mit Oled Display aufmotzen

Quellen

 

 

NodeMCU V3 mit Oled Display aufmotzen

Ich hatte noch zwei Oled display von einem Test da, und überlegt was ich damit machen könnte.

Da ich in letzter Zeit mit Knoten mit integriertem Display experimentiert habe. Hatte ich vor meine alten ESP8266 NodeMCU  V3 etwas zu pimpen.

Den Weg hierzu möchte ich hier kurz umreissen, bei Fragen nicht zögern und einen Kommentar einstellen.

Display Umbau

Die Pins der Displays habe ich ausgelötet und durch Kabel ersetzt. Dies ging leider nicht ohne kleinere Kerben.

Befestigung auf dem ESP

Das Display wollte ich per Abstandshalter direkt auf dem NodeMCU befestigen. Leider stimmten die Lochabstände nicht ganz und so habe ich sie geschraublötet.

Verbindung zum Node

Die Kabel des Displays habe ich auf der rechten Seite an die Pins 3V, G , D5, D6 gelötet (Siehe auch vorheriges Bilde). Bei der Gelegenheit habe ich auchg gleich noch ein Anschlusskabel für einen LIPO Akku angelötet. Den LIPO kann man zwar auch direkt auf die Pins des Knotens stecken, aber man muss immer auf die Polung achten. Ausserdem kann man dann den Knoten nicht mehr gerade hin legen.

Ergebnis

Hier die beiden Knoten im Vergleich, auch gut zu sehen die getauschten Anschlüsse der Spannungsversorgung.

Da einer der beiden Knoten kaputt gegangen ist. (Eines meiner Kinder hat ihn von der Couch geworfen…) Habe ich noch eine Horizontale Variante, mit dem wieder frei gewordenen Display, erstellt. Der Vorteil dieser Variante ist, dass so die Löcher am Display genau mit denen des NodeMCU übereinstimmen. Die Rückseite des Displays und den ESP8266 habe ich vorher mit Klebeband isoliert, da ich annehme, dass nicht der Sturz von der Couch sondern eher ein Kurzschluss, der damit einherging den alten Node in die ewigen Jagtgründe geschickt hat.

Programmierung

Die Programmierung des Knotens, kann dem Vorgängerprojekt entnommen werden.

SSD1306 Monochrom OLED 128×64 I2C

Fazit

Ich habe jetzt zwei ESP8266 MCU Nodes V3 mit Display 😉

Zwei kleinere Displays warten noch darau auf einen Knoten geschraublötet zu werden. Der Beitrag hierzu folgt demnächst. Wobei ich mir noch nicht ganz einig bin ob ich hierfür den MCU Node V3 oder den kleineren V2 nehme.

Node MCU V3.0

Ein Entwicklungsboard mit dem ESP8266-12E inklusive einer USB Schnittstelle zur Porgrammierung sowie der seriellen Kommunikation. Hierbei gleicht das Board der Version 1.0/2.0.
Es kann über den USB Port mit Spannung versorgt werden, über 5 Volt am Vin Pin sowie mit 3-3.6V an den 3.3V Pins.
Zusätzlich besitzt es einen Ausgang für die USB Spannung (siehe Pinout)

Ansicht

Frontansicht

 

Rückansicht

Überblick

Name Node MCU 3.0  
Anzahl/CPU
ESP8266-12E
Takt (MHz)80
Kerne1
Digital IOs / Pins12
Analog inputs1
PWM10
SPI1
Flash Speicher 4MB
SRam (KB)128
EEPROM (KB)-
WiFi2,4 GHz 802.11 b/g/n
VerschlüsselungWEB / WPA2 / TKIP /AES
Bluetooth-
UART1
I2C1
Ethernet-
Video-
Sound-
USB1 micro
Betriebsspannung [V]3,3
Eingangsspannung3,3 / 5 USB / 6-20 Vin
Strom (mA) / Standby (mA)500-1000
Größe l x b x h62 x 33 x 12
Gewicht [g]<18

Die Version 3.0 passt leider nicht mehr auf eine Bread-Board (siehe Bild).

Pinning

Eingebaute LED befindet sich an Pin D4.

 

Programmierung

Präprozessor  auf esp 8266 prüfen :

#ifdef ESP8266
#define PIN_FOR_LED D4
#else
#define PIN_FOR_LED 5
#endif

.. auf NODE MCU V3 Prüfen ?

Mit Arduino Umgebung

Die Installation und die Porgrammierung ist gleich mit der Version 1.0/2.0 deshalb an dieser Stelle nur der Link.

Zubehör

Prototypplatine

NodeMCU V2 Motorplatine

Sonstiges

Probleme

Siehe auch Version 1.0/2.0

Board wird nicht erkannt oder verabschiedet sich dauernd

Sollte das Boad nicht erkannt werden oder das Gerät meldet sich dauernd neu beim Computer an, kann das an der Stromversorgung liegen. Die USB Stromversorgung reicht bei diesem Board meist nicht aus. Dies kann durch eine externe Spannungsquelle (Netzteil, Akku od. Batterie) umgangen werden.

Hier bieten sich Akkus mit Pinheader ähnlichen Anschluss an. Diese können einfach auf die Pins des Boards gesteckt werden. Die Akkus gibts relativ günstig. Vorsicht auf die Polung achten, sonst raucht’s.

LED_BUILTIN funktioniert nicht

?D4 ist der Port für die eingebaute LED. Einfach mal damit probieren.?

Sonstiges

Spannungsversorgung des ESPNodeMcu V3 über

  • USB
  • Batterie
  • Netzteil
  • Mit Spannungsregler

Powering the ESP-12E NodeMCU Development Board

 

Quellen

https://github.com/nodemcu

Comparison of ESP8266 NodeMCU development boards

https://forum.arduino.cc/index.php?topic=399324.0

Node MCU V1.0/2.0

Ein Entwicklungsboard mit dem ESP8266 inklusive einer USB Schnittstelle zur Porgrammierung sowie der seriellen Kommunikation.
Das Board kann über den USB Port mit Spannung versorgt werden, über 5 Volt am Vin Pin sowie mit 3-3.6V an den 3.3V Pins.
Alle Anschlusspins sind nach aussengeführt, der Node passt gerade so auf ein Bread-Board.

Ansichten

Frontansicht

Oben auf tront der ESP 8266 12 E, zwei Taster, ein Usbanschluss, und eine LED.

Rückansicht

Auf der Rückseite sind die Pins zum aufstecken z.B. auf ein Steckbrett.

 

Überblick

Name Node MCU 1.0/2.0  
Anzahl/CPU
ESP8266-12E
Takt (MHz)80
Kerne1
Digital IOs / Pins12
Analog inputs1
PWM10
SPI1
Flash Speicher 4MB
SRam (KB)128
EEPROM (KB)-
WiFi2,4 GHz 802.11 b/g/n
VerschlüsselungWEB / WPA2 / TKIP /AES
Bluetooth-
UART1
I2C1
Ethernet-
Video-
Sound-
USB1 micro
Betriebsspannung [V]3,3
Eingangsspannung3,3 / 5 USB / 6-20 Vin
Strom (mA) / Standby (mA)< 500
Größe l x b x h58 x 31 x 12
Gewicht [g]<18

Pinning

 

Programmierung

Mit Arduino Umgebung

ESP8266 Boardtreiber installieren.

Nach „esp8266“ selektieren und den gefundenen Eintrag installieren.

Programmieroption einstellen.

  1. Board wählen „NodeMCU 1.0…“
  2. Com Port wählen
  3. Den Programmieradapter wählen

Zum Testen das Blink-Beispiel auswählen.

Node programmieren

Sollte alles geklappt haben sollte nun die rote LED blinken.

Probleme

Node wird nicht richtig von Windows erkannt

Wird der Node nicht richtig oder mit Fehler erkannt, kann es helfen den unten gelinkten USB-Treiber zu installieren.

https://github.com/nodemcu/nodemcu-devkit/tree/master/Drivers

Programmierung schlägt fehl

Gibt es einen Fehler bei der Progammierung des Nodes, bitte überprüfen, dass das richtige Board, der richtige serielle Port und der richtige Programmierer ausgewählt ist.
Evtl. kann es helfen auch mal einen anderen Programmierer auszuprobieren.
Ob der richtige Port ausgewählt wurde, kann durch kurzzeitiges abziegen des Nodes vom USB Port überprüft werden. Der Port verschwindet dann aus der Auswahl im Menü.

Erweiterungen

Motorplatine

NodeMCU V2 Motorplatine

Quellen

https://github.com/nodemcu

Comparison of ESP8266 NodeMCU development boards

Powering the ESP-12E NodeMCU Development Board

ESP8266: NodeMCU Motor Shield Review

ESP01

Das ESP01 Modul ist mit unter 2€ mit eines der günstigsten und kleinsten Module mit ESP8266 Chipsatz.

Name ESP01  
Anzahl/CPU
1 / ESP8266
Takt (MHz)80
Kerne1
Digital IOs / Pins2
Analog inputs0
PWM0
SPI1
Flash Speicher 1 MB
SRam (KB)<50 (64)
EEPROM (KB)-
WiFi2,4 GHz 802.11 b/g/n
VerschlüsselungWEB / WPA2 / TKIP /AES
Bluetooth-
UART1
I2C-
Ethernet-
Video-
Sound-
USB-
Betriebsspannung [V]3.3
Eingangsspannung3.0 - 3.6
Strom (mA) / Standby (mA)80/3
Größe l x b x h14,3 x 24,8x
Gewicht [g]<5

Pinning

es bietet gerade mal zwei GPIOs zur Ansteuerung externer Peripherie.

 

Bildergebnis für esp01

 

Passender ISP

Mit diesem ISP kann der ESP01 programmiert werden.
(BUY EXAMPLE)

Bildergebnis für esp01 isp

Hierfür ist allerdings die Beschaltung eines zusätzlichen Widerstander notwendig, der zwischen GND und GPIO0 angelegt wird.

Testweise kann dieser einfach, wie oben zu sehen ist angeklemmt werden und mit samt Board auf den ISP gesteckt werden. (Vorsicht der Kondensator, der große silberne Zylinder, kann den Widerstand kurzschliessen.

Besser ist der folgende ISP der einen Schalter zur Programmierung besitzt. (BUY EXAMPLE)

Bildergebnis für esp01 isp

 

Programmierung

Mit der Arduino GUI

Über den Boardmanager das ESP8266 Modul installieren.

Das Board auf „Generic ESP8266 Module“ stellen und den Programmer aus „AVR ISP“. Bei Port die richtige serielle Schnittstelle auswählen.

Testprogramm

Als Testprogramm bietet sich das mitgelieferte Beispiel „Blink“ an.

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Mit der Pfeiltaste compilieren und den ESP01 programmieren.
Hat alles geklappt blinkt die blaue Lampe. Soll der ESP erneut programmiert werden oder klappt es nicht gleich einfach den ISP kurz aus dem USB Port entfernen und wieder einstecken.

Quellen

ESP-01 (ESP8266) mit Adapter programmieren – So geht’s

https://create.arduino.cc/projecthub/ROBINTHOMAS/programming-esp8266-esp-01-with-arduino-011389

Programming ESP-01 (ESP8266)

https://www.heise.de/developer/artikel/Arduino-goes-ESP8266-3240085.html

http://www.instructables.com/id/Getting-Started-With-the-ESP8266-ESP-01/

DHT10 mit ESP8266

Ansteuerung eines DHT10 Sensors über den ESP8266

Grundlagen

Feuchtigkeitsmesser DHT11

Aufbau

Testprogramm

#include "DHT.h" //DHT Bibliothek laden

#define DHTPIN 5        // Pin auf dem ESP8266
#define DHTTYPE DHT11   // Typ des Sensors

DHT dht(DHTPIN, DHTTYPE); // Eine Instanz des Sensors erstellen

void setup() {
  Serial.begin(9600); 
  dht.begin(); //DHT11 Sensor starten
}

void loop() {
  
  delay(2000); //Zwei Sekunden Vorlaufzeit bis zur Messung (der Sensor ist etwas träge)

  float wett = dht.readHumidity(); //die Luftfeuchtigkeit auslesen
  float temp = dht.readTemperature();//die Temperatur auslesen 
  Serial.print("Luftfeuchtigkeit: "); //Im seriellen Monitor den Text und 
  Serial.print(wett); //die Dazugehörigen Werte anzeigen
  Serial.print(" % \t");
  Serial.print("Temperatur: ");
  Serial.print(temp);
  Serial.println(" Grad Celsius");

}

Output