Alle Beiträge von sfambach

Sensor KY-018 Photowiderstand

Das Board KY-018 ist mit einem Licht abhängiger Widerstand und einen Vorwiderstand bestückt.

Daten

Spannung: 3V-5V
Ausgang: analoger Spannungswert

Ich vermute das hier ein GL5528  verbaut wurde.

Ansicht

 

(Front/Rückansicht)

 

 

Beschaltung

Masse
+ V+ (3V-5V)
S Signal

3 G V S.png

Funktionsweise

Verändert sich die Lichtstärke die auf den Sensor trifft, verändert dieser seinen Widerstand. Dies ist am Signalausgang als analoge Größe messbar.

Anwendungsgebiete

Das Sensorboard kann zur Messung der Herzfrequenz, als  Optokoppler oder einfache als Lichtschranke verwendet werden.

Versuchsaufbau

Testprogramm

Hier ein kleines Testprogramm welches den analogen Port 0 ausliest. Hierbei ist zu beachten, dass die Ausgabe invertiert ist (wenig Licht hoher Wert).

void setup() {
  Serial.begin(115200);
  pinMode(A0, INPUT);
}
void loop() {
  int LDR = analogRead(A0);
  Serial.println(LDR);
}

Ausgabe

Bibliotheken

Arduino Bibliothek

Quellen

http://sensorkit.joy-it.net/index.php?title=KY-018_Fotowiderstand_Modul

https://github.com/rdiot/rdiot-s002

http://home.roboticlab.eu/de/examples/sensor/photoresistor

Datenblatt zum GL5528

Datenblatt zur GL55 Serie

Arduino Bibliothek

Gut erklärte Lux berechnung (eng)

Raspberry Pi Mirror OS

Kurzbeschreibung

Mirror OS ist ein Betriebssystem, entwicket für smarte Spiegel. Dies sind Spiegel die eine Art Handy Funktionaltität bieten.

Was wird gebraucht

Vorkenntnisse mit dem Raspberry Pi und Linux können nicht schaden ;). Auch hilft es sicherlich schon mal SSH verwendet zu haben.  Ansonsten braucht ihr folgendes.

Hardware

  • Ich habe noch einen Pi B+ V1.2 rumliegen der soll als erstes Versuchsobjekt dienen.
  • Eine 65GB Microsdkarte.
  • WiFi Adapter 😉

Software

  • Mirror OS hier downloaden.
  • SD Formater hier downloaden.
  • Etcher zum beschreieben der SD Karte hier.

Sonstiges

  • Windows PC

Installation

SD Vorbereiten

Die folgenden Aktionen passieren auf deinem Windows PC. Die Installation über Mac ist auch möglich, dafür bitte den original Link zum Mirror OS folgen.

Formatieren

Ich bin nicht sicher ob dieser Schritt wirklich nötig ist, aber ich habe es, wie auf der mirror OS Seite, beschrieben einfach mal gemacht.

SD Card formater installieren. Hier gibts ne Anleitung.
SD Karte mit „Quick format“ formatieren.

Danach kurz die SD Karte aus dem PC entfernen und wieder einstecken. Da der Formater ein Autoauswurf auslöst ;).

Falls noch nicht geschehen das mirror OS image downloaden.

Nun Etscher installieren, falls noch nicht getan.

Das image auf die SD karte schreiben. Hierfür Etscher starten

Image auswählen

Auf Flashen drücken …

und warten …

Und fertig … ab mit der SD Karte in den PI und starten.

Leider funktioniert mein Raspberry Pi 2B nicht richitig. Ich bekomme keine Verbindung, liegt wahrscheinlich an meine Wifi Adapter.

Somit habe ich mir schnell einen PI3 noch bestellt und siehe das ich bekomme nach einer Weile ein Bild. Jetzt nur noch den Anweisungen auf dem Bildschirm folgen.

  • Über das Handy mit dem angegebenen Netz verbinden
  • Webseite http://glancr.conf öffnen
  • Netzwerk einstellen und eine richtige E-Mail angeben
  • Wenn alles klappt bekommt ihr eine E-Mail in der links zur Konfiguration stehen.
  • Dann noch Module runter laden und installieren
  • Die Module anordnen …

und das wars. Die Bedienung ist einfach und intuitiv. Evtl in der Konfiguration noch das Bild drehen, hier steht wie es geht.

Der Fernsehertest

So kanns aussehen, die Temperatur stimmt wohl noch nicht ganz. Aber wie man sieht spiegelt mein Fernseher auch ;).

Fazit

Wenns mal geklappt hat das Mirror//OS zu installieren, ist es ein wirklich nettes System. Es gibt auch schon ein paar Module die von der Website heruntergeladen und einfach auf der Konfigurationsseite installiert werden können.

Das Arrangieren der einzelen Module ist sehr einfach gehalten. Es kann nur bestimmt werden ob das Modul über den halben oder den ganzen Bildschirm gehen soll und die Reihenfolger untereinander. Was durch dies Anordnung am Ende Rauskommt sieht dann überaschend gut aus ;). So scheinen die Halbbildschirmmodule nach ihrem Platzaufbedarf fliessend nebeneinander angeordnet zu werden.

Alles in allem ein gelungenes OS, gut zu Installieren und zu Konfigurieren.

Problem

Mit dem PI 2 hats bei mir nicht funktiniert, was aber eher den WIFI Adapter geschuldet ist.

Beim ersten Anlauf hat es auch nicht mit dem PI3 Funktioniert. Habe dann das Image nochmal neu auf die SD Karte geschrieben und von Vorne angefangen.

 

Quellen

https://www.sdcard.org/downloads/formatter_4/

https://etcher.io/

mirr.OS

FAQ https://glancr.de/hilfe/

Den ESP8266 schlafen legen

Sensorknoten sollen möglichst lange und unabhängig arbeiten können. Dennoch benötigen sie Strom, um mit der vorhandenen Energie möglichst effizient umgehen zu können, hat der ESP8266 und andere Controller die Möglichkeit in den Tiefschlaf zu gehen. Das schöne ist er kann sich nach fast beliebiger Zeit selbst wieder aufwecken. Ein Nachteil beim ESP8266 ist das er maximal 71 Minuten schlafen kann.

In diesem Beitrag wird gezeigt wie der ESP einschafen kann und auch wieder aufwacht.

Bauteile

1x ESP8266 Node Lua V2
1x Pinheaderkabel (Buchse : Buchse)

Schaltungsaufbau

(Von Quelle geklaut)nodemcu-deep-sleep.png

Der Reset wird hierbei mit dem GPIO 16 (Pin D0) verbunden.

So sieht es bei mir in der Realität aus

Testprogramm

 


void setup() {
  Serial.begin(115200);
  Serial.setTimeout(2000);

  // Wait for serial to initialize.
  while(!Serial) { }
  
  Serial.println("I'm awake.");

  Serial.println("Schlafe 20 Sekunden ");
  ESP.deepSleep(20e6); // 20e6 = 20 microseconds

}

void loop() {
  // nichts zu tun

}

Der ganze Spuk passiert durch eine Zeile Code (hier rot makiert).

… und das kommt bei mir auf der Konsole an:

Man kann gut am Textschrummel erkennen, dass der ESP alle 20 Sekunden neu startet.

Weiterführende Projekte

Quellen

https://www.losant.com/blog/making-the-esp8266-low-powered-with-deep-sleep

MQTT Protokoll + Versuchsaufbau

Ich bin im Netz auf den Begriff MQTT gestossen und fand den Ansatz dahinter richtig gut. Deshalb habe ich mir mal einen kleinen Versuchsaufbau gegönnt, den ich im folgenden beschieben habe.

Vorab ein paar Details zu MQTT

Infos zu MQTT

Allgemeines

MQTT regelt die Kommunikation zwischen Datenquellen und Datensenken mittels eines Brokers.

Datenquelle

Quellen für Daten können ganz unterschiedliche Geräte sein, eines haben sie jedoch alle gemeinsam, sie können Netzwerkverbindungen aufbauen um Ihre Daten weiter zu geben und sie haben was, was sie mitteilen wollen.

In der IoT können dies Sensor-Knoten sein, welche ihre Daten an einen oder mehrere Empfänger senden wollen.  Die Liste der möglichen Daten ist hierbei nahe unendlich. Beispiele sind Temperaturwerte, Schaltzustände,  Helligkeitswerte usw.

Die Quelle meldet sich an einem (oder mehreren Brokern?) an. Ihre Daten sendet sie so lange bis diese vom Broker quittiert wurden.

Datensenken (Interessenten)

Senken für Daten sind bei MQTT die sog. Interessenten. Diese möchten bestimmte Informationen von Quellen erhalten und diese dann Auswerten (Berechnung) oder einfach nur Präsentieren (Bildschirmanzeige). Beispiele sind Handy Apps, eine Lampe die wissen will wann sie eingeschaltet wird usw.

Broker

Der Broker dient als Bindeglied zwischen den Quellen und den Senken. Er hat die Aufgabe, Daten von Quellen zu sammeln und diese an die Interessenten weiter zu reichen.  Eine Auswertung/ Aufbereitung der Daten ist ihm nicht gestattet, jedoch darf er die Daten zwischenspeichern, um zum Beispiel neuen Interessenten mit dem zuletzt empfangenen oder auch mit historischen Werten zu versorgen.

Die Idee hinter dem Protokoll ist, dass Leistungsschwache Sensorknoten nur eine Verbindung mit einem Broker (Empfänger Server) aufbauen und nur an diesen senden sie ihre Daten. Der leistungstärkere Broker verteilt die Informationen dann an die Interessenten.

Ein kleines Projekt

Ich habe ein kleines Projekt aufgesetzt, mit einem Sensorknoten als Quelle, einem Broker auf einem Raspberry Pi und meinem Handy als Senke.

Quelle

  • Board Node MCU ESP8266
  • Temperatursensor DHT11
  • Bibliothek pubsubclient

Der genaue Aufbau ist in einem anderen Beitrag bereits beschrieben, weshalb ich mich hier nur auf die MQTT basierten Fakten stürze.

http://fambach.net/dht10-mit-esp8266/

Die Bibliothek installieren:

Hier ist der nach MQTT angepasste Quellcode:

ESP8266TempSensorMQTT

Bitte die Netzwerkdaten und die Brokerdaten an eure Topologie anpassen. Achtung der DHT Sensor benötigt auch eine Bibliothek wie im gelinkten Beitrag beschrieben.

Broker

Raspberry nach belieben aufsetzten oder so wie hier:

http://fambach.net/raspberry-pi-zero-w-headless-installation/

Auf dem Pi dann die Mosquitto software installieren.

Software Download

Link: http://mosquitto.org/download

Die letzte Version holen, der Link kann von der obigen Seite kopiert werden. Die aktuelle Version kann mit wget direkt auf den PI geholt werden:

sudo wget <direkter link zum paket>

in meinem Fall war das

sudo wget http://mosquitto.org/files/source/mosquitto-1.5.tar.gz

Installation

Benötigte libs installieren mit

sudo apt-get install libwrap0-dev libcurl4-openssl-dev libmysqlclient-dev libssl-dev apt-get install uuid-dev 

Paket auspacken:

tar zxf ./mosquitto-1.5.tar.gz

In den ausgepackten Ordner springen und mosquitto …

cd mosquitto-1.5/

… bauen und Installieren …

make
sudo make install
sudo ldconfig

… noch starten

Den ESP8266 starten und die erste Verbindung sollte klappen:

Senke

Ich verwende mein Handy als Senke und einen MQTT Empfänger APP. Ich habe ein paar probiert, bin dann aber erstmal mal bei „IoT MQTT Panel“ hängen geblieben, weil sie auf Anhieb funtkionierte und auch Platzhalter unterstüzt.

Hier der Link

Folgende Einstellungen habe ich vorgenommen, ihr müsst diese natürlich an eure Applikation und Netzwerktopoligie anpassen.

Erstmal eine neue Verbindung erstellen mit den Verbindungsdaten des Mosquitto Servers.

Die Neue Verbindung öffnen

Fazit

Solch ein MQTT Projekt ist in wenigen Stunden aufgebaut und macht Spaß. Dabei hat es noch großes Potential, denn man kann leicht mehrere Knoten mit einem standard Server verbinden und sich die Daten z.B. auf dem Handy anzeigen lassen.

Quellen

https://de.wikipedia.org/wiki/MQTT

Java Client Phao

MQTT Git-hub Community Wiki
https://github.com/mqtt/mqtt.github.io/wiki

Github Seite mit MQTT libs
https://github.com/mqtt/mqtt.github.io/wiki/libraries

Lib für ESP8266 und Andere
https://github.com/knolleary/pubsubclient

Mosquitto Broker Konfigurationhilfe

Quick Guide to The Mosquitto.conf File With Examples

MQTT best practice

MQTT Essentials Part 5: MQTT Topics & Best Practices

 

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.

ESP32 WiFi Kit 32

Ich habe gleichzeitig mit dem ESP Lora 32 auch noch die kleinere Version mit bestellt.  Sie ist etwas günstiger (~17€), ohne externe Antenne und ca 2mm kürzer. Bis auf die Netzwerk Sendestärke scheinen die beiden Boards sich nur minimal zu unterscheiden.

Es passt gerade so auf ein Steckbrett, so dass an beiden Seiten noch ein Pin zur Beschaltung frei ist. Die Pins wurden in meinem Fall mitgeliefert und müssen selbst eingelötet werden.

In diesem Beitrag sind nur die Eigenheiten beschrieben, für die Programmierung, Fehler … sei auf den Lora Beitrag verwiesen.

Ansicht

Frontansicht

Display zwei Knöpfen und USB Anschluss.

Rückansicht

Anschluss ( JST-PH 2Pin 1.25mm)  für einen Akku .

 

Überblick

Name WiFI Kit 32  
Anzahl/CPU
1 / ESP 32
Takt (MHz)240
Kerne1
Digital IOs / Pins36 / 28
Analog inputs18
PWM16
SPI4
Flash Speicher
SRam (KB)520
EEPROM (KB)4 MB
WiFi802,11 b/g/N
Bluetooth
VerschlüsselungWEB / WPA2 / TKIP /AES
Bluetooth4.1
UART3
I2C2
Ethernet-
Video 0.96 OLED display
Sound_
USB1 Micro CP2102
Betriebsspannung [V]3,3
Eingangsspannung3,3 - 7
Strom (mA) / Standby (mA)
Größe l x b x h53 x 25 x 12
Gewicht [g]??

Pinning

WIFI_Kit_32-Diagram

 

Fazit

Das ESP32 WiFi Kit 32 Board ist netzwerktechnisch nicht so gut ausgestattet wie sein großer Burder das Lora, aber wer nicht die Weitstreckenkommunikation benötigt, ist mit dem etwas billiergerem Board gut bedient.

 

Ähnliche Beiträge

ESP32 WiFi Lora 433

Quellen

https://en.wikipedia.org/wiki/ESP32

http://esp32.net/

https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series#instructions

https://www.heise.de/make/artikel/Grosser-Bruder-Espressif-ESP32-3256039.html

https://github.com/espressif/arduino-esp32/issues/758

Herstellerseite

ESP32 Arduino Gui einrichten mit Git

Wie immer gibt es im Netz zahlreiche Informationen, wie die Arduino Gui zu konfigurieren ist. Deshalb fasse ich mich an dieser Stelle sehr kurz, für detailiertere Informationen sei auf die unten verlinkten Quellen verwiesen.

Repository Clonen

Es gibt ein Git Paket zur Einrichtung der GUI für den ESP 32. (Link zu GIT GUI)

Git Gui starten und „Clone Existing Repositiory“ wählen.

Die Quelle für die ESP 32 Sources ist:

https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series.git

dort gibt es auch zusätzliche Infos.

Das Ziel ist das Arduino Projektverzeichnis, in meinem Fall unter MyDocuments/Arduino.

Mit Bestätigung der Eingabe über den Clone Button, erscheint das folgende Bild und alle Dateien werden aus Git extrahiert.

Danach muss man im Verzeichnis ..\Arduino\hardware\heltec\esp32\tools noch das Programm get.exe ausführen und in der Console mit Enter starten.

Erfolgsbestätigung

Arduino Gui neu starten,  tauchen die ESP 32 Einträge in der Board-Liste auf war die Installation erstmal erfolgreich.

Ob auch alles wirklich funktioniert kann mit einen der Beispielprogramme verifiziert werden. Einfach auswählen, übersetzen und auf den ESP 32 übertragen. (Vorher das richtige Board auswählen)

Probleme

Arduino Gui – falsches Installationsverzeichnis gewählt

Ich hatte das falsche Verzeichnis für meine Arduino Gui angegeben .

Zur Lösung des Problems kann der komplette esp32 Ordner in das richtige Verzeichnis unter hardware kopieren werden.

Keine Beispielprogramme für den ESP32 ?!

Zuerst muss das ESP32 Board ausgewählt werden, dann sind auch die entsprechenden Beispielprogramme vorhanden.

Projekte

ESP32 WiFi Lora 433

Quellen

https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/windows.md

https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series#instructions

Arduino Uno + WiFi

Hier geht es um einen Chinaimport und nicht um den offiziellen Uno WiFi. Die Platine hat einen vollständigen Ardunio Uno mit Atmega Prozessor und einen ESP8266 Chip on board. Über Dipschalter, kann jeweils der Uno mit dem USB, der ESP mit dem USB oder der ESP mit dem UNO verbunden werden.

Für den Betrieb kann eine externe Wlan-Antenne angeschlossen werden. Es sind zusätzlich ESP-Pins herausgeführt, die Beschaltung steht auf der Rückseite.

Daten

Name Uno + Wifi  
Anzahl/CPU
2 / ATmega328P + ESP 8266
Takt (MHz)16 / 80
Kerne1
Digital IOs / Pins14 / 4
Analog inputs6 / ?
PWM6 / ?
SPI1
Flash Speicher 32 KB / 8 MB
SRam (KB)2 / 128
EEPROM (KB)1 / -
WiFi- /2,4 GHz 802.11 b/g/n
Verschlüsselung- / WEB / WPA2 / TKIP /AES
Bluetooth-
UART1 / 1
I2C1 / 1
Ethernet- / -
Video-
Sound-
USB1 Micro
Betriebsspannung [V]5
Eingangsspannung7 - 12
Strom (mA) / Standby (mA)< 500
Größe l x b x h68,6 x 53,3
Gewicht [g]>25

Ansichten

Frontansicht mit den Verbindern für Erweiterungsplatinen, dem Stromanschluss, USB-Anschluss und einem  Resettaster. Zusätzlich zu den normalen Achlüssen befindet sich noch weitere für den ESP8266,  ein Antennenanschluss und ein Dip-Schalter zur Einstellung der seriellen Schnittstelle an Bord.

Hier ein paar technische Daten und die Pinbelegung der nach aussen geführten ESP Pins.

 

Jumper Einstellungen

DIP

Programmierumgebung

UNO

Dipschalter 3,4 auf ON Rest auf OFF

ESP8266

Dipschalter 5,6,7 auf ON Rest auf OFF. Sollte das programmieren nicht beginne ist ein Reset de des Boards nötig. Das spielen mit der Reset Methode brachte hier leider keine Besserung.

Test Programme

ESP8266 Durchreiche

Das folgende Programm reicht alles was auf dem seriellen Port eingeht an den verbundenen Server weiter und alles was über das  Netz rein kommt wieder auf den seriellen Port. Das Listing ist etwas lang weil ich die Netzwerkkommunikation aus einem anderen Projekt übernommen habe, deshalb hier nur die gelinkte Datei.

UARTEcho.ino

Alles Wichtige passiert in der loop Funktion. Die Daten für den Accesspoint und den Server müssen entsprechend angepasst werden.

Nachträglich habe ich auch Code von Arduino in den Beispielen der GUI gefunden. Die Datei heisst Wifi2Serial.ino.

Uno Echo

Das Testprogramm des Uno’s ist gleichfalls trivial. Es schreibt alles was er über den seriellen Port empfängt wieder auf diesen zurück.

String buf = "";

void setup(){
  Serial.begin(9600);
  while(!Serial){ delay(1);}
  buf.reserve(200);
  Serial.println("UNO started");
}

int ib = 0;
void loop(){
  while (Serial.available()){
    delay(4); // allow buffer to fill
    ib = Serial.read();
    buf += ((char)ib);

    if(((char)ib)== '\n' || buf.length()== 200){
        Serial.print("Echo: ");
        Serial.print(buf);
        buf = "";
    }
  }
}

SerialEcho.ino

Testen

Zum testen kann mein Socket-Tool verwendet werden.

Java Socket Konsolen Server

Dipschalter1,2 auf ON, der Rest auf OFF.

Die Socket Console starten.

Im Feld neben den „send“ Knopf kann ein Text eingegeben werden. Mit Betätigung des „send“ Knopfes, wird der Text an den Client geschickt. Wenn alles geklappt hat, kommt der Text mit einem „Echo: “ davor zurück.

Durch die Testausgaben des ESP auf den seriellen Port, kommen ein paar mehr Echos zurück als eingegeben wurden. Auch fehlt nach der Serververbindung der „New Line“- Befehl. Weshalb erst der 2. eingegeben Text gut sichtbar ist. Für einen ersten Test des Boards reicht es jedoch aus.

Quellen

https://github.com/jandrassy/UnoWiFiDevEdSerial1#writing-sketches-for-esp8266

https://github.com/esp8266/Arduino/issues/3004

https://community.blynk.cc/t/uno-wifi-r3-atmega328p-esp8266-board-32mb-memory-usb-ttl-ch340g-compatible-for/21564

https://github.com/gmag11/FirmataMaster

https://www.arduino.cc/reference/en/language/functions/communication/serial/