Alle Beiträge von sfambach

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.

Bilder

Ü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ü.

Quellen

https://github.com/nodemcu

Comparison of ESP8266 NodeMCU development boards

Powering the ESP-12E NodeMCU Development Board

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.

[gistpen id=“353″]

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/

Java – IP Fernbedienung

Zweck des Ganzen ist eine Fernbedienung für meine Roboter.

Da alle Roboter (zumindest die fortschrittlicheren) über eine Netzwerkverbindung verfügen, möchte ich eine kleine App entwickeln, die per Konfiguration Telegramme an einen bestimmten Empfänger versenden kann.

Erster Wurf

Im ersten Schritt soll die Fernbedienung nur aus einem Tastenfeld bestehen. Der Benutzer kann die Anzahl Zeilen und Spalten bestimmen und die Knöpfe einzeln konfigurieren. Dies sollte ausreichen eine einfache Fernsteuerung zu erstellen.

Std. Layout 3 x 3 Felder
Konfigurierte Version des 3×3 Std. Layouts.

 

 

Raspberry Pi Zero W

Der kleine Bruder des Raspberry kommt mit einer WLan Karte und reduzierten Schnittstellenumfang. Er bestitzt einen Mini-HDMI Anschluss und einen Micro USB Anschluss für Periferie wie Mouse, Tastatur, USB-Festplatten usw.. Die GPIO-Pins müssen beim Zero W selbst aufgelötet werden. Wie unten zu sehen ist, gibt es ein Standardgehäuse mit passenden Ausparungen.

 

Daten im Überblick

Name Raspberry Pi zero
 
Anzahl/CPU
ARM1176JZF-S
Takt (MHz)1000
Kerne1
Digital IOs / Pins26
Analog inputs0
PWM2
SPI1
Flash Speicher micro SD Karte
SRam (KB)512
EEPROM (KB)-
WiFi2,4 GHz, 802.11 b/g/n
VerschlüsselungWEB / WPA2 / TKIP /AES
Bluetooth4.1
UART1
I2C1
Ethernet-
VideoMicro
SoundHDMI digital
USB-
Betriebsspannung [V]5
Eingangsspannung5
Strom (mA) / Standby (mA)80-120
Größe l x b x h65 x 31 x 5
Gewicht [g]9

Pining

Das Pinning ist mit dem Raspberry Pi 2 B+ gleich.

Headless Installation

Raspberry Pi Zero W – Headless Installation

Quellen

https://raspberry.tips/raspberrypi-tutorials/raspberry-pi-modell-b-plus-gpio-pins-worksheet/

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

Raspberry Pi Zero W – Headless Installation

Hier findet ihr eine Anleitung zur Erstinstallation des Raspberry Pi Zero W ohne Monitor und Tastatur mit Hilfe eines Windows PCs. Der Vorteil den Pi Zero W „Kopflos“ (aus dem eng. Headless) zu betreiben ist, dass man die ganzen Adapter für HDMI und USB erstmal nicht braucht. Ausserdem muss man nicht einen extra Monitor besorgen oder den eigenen dauernd umschalten.

Es gibt viele ausführliche Berschreibungen im Netzt, auch für andere Betriebssysteme wie Linux und MAC OS, weshalb ich mich hier nur auf die Esenz beschränke. Ich habe einige gute Anleitungen, auch für andere Betreibssystem unter den Quellen gelinkt.

Benötigt wird

Installation

Erst einmal das Raspbian Image downloaden hier. Mit Hilfe des Programms Etscher wird das Raspbian Image dann an die richtigen Stellen auf der SD Karte geschrieben. Etscher kann hier gedownloaded werden. Nach dem Download das Installationsprogramm ausführen und danach das Programm starten.

Schritte:

  1.  Image auswählen
  2. als Ziel die SD-K selektieren
  3.  den Knopf Flash! betätigen

Der eigentliche Schreibvorgang dauert eine Weile. Wenn Etscher fertig ist, die SD-Karte kurz aus dem Slot nehmen und wieder einstecken. Etscher wirft nach dem flashen die SD-Karte software- technisch aus.

Mit dem Explorer das boot Laufwerk öffnen. (Achtung der Rest der SD Karte ist nicht ohne weiteres unter Windows einsehbar.

Mit dem Editor eine Datei wpa_supplicant.conf im boot Verzheichnis erstellen und darauf achten, dass Windows nicht die Endung .txt anhängt. In sie werden die WLAN Verbindungsdaten geschrieben:

[gistpen id=“368″]

Bitte die ssid und das den Key durch die eigenen WLAN Daten ersetzen.

Für den automatischen Start des SSH-Servers, der eine spätere Netzwerkverbindung zum Pi ermöglicht, bedarf es nur einer einfachen Datei mit dem namen ssh. (Auch hier darauf achten dass Windows kein .txt anhängt.

Das wars für den ersten Start. Die SD-Karte in den Raspberry stecken und einschalten. Es kann etwas dauern bis der Pi sich mit dem WLan verbunden hat, also etwas Geduld.

Um eine SSH Verbindung zum Raspberry aufzubauen, benötigt man seine Adresse oder den Namen unter dem er im Netzwerk angemeldet ist. Ich habe in meinem WLan Accesspoint (z.B. Fritzbox) nachgesehen wie die Adresse lautet.  (Es ist auch möglich den Namen zu verwenden „raspberrypi“. (Da ich aber noch einen Pi im Netz habe würde das bei mir nicht funktionieren).

Zur Verbindung muss das Programm Putty gestartet werden , der Namen oder die Adresse des Raspberry eingegeben werden und der Open Knopf gedrückt werden.

Der initiale Benutzer ist pi und das Passwort raspberry, beide in der geöffneten Konsole eingeben.

Nun kann der Raspberry nach Belieben angepasst werden. Als erstes sollte jedoch das pi Passwort geändert werden. Der Befehl hierfür lautet passwd.

Viel Spaß damit!

Quellen

https://core-electronics.com.au/tutorials/raspberry-pi-zerow-headless-wifi-setup.html

https://www.heise.de/make/meldung/Raspberry-Pi-Zero-W-Bluetooth-und-WLAN-Update-fuer-Mini-Himbeere-3637499.html

https://www.heise.de/ct/artikel/Raspberry-Pi-Das-richtige-Modell-und-Betriebssystem-die-schoensten-Projekte-3303489.html

Raspbian

Raspberry Pi Zero W ausprobiert

Raspberry Pi Zero W

 

Java Socket Konsolen Server

Die Java Socket Konsole öffnet einen Server auf einem definierten Port. Der Port kann beim Start mit übergeben werden. Wird kein Port angegeben ist der standard Port 2021.  Alles was an diesen Port gesendet wird, erscheint als zeilenbasierte Ausgabe in einem Fenster.

Das Programm ermöglicht genau eine Verbindung.  Über die Textbox am Fuß des Dialogs und den „send“ Knopf kann Text an den verbundenen Client gesendet werden.

Vorausetzung

Java Version >= 7 muss installiert sein
Wurde bis jetzt nur unter Win 10 getestet

Starten

Die Datei kann einfach per Mouse-Doppelkick gestartet werde.

Ein starten über die die Konsole, um den Port mit zu geben, sieht wie folgt aus.

Der Port kann direkt hinter dem Dateinamen angegeben werden.

Ausgabe

Dateien

Jar Archiv

SocketConsole.jar

Sourcen (Eclipse Projekt)

net.fambach.net.socket.console.zip

Probleme

Bei Problemen Mail an mich anfrage(at)fambach.net

Quellen

http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_21_006.htm

https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html

https://docs.oracle.com/javase/tutorial/networking/sockets/index.html

https://javabeginners.de/Netzwerk/Socketverbindung.php

Feuchtigkeitsmesser DHT11

Der DHT kann die Luftfeuchtigkeit mit einer Genauigkeit von 5% und die Temperatur mit einer Genauigkeit von 2°C bestimmen.

Wertebereich

Luftfeuchte: 20-80%
Temperatur: 0-50°C

Pinning

Bildergebnis für DHT11

Lib

Ardunio liefert eine Lib mit. DHT11.h Heisst  sie und es muss im Konsturktor der Sensortyp (DHT11/22)  und der verwendete Daten Pin angegeben werden.

Die Lib muss zuvor über den Library Manger der Arduino GUI installiert werden. Zusätzlich wird der generelle  Treiber für Sensoren von Adafruit benötigt.

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE); // Konstruktor

Versuchsaufbau

Ardunino

DHT10 mit Arduino Uno

ESP8266

DHT10 mit ESP8266

Probleme

fatal error: DHT.h 

Code compiliert nicht. Evtl. wurden die DHT  Bibliotheken nicht insalliert.

Installiere die DHT lib von Adafruit:

fatal error: Adafruit_Sensor.h

Installiere die Standardlib von Adafruit:

 

Quellen

Nr.16 – DHT11 und DHT22

https://www.adafruit.com/product/386

https://learn.adafruit.com/dht

 

Raspberry PI 3

Der Raspberry Pi 3 ist im Februar 2016 erschienen und löst seinen Vorgänger mit neuen Komponenten ab. Neben einer integrierten WLan Karte besitzt er einen ARM Cortex-A53 Prozessor. Die vier Kerne werden mit 1200 MHz getaktet wird.  Der Arbeitsspeicher ist mit 1024 MB doppelt so groß.

Daten im Überblick

Name Raspberry Pi 3.0 
Anzahl/CPU
ARM Cortex-A53
Takt (MHz)1200/1400
Kerne4
Digital IOs / Pins26
Analog inputs0
PWM2
SPI1
Flash Speicher micro SD Karte
SRam (KB)1024
EEPROM (KB)-
WiFi2,4 GHz 80.11, b/g/n
VerschlüsselungWEB / WPA2 / TKIP /AES
Bluetooth4.1/4.2
UART1
I2C1
Ethernet10/100/100 MBit
Videonormal
Sound3,5 Klinke Stereo
USB-
Betriebsspannung [V]5
Eingangsspannung5
Strom (mA) / Standby (mA)260-730
Größe l x b x h93 x 63,5 x 20
Gewicht [g]40

Headless setup

https://caffinc.github.io/2016/12/raspberry-pi-3-headless/

Aufbau der Platine und Pinout

Pinning für Programmiersprachen

Java

Quellen

Raspberry Pi 3 Model B

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

http://www.pi4j.com