• Erste Schritte
  • Hardware & GPIO
  • Projekte
  • Software
    • Webserver
  • Arduino & ESP8266
  • Hausautomatisierung
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Einstieg
    • Erste Schritte
      • Raspberry Pi 3 Einstieg - Starter KitWas brauche und wie starte ich? – Raspberry Pi Einstieg
    • Einrichtung
      • microsd_karte_menuRaspbian Betriebssystem auf eine SD Karte flashen – Einfach & Schnell
      • wlanbluetooth_menuWLAN und Bluetooth einrichten – Raspberry Pi 4
      • wifi_menuWLAN Stick installieren und einrichten – Alternative
      • bash_menuSSH Zugriff einrichten via Putty – Kommandozeilen Zugriff
      • rdp_menuRemotedesktop Verbindung aufbauen – Fernsteuerung
    • Einsteiger Projekte
      • Sinnvolles Raspberry Pi Zubehör
      • 15 Raspberry Pi Projekte für Anfänger
      • Ampelschaltung mit GPIOs
      • GPIOs mit Port Expander erweitern
      • Elektronischer Würfel
      • 13 tolle Projekte für Kinder und Jugendliche
      • Roboter selber bauen
      • In Visual Studio Code mit C++ programmieren
      • Wünsch dir ein Tutorial
    • Programmieren lernen
      • Teil 1: Einführung
      • Teil 2: GPIOs steuern
      • Teil 3: GUI erstellen
      • Teil 4: PWM
      • C# GUI Apps entwickeln
  • Hardware & GPIO
    • 50 der wichtigsten Raspberry Pi Sensoren und Module – Aufgelistet mit Links zu den TutorialsRaspberry Pi Sensoren
    • Beliebte Tutorials
      • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
      • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
      • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Funksteckdosen (433MHz) steuern
      • Raspberry Pi Relais ModulRaspberry Pi: Relais-Schalter per GPIO steuern
      • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
      • Amazon-Alexa-deutsch-auf-dem-Raspberry-Pi-installierenAmazon Alexa (Deutsch) auf dem installieren
      • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
      • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren
      • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
      • Raspberry Pi USB Boot per Stick oder SSD Festplatte einrichtenUSB Boot per Stick oder SSD Festplatte
      • Analog
        • Raspberry Pi MCP3008 ADCMCP3008: Am Raspberry Pi analoge Signale auslesen
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
        • Raspberry Pi PulsmesserRaspberry Pi Pulsmesser: Herzfrequenz messen
        • Joystick am Raspberry Pi benutzen (mit MCP3008)Joystick am Raspberry Pi benutzen (mit MCP3008)
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Drehregler - Rotary EncoderKY040 Drehregler als Lautstärkeregler für den Raspberry Pi
        • Easpberry Pi Soil SensorBodenfeuchtigkeit mit dem Raspberry Pi messen
        • Raspberry Pi KeypadRaspberry Pi Keypad anschließen – Codeschloss
        • Raspberry Pi door sensorÜberwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
        • Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)
      • Funk
        • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
        • Remote Control Raspberry Pi 433Mhz Radio TransmitterRaspberry Pi mit 433Mhz Funksender fernsteuern
        • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433MHz) steuern
        • Raspberry Pi MiFlora - Xiaomi Pflanzensensor in OpenHAB einbindenMiFlora – Xiaomi Pflanzensensor ins Smart Home einbinden
        • Raspberry Pi RFID RC522 TüröffnerRaspberry Pi RFID RC522 Tags auslesen (NFC)
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation (2.4 GHz): Arduino & Raspberry Pi
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen
        • Raspberry Pi Xbox 360 Wireless ControllerRaspberry Pi mittels Xbox 360 Controller steuern
        • Raspberry Pi GSM Modul - Huawei Internet SticksRaspberry Pi GSM Modul – Mobiles Internet
        • Raspberry Pi Bluetooth DatentransferRaspberry Pi Bluetooth Datentransfer zum Smartphone
      • Infrarot & Laser
        • Raspberry Pi Infrarot FernbedienungRaspberry Pi: Per IR Remote Befehle ausführen
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Laser Lichtschranke für weite DistanzenRaspberry Pi Laser Lichtschranke für weite Distanzen
        • Infrarot Raspberry Pi FernbedienungInfrarot Steuerung einrichten
        • Raspberry Pi Infrarot Lichtschranke bauen und Geschwindigkeit messenRaspberry Pi Infrarot Lichtschranke bauen
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
      • Temperatur & Navigation
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorRaspberry Pi: Luftfeuchtigkeit und Temperatur messen
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Raspberry Pi RTC Real Time ClockReal Time Clock Modul steuern
        • Rotation und Beschleunigung mit dem Raspberry Pi messenRotation und Beschleunigung mit dem Raspberry Pi messen
        • Raspberry Pi GPS ModulRaspberry Pi GPS Ortungs- / Navigationsgerät bauen
        • Raspberry Pi Kompass selber bauenRaspberry Pi Kompass selber bauen (HMC5883L)
        • Kontaktlosen Infrarot-Temperatursensor MLX90614 am Raspberry Pi auslesenMLX90614 – Kontaktlos Temperaturen messen
      • Displays
        • Raspberrry Pi HD44780 I2CHD44780 LCD Display per I2C ansteuern
        • Raspbery Pi LCD DisplayRaspberry Pi LCD Display: 16×2 Zeichen anzeigen
        • DisplayTipps & Tricks zum offiziellen 7″ Raspberry Pi Touchscreen
        • Raspberry Pi TouchscreenTestbericht zum 7″ Raspberry Pi Touchscreen Display
        • LCD Touch Display (3.2″) am Raspberry PiLCD Touch Display (3.2″) am Raspberry Pi
        • tft lcd touch displayRaspberry Pi LCD Touch Display Teil 2 – Anpassungen
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtRaspberry Pi LED Matrix – Projektübersicht
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige mit MAX7219 am Raspberry Pi (Anode)
        • Raspberry Pi Tablet Raspad TestberichtRaspberry Pi Tablet „Sunfounder RasPad“ Testbericht
      • Motoren & Sonstige
        • Raspberry Pi Stepper Motor Control with L293D / ULN2003ARaspberry Pi Schrittmotor ansteuern
        • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
        • Raspberry Pi PCA9685 mehrere Servos gleichzeitig steuernMehrere Servo Motoren per Raspberry Pi steuern
        • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
        • How to use a Raspberry Pi Fingerprint Sensor for AuthenticationRaspberry Pi Fingerprint Sensor zur Authentifizierung nutzen
        • Raspberry Pi Akku AdapterRaspberry Pi mit Akkus/Batterien betreiben
        • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
        • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
        • Raspberry Pi WS2812 RGB LED StripWS2812 RGB LED Streifen per Raspberry Pi steuern
        • Raspberry Pi Überwachungskamera LivestreamÜberwachungskamera Livestream einrichten
        • NoIRAufnahmen mit dem offiziellen Kamera Modul
        • Raspberry Pi Zero - establishing an Ethernet connection (ENC28J60)Raspberry Pi Zero – Ethernet Verbindung
  • Software
    • Webserver Installation
      • apache2_menu25Teil 1 – Apache2
      • php_menu25Teil 2 – PHP 5
      • mysql_menu25Teil 3 – MySQL
      • phpmyadmin_menu25Teil 4 – phpMyAdmin
      • ftp_menu25Teil 5 – FTP Server
      • dns_menu25Teil 6 – DNS Server via No-IP
      • home_menu25Homeverzeichnis ändern
      • share_25Samba Server: Dateien im Netzwerk teilen
      • nodejs_menu25Node.js Webserver installieren und GPIOs schalten
      • ssl_menu25SSL Zertifikat kostenlos mit Let’s Encrypt
      • wordpress_25Eigenen WordPress-Server einrichten
      • cloud-25Nextcloud auf dem Raspberry Pi installieren
    • Entertainment
      • led_menu25Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen
      • amazon_menu25Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
      • controller_25Raspberry Pi RetroPie – Spielekonsole selber bauen
      • kodi_menu25Mediencenter Raspbmc als SmartTV mit dem Raspberry Pi
      • android_25Android TV Box zum selber bauen
      • apple-2316234_640Raspberry Pi als AirPlay-Empfänger
      • jukebox_menu25Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.)
      • steam_25Steam Spiele streamen
      • minecraft_menu25Raspberry Pi Minecraft Server
      • youtube_25YouTube Live Streaming einrichten
      • qr-code-tutorials-raspberrypi.de_25Raspberry Pi QR / Barcode Scanner
    • Fernsteuerung
      • rdp_menuRaspberry Pi Remotedesktop Verbindung
      • ssh_menu25SSH Zugriff einrichten via Putty (Windows)
      • vnc_menu25Raspberry Pi mittels VNC fernsteuern
      • welcome_menu25SSH Terminal Begrüßung ändern
      • telegram1_menu25Telegram Messenger auf dem RaspberryPi
      • telegram2_menu25Mit Telegram Messenger Raspberry Pi steuern
      • bluet_menu25Raspberry Pi Bluetooth Datentransfer zum Smartphone
      • alexa_voice_25Eigenen Raspberry Pi Alexa Skill bauen
      • microphone_25Sprachsteuerung selber bauen
      • mqtt_25MQTT Broker/Client Funkkommunikation
      • mail_25Vom Raspberry Pi Emails senden
      • twitter_25Per Twitter Bot Nachrichten posten
    • Weitere
      • loggen_menu25Sensordaten mit ThingSpeak loggen und auswerten
      • mysql_datalogger25Per lokaler MySQL Datenbank zum Raspberry Pi Datenlogger
      • opencv_menu25OpenCV auf dem Raspberry Pi installieren
      • arduino_menu30tWiringPi installieren & Pinbelegung (Raspberry Pi)
      • radio_menu25Raspberry Pi als Radio Sendestation
      • win10_menu25Windows 10 IoT auf dem Raspberry Pi installieren
      • printer_25Drucker einrichten und per Knopfdruck Bilder drucken
      • gsm_menu25Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
      • autostart_menu25Autostart: Programm automatisch starten lassen
      • machine-learning-25Raspberry Pi Machine Learning erlernen
  • Projekte
      • roboter_menu30tRoboter
        • Raspberry Pi Roboter ProjektRaspberry Pi Roboter Projektübersicht
        • Raspberry Pi Roboter Bausatz fertigTeil 1: Zusammenbau
        • Raspberry Pi Roboter - Linien folgenTeil 2: Linien folgen lassen
        • Raspberry Pi Roboter per Infrarot Fernbedienung steuernTeil 3: Per Infrarot Fernbedienung steuern
        • Raspberry Pi Roboter: Ultraschall AutopilotTeil 4: Automatisch Hindernissen ausweichen
        • Raspberry Pi Roboter der eigenen Stimme folgen lassenTeil 5: Der eigenen Stimme folgen lassen
        • Raspberry Pi Roboter mit Xbox 360 Controller fernsteuernTeil 6: Mit Xbox 360 Controller Roboter fernsteuern
        • Raspberry Pi Robot Arm 6DOF6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)
      • led_menu30LED Matrix
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtMAX7219 LED Matrix – Projektübersicht
        • 8×8 LED Dot Matrix Parts8×8 LED Matrix – Zusammenbau und Installation
        • Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED MatrizenBibliothek für mehrzeilige m x n MAX7219 LED Matrizen
        • Graphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnenGraphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnen
        • Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry PiPong auf MAX7219 Matrizen spielen (mit Joystick)
        • Snake auf Raspberry Pi MAX7219 Matrizen spielenSnake auf Raspberry Pi MAX7219 Matrizen spielen
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige (Anode) mit MAX7219/MAX7221
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
      • wetterstation_menu30Wetterstation
        • Raspberry Pi Wetterstation mit OpenHAB 2 bauenEigene Raspberry Pi Wetterstation mit OpenHAB 2 bauen
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
        • raspberry_pi_thingspeak_daten_loggenSensordaten mit ThingSpeak loggen und auswerten
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
      • arduino_menu30tArduino & ESP8266
        • ESP8266 Microcontroller BoardEinführung & Programmierung des ESP8266 NodeMCU Boards
        • Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten sendenRaspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Mit dem NodeMCU ESP8266 433MHz Funksteckdosen steuernMit dem NodeMCU ESP8266 433MHz Funksteckdosen steuern
        • ESP8266 NodeMCU HD44780 LCD Display per I2C steuernNodeMCU ESP8266: HD44780 LCD Display per I2C steuern
        • ESP8266 Grafikdisplay: Am SSD1306 OLED per I2C Bilder & Text anzeigen
        • ESP8266 Google Maps API RoutenplanerESP8266 Google Maps API Routenplaner auf LCD anzeigen
        • 2000px-Arduino_Logo.svgRaspberry Pi und Arduino – Einführung
        • arduino unoArduino und Raspberry Pi miteinander kommunizieren lassen
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
        • NodeMCU: ESP8266 mit Solarpanel und Akku mit Strom versorgenNodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen
        • ESP8266 Access Point: Günstigen Wlan Repeater selber bauenESP8266 Access Point: Günstigen Wlan Repeater selber bauen
      • Mini Projekte
        • Raspberry Pi Gewächshaus automatisch selber bauenAutomatisches Raspberry Pi Gewächshaus selber bauen
        • Eigene Raspberry Pi Gartenbewässerung mit Webseite bauenEigene Gartenbewässerung mit Webseite bauen
        • Raspberry Pi Radio StationRaspberry Pi als Radio Sendestation verwenden
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen (Autoradio, Car PC)
        • spotify-logo-primary-horizontal-dark-background-rgbRaspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
        • Raspberry Pi RetroPie Guide - SNES Classic Spielekonsole selber bauenRaspberry Pi RetroPie Guide – SNES Spielekonsole bauen
        • Android + Raspberry Pi: Funksteckdosen App BedienungRaspberry Pi + Android/iOS: Funksteckdosen per App schalten
        • Indirekte Deckenbeleuchtung selber bauen mit farbigem LED LichtIndirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht
  • Sonstiges
    • Wünsch dir ein Tutorial
    • News
    • Reviews
      • Pi Cap – Kapazitives Raspberry Pi Erweiterungsboard
      • Raspberry Pi Tablet „Sunfounder RasPad“ – Testbericht & Einrichtung
      • Testbericht zum 7″ Raspberry Pi Touchscreen Display
      • CrowPi 2 Testbericht: Laptop & Lern-Kit für Kinder
      • Daten auf dem Wio Terminal LCD Screen anzeigen
    • Raspberry Pi Zero
      • Offizielles 5$ Raspberry Pi Zero Modul vorgestellt
      • Raspberry Pi Zero – Ethernet Verbindung herstellen (ENC28J60)
      • Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern
  • Hausautomation
    • OpenHAB
      • steckdose_25Sonoff S20 Wifi Steckdose steuern
      • wireless_25Funksteckdosen (433 MHz) schalten
      • schalter_25Relais steuern (Rollladen, Lichter, etc.)
      • wetterstation_menu30Wetterstation mit OpenHAB 2 bauen
      • ws28_25WS28xx RGB LED Streifen steuern
      • touchscreen_25Touchscreen Panel bei Näherung aktivieren
      • mqtt_25MQTT Datenabfrage: Raspberry Pi an ESP8266
      • spotify_25Remote Spotify Player im Smart Home
      • heizung_25eQ-3 Thermostat im Smart Home
    • Einführung
      • Raspberry Pi Smart Home OpenHAB installierenOpenHAB installieren & konfigurieren
      • Home Assistant auf dem Raspberry Pi – Erste Schritte
    • ESP8266 NodeMCU
      • esp8266_25Einführung & Programmierung
      • arduino_25ESP8266: Arduino IDE installieren
      • lcd_25NodeMCU HD44780 LCD
      • battery_25Batteriebetrieb via Deep-Sleep
      • wifi_menuPer WLAN Daten senden
      • wetterstation_menu30Wetterstation Außenposten
      • maps_25Google Maps Routenplaner
      • wireless_25NodeMCU Funksteckdosen steuern
      • mail_25Vom NodeMCU Emails versenden
      • rgb_25WS2812B LEDs am Smartphone steuern
      • solar_25ESP8266 Stromversorgung mit Solarzelle
    • Überwachung
      • Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi
      • Raspberry Pi: Überwachungskamera Livestream einrichten
      • mailbox_25Briefkasten Sensor – Email Benachrichtigung bei neuer Post
      • Raspberry Pi Überwachungskamera mit Webcam betreiben
      • Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
      • ESP32 Cam Livestream Tutorial für Kamera Modul
    • Raspberry Pi + Android: Benachrichtigungen von Bewegungsmelder
    • Raspberry Pi + Android/iOS: Funksteckdosen per App schalten
    • Raspberry Pi + Android: Schwenkbarer Kamera-Livestream
      • Smart Home
        • Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
        • Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial
        • Raspberry Pi Sprachsteuerung selber bauen (Hausautomatisierung)
  • Englisch
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Arduino & ESP8266»Raspberry Pi Daten auf dem Wio Terminal LCD Screen anzeigen

Raspberry Pi Daten auf dem Wio Terminal LCD Screen anzeigen

Facebook Twitter LinkedIn Tumblr Email Reddit
Raspberry Pi Daten auf dem Wio Terminal LCD Screen anzeigen
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Das Wio Terminal von Seeed Studio ist ein Entwicklungsgerät, das standalone oder z.B. mit dem Raspberry Pi betrieben werden kann. Hierbei ist es möglich einfache Daten, wie Speicherinformationen, CPU Auslastung, etc. anzuzeigen, oder den Pi sogar um einen dritten Screen zu erweitern.

Daneben bringt das Wio Terminal u.a. auch ein Gyroskop, SD-Karten-Slot, Mikrofon, Buzzer, Buttons, uvm. mit. All diese Bausteine können individuell oder durch den Raspberry Pi ausgelesen und programmiert werden. In diesem Tutorial fokussieren wir uns darauf, wie man vom Raspberry Pi verschiedene System-Daten an das Wio Terminal per serieller Schnittstelle sendet und diese anzeigt.

 

Zubehör & Spezifikationen

In diesem Tutorial werden wir lediglich folgende Teile benötigen:

  • Wio Terminal von Seeed Studio
  • Raspberry Pi
  • USB Type-C Kabel

Wie bereits erwähnt, hat das Wio Terminal (D51R) interessante Hardware-Spezifikationen:

 

 

Hauptchip

Prozessor

ARM® Cortex®-M4F

Maximum Speed

200MHz

Externer Flash Speicher

4 MB

LCD

Auflösung

320 x 240 Pixel

Größe

2.4 Zoll

Kabellose Verbindungen

WLAN

802.11 a/b/g/n 1×1, 2.4GHz & 5GHz

Bluetooth

unterstützt BLE5.0

Module

Gyroskope

LIS3DHTR

Mikrofon

1.0V-10V -42dB

Lautsprecher

≥78dB @10cm 4000Hz

Lichtsensor

400-1050nm

Infrarotsender

940nm

Interfaces

MicroSD Karten Slot

max. 16GB

GPIO

40-PIN (kompatibel mit dem Raspberry Pi)

Grove

2 (multifunktional)

FPC

20 Pins

USB Type-C

Power & USB-OTG

Wio-Terminal-KeyFeatureWio Terminal Inputs (Quelle)
 

Wio Terminal Vorbereitung – Installation der Arduino IDE

Der Code für das Wio Terminal wird über die Arduino IDE übertragen. Auch für den Arduino bzw. ESP8266 nutzen wir die IDE. Falls du sie noch nicht installiert hast, fange damit an. Nun laden wir uns noch die LCD Library von Seeed Studio von Github (Code > Download ZIP).

https://github.com/Seeed-Studio/Seeed_Arduino_LCD

Anschließend wählen wir in der Arduino IDE unter „Sketch“ > „Include Library“ > „Add ZIP Library“ die geladene Datei aus.

Arduino IDE -Add ZIP Library

Danach wählen wir im gleichen Menüpunkt „Manage Libraries“ aus, suchen nach Adafruit Zero DMA und installieren sie.

Adafruit Zero DMA Library

 

Zu guter Letzt geben wir unter „File“ > „Preferences“ > „Additional Board Manager URLs“ noch folgende URL an:

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

Falls du bereits für den ESP8266 eine URL eingetragen hast, ist das kein Problem. Du kannst pro Zeile einen Wert hinterlegen.

Arduino IDE ESP8266 Board

Unter „Tools“ werden nun weitere Boards angezeigt. Als letzten Punkt wählen wir „Tools“ > „Board“ > „Seeed SAMD …“ > „Seeduino Wio Terminal“ aus. Übernimm ebenfalls die weiteren Einstellungen, falls sie nicht wie hier gezeigt sind:

Arduino IDE - Wio Terminal Settings

Wenn du das Modul nun per USB anschließt, sollte der Port direkt erkannt werden (du musst ihn vorher mit dem linken Button starten).

 

Coding – Wio Terminal & Raspberry Pi

Wir fangen damit an, den Code auf das Wio Terminal zu laden. Lege dazu auf deinem PC einen Ordner mit dem Namen „readRasp“ an und erstelle dort eine Datei namens „readRasp.ino“ (alternativ von hier herunterladen und einfügen). Die Datei kann mit der Arduino IDE bearbeitet werden und bekommt folgenden Inhalt:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
#include"TFT_eSPI.h"
#include"Free_Fonts.h" //include the header file
TFT_eSPI tft;
 
char buffer[100];
String CPU_temp, CPU_usage, Ram_total, Ram_used, Ram_free, Disk_total, Disk_used, Disk_Per;
 
const unsigned char ram[] = {
  0x00, 0xC3, 0x18, 0xC3, 0x00, 0x00, 0xE7, 0x18, 0xE7, 0x00, 0x00, 0xC3,
  0x18, 0xC3, 0x00, 0x00, 0xC3, 0x18, 0xC3, 0x00, 0x00, 0xE7, 0x18, 0xE7,
  0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0xE0,
  0x01, 0x00, 0x80, 0x07, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00,
  0x00, 0xFE, 0x72, 0xF0, 0xFF, 0x0F, 0x4E, 0x60, 0xF8, 0xFF, 0x1F, 0x06,
  0x60, 0x3C, 0x00, 0x3C, 0x06, 0x72, 0x1C, 0x00, 0x38, 0x4E, 0x7F, 0x0C,
  0x00, 0x30, 0xFE, 0x7F, 0x0C, 0x00, 0x30, 0xFE, 0x60, 0x0C, 0x00, 0x30,
  0x06, 0x60, 0x0C, 0x00, 0x30, 0x06, 0x60, 0x0C, 0x00, 0x30, 0x06, 0x7F,
  0x0C, 0x00, 0x30, 0xFE, 0x7F, 0x0C, 0x00, 0x30, 0xFE, 0x60, 0x0C, 0x00,
  0x30, 0x06, 0x60, 0x0C, 0x00, 0x30, 0x06, 0x60, 0x0C, 0x00, 0x30, 0x06,
  0x7F, 0x0C, 0x00, 0x30, 0xFE, 0x7F, 0x0C, 0x00, 0x30, 0xFE, 0x72, 0x1C,
  0x00, 0x38, 0x4E, 0x60, 0x3C, 0x00, 0x3C, 0x06, 0x60, 0xF8, 0xFF, 0x1F,
  0x06, 0x72, 0xF0, 0xFF, 0x0F, 0x4E, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0xFF,
  0x00, 0x00, 0x00, 0xFF, 0xE0, 0x01, 0x00, 0x80, 0x07, 0xC0, 0xFF, 0xFF,
  0xFF, 0x03, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xE7, 0x18, 0xE7, 0x00,
  0x00, 0xC3, 0x18, 0xC3, 0x00, 0x00, 0xC3, 0x18, 0xC3, 0x00, 0x00, 0xE7,
  0x18, 0xE7, 0x00, 0x00, 0xC3, 0x18, 0xC3, 0x00, };
 
const unsigned char cpu[] = {
  0x00, 0x42, 0x18, 0x42, 0x00, 0x00, 0x42, 0x18, 0x42, 0x00, 0x00, 0x42,
  0x18, 0x42, 0x00, 0x00, 0x42, 0x18, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0xC0,
  0x00, 0x00, 0x00, 0x03, 0x40, 0x00, 0x00, 0x00, 0x02, 0x4F, 0x00, 0x00,
  0x00, 0xF2, 0x40, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x02,
  0x40, 0x00, 0x00, 0x00, 0x02, 0x40, 0xF0, 0xFF, 0x0F, 0x02, 0x4F, 0xF8,
  0xFF, 0x1F, 0xF2, 0x40, 0x18, 0x00, 0x18, 0x02, 0x40, 0xD8, 0xBD, 0x1E,
  0x02, 0x40, 0x78, 0xBC, 0x1E, 0x02, 0x40, 0x78, 0xA4, 0x1E, 0x02, 0x4F,
  0x78, 0xBC, 0x1E, 0xF2, 0x4F, 0x78, 0xBC, 0x1E, 0xF2, 0x40, 0x78, 0x84,
  0x1E, 0x02, 0x40, 0x78, 0x84, 0x1E, 0x02, 0x40, 0xD8, 0x85, 0x1B, 0x02,
  0x40, 0x18, 0x00, 0x18, 0x02, 0x4F, 0xF8, 0xFF, 0x1F, 0xF2, 0x40, 0xF0,
  0xFF, 0x0F, 0x02, 0x40, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
  0x02, 0x40, 0x00, 0x00, 0x00, 0x02, 0x4F, 0x00, 0x00, 0x00, 0xF2, 0x40,
  0x00, 0x00, 0x00, 0x02, 0xC0, 0x00, 0x00, 0x00, 0x03, 0x80, 0xFF, 0xFF,
  0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x42, 0x18, 0x42, 0x00, 0x00, 0x42, 0x18, 0x42, 0x00, 0x00, 0x42,
  0x18, 0x42, 0x00, 0x00, 0x42, 0x18, 0x42, 0x00, };
 
const unsigned char disk[] = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x03, 0xFC, 0xFB,
  0xFF, 0xDF, 0x06, 0x06, 0x02, 0x00, 0x40, 0x0C, 0x06, 0x02, 0x00, 0x5F,
  0x18, 0x06, 0x02, 0x00, 0x51, 0x30, 0x06, 0x02, 0x00, 0x59, 0x60, 0x06,
  0x02, 0x00, 0x59, 0x40, 0x06, 0x02, 0x00, 0x59, 0x60, 0x06, 0x02, 0x00,
  0x59, 0x60, 0x06, 0x02, 0x00, 0x59, 0x60, 0x06, 0x02, 0x00, 0x5F, 0x60,
  0x06, 0x02, 0x00, 0x40, 0x60, 0x06, 0xFE, 0xFF, 0x7F, 0x60, 0x06, 0x00,
  0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x00,
  0x60, 0x06, 0x00, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x00, 0x60, 0xC6,
  0xFF, 0xFF, 0xFF, 0x63, 0x66, 0x00, 0x00, 0x00, 0x66, 0x26, 0x00, 0x00,
  0x00, 0x64, 0x26, 0x00, 0x00, 0x00, 0x64, 0x26, 0x00, 0x00, 0x00, 0x64,
  0x26, 0xFC, 0xFF, 0x3F, 0x64, 0x26, 0xFC, 0xFF, 0x3F, 0x64, 0x26, 0x00,
  0x00, 0x00, 0x64, 0x26, 0x00, 0x00, 0x00, 0x64, 0x26, 0xFC, 0xFF, 0x3F,
  0x64, 0x26, 0x00, 0x00, 0x00, 0x64, 0x26, 0x00, 0x00, 0x00, 0x64, 0x26,
  0x00, 0x00, 0x00, 0x64, 0x26, 0xFC, 0xFF, 0x3F, 0x64, 0x26, 0x00, 0x00,
  0x00, 0x64, 0x26, 0x00, 0x00, 0x00, 0x64, 0x26, 0x00, 0x00, 0x00, 0x64,
  0x26, 0x00, 0x00, 0x00, 0x64, 0xEC, 0xFF, 0xFF, 0xFF, 0x37, 0xF8, 0xFF,
  0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, };
 
 
String getStringPartByNr(String data, char separator, int index)
{
    // spliting a string and return the part nr index
    // split by separator
    
    int stringData = 0;        //variable to count data part nr
    String dataPart = "";      //variable to hole the return text
    
    for(int i = 0; i<data.length()-1; i++) {    //Walk through the text one letter at a time
      
      if(data[i]==separator) {
        //Count the number of times separator character appears in the text
        stringData++;
        
      }else if(stringData==index) {
        //get the text when separator is the rignt one
        dataPart.concat(data[i]);
        
      }else if(stringData>index) {
        //return text and stop if the next separator appears - to save CPU-time
        return dataPart;
        break;    
      }
    }
    //return text if this is the last part
    return dataPart;
}
 
void setup() {
  // initialize  serial ports:
  Serial.begin(115200);
  Serial.flush();
 
  tft.begin();
  tft.setRotation(3);
 
  //Homescreen when there is no data
  tft.fillScreen(TFT_WHITE);
  while(1) {
    HomeScreen();
    if (Serial.available())
      break;
   }
}
void loop() {
  // Try to get the data from serial port
  if (Serial.available() > 0) {    
    int index = 0;
    int numChar = Serial.available();
    if (numChar>50) {
      numChar=50;
    }
    memset(buffer, 0, sizeof(buffer));
    while (numChar--) {
      buffer[index++] = Serial.read();
    }
    
    CPU_temp = getStringPartByNr(buffer, '.', 0);
    CPU_usage = getStringPartByNr(buffer, ':', 1);
    Ram_total = getStringPartByNr(buffer, ':', 2);
    Ram_used = getStringPartByNr(buffer, ':', 3);
    Ram_free = getStringPartByNr(buffer, ':', 4);
    Disk_total = getStringPartByNr(buffer, ':', 5);
    Disk_used = getStringPartByNr(buffer, ':', 6);
    Disk_Per = getStringPartByNr(buffer, ':', 7);
    
  }
 
    //checking the last piece of data is not empty
    if (Disk_Per != "") {
      TempScreen();
      delay(2000);
      RamScreen();
      delay(2000);
      DiskScreen();
      delay(2000);
    }
}
 
void TempScreen() {
  tft.fillScreen(TFT_BLACK);
  tft.setTextColor(TFT_WHITE);
  tft.setTextSize(1);
  tft.setFreeFont(FSSB12); //select Free, Sans, Bold, Oblique, 12pt.
  tft.drawString("Raspberry CPU Data",40,17);
  tft.drawFastHLine(0,45,320,TFT_RED);
  tft.drawFastHLine(0,46,320,TFT_RED);
  tft.drawFastHLine(0,47,320,TFT_RED);
  tft.drawRoundRect(34,66,82,32,5,TFT_WHITE);
  tft.fillRoundRect(35,67,80,30,5,TFT_DARKGREY);
  tft.setFreeFont(FMB12);
  tft.setTextColor(TFT_WHITE);
  tft.drawString("TEMP:",40,70);
 
  tft.drawRoundRect(34,116,92,32,5,TFT_WHITE);
  tft.fillRoundRect(35,117,90,30,5,TFT_DARKGREY);
  tft.drawString("USAGE:",40,120);
 
  tft.drawFastHLine(0,220,320,TFT_RED);
  tft.drawFastHLine(0,221,320,TFT_RED);
  tft.drawFastHLine(0,222,320,TFT_RED);
 
  tft.fillCircle(15,80, 5, TFT_DARKGREY);
  tft.fillCircle(15,130, 5, TFT_DARKGREY);
  tft.drawCircle(15,80,6,TFT_WHITE);
  tft.drawCircle(15,130,6,TFT_WHITE);
  
  tft.setTextColor(TFT_WHITE);
  tft.drawString(CPU_temp+'C',130,70);
  tft.drawString(CPU_usage+'%',130,120);
 
  tft.drawXBitmap(245,110,cpu, 40, 40, TFT_DARKGREY);
}
 
void RamScreen() {
  tft.fillScreen(TFT_BLACK);
  tft.setTextColor(TFT_WHITE);
  tft.setTextSize(1);
  tft.setFreeFont(FSSB12); //select Free, Sans, Bold, Oblique, 12pt.
  tft.drawString("Raspberry RAM Data",40,17);
  tft.drawFastHLine(0,45,320,TFT_BLUE);
  tft.drawFastHLine(0,46,320,TFT_BLUE);
  tft.drawFastHLine(0,47,320,TFT_BLUE);
  tft.drawRoundRect(34,66,92,32,5,TFT_WHITE);
  tft.fillRoundRect(35,67,90,30,5,TFT_PINK);
  tft.setFreeFont(FMB12);
  tft.setTextColor(TFT_WHITE);
  tft.drawString("TOTAL:",40,70);
 
  tft.drawRoundRect(34,116,92,32,5,TFT_WHITE);
  tft.fillRoundRect(35,117,90,30,5,TFT_PINK);
  tft.drawString("USED:",40,120);
 
  tft.drawRoundRect(34,166,92,32,5,TFT_WHITE);
  tft.fillRoundRect(35,167,90,30,5,TFT_PINK);
  tft.drawString("FREE:",40,170);
 
  tft.drawFastHLine(0,220,320,TFT_BLUE);
  tft.drawFastHLine(0,221,320,TFT_BLUE);
  tft.drawFastHLine(0,222,320,TFT_BLUE);
 
  tft.fillCircle(15,80, 5, TFT_PINK);
  tft.fillCircle(15,130, 5, TFT_PINK);
  tft.fillCircle(15,180, 5, TFT_PINK);
  tft.drawCircle(15,80,6,TFT_WHITE);
  tft.drawCircle(15,130,6,TFT_WHITE);
  tft.drawCircle(15,180,6,TFT_WHITE);
 
  tft.setTextColor(TFT_WHITE);
  tft.drawString(Ram_total+"MB",130,70);
  tft.drawString(Ram_used+"MB", 130,120);
  tft.drawString(Ram_free+"MB", 130,170);
 
  tft.drawXBitmap(245,110,ram, 40, 40, TFT_PINK);
}
 
void DiskScreen() {
  tft.fillScreen(TFT_BLACK);
  tft.setTextColor(TFT_WHITE);
  tft.setTextSize(1);
  tft.setFreeFont(FSSB12);
  tft.drawString("Raspberry Disk Data",35,17);
  tft.drawFastHLine(0,45,320,TFT_ORANGE);
  tft.drawFastHLine(0,46,320,TFT_ORANGE);
  tft.drawFastHLine(0,47,320,TFT_ORANGE);
  tft.drawRoundRect(34,66,92,32,5,TFT_WHITE);
  tft.fillRoundRect(35,67,90,30,5,TFT_DARKCYAN);
  tft.setFreeFont(FMB12);
  tft.drawString("TOTAL:",40,70);
 
  tft.drawRoundRect(34,116,92,32,5,TFT_WHITE);
  tft.fillRoundRect(35,117,90,30,5,TFT_DARKCYAN);
  tft.drawString("USED:",40,120);
 
  tft.drawRoundRect(34,166,92,32,5,TFT_WHITE);
  tft.fillRoundRect(35,167,90,30,5,TFT_DARKCYAN);
  tft.drawString("PERC.:",40,170);
 
  tft.drawFastHLine(0,220,320,TFT_ORANGE);
  tft.drawFastHLine(0,221,320,TFT_ORANGE);
  tft.drawFastHLine(0,222,320,TFT_ORANGE);
 
  tft.fillCircle(15,80, 5, TFT_DARKCYAN);
  tft.fillCircle(15,130, 5, TFT_DARKCYAN);
  tft.fillCircle(15,180, 5, TFT_DARKCYAN);
  tft.drawCircle(15,80,6,TFT_WHITE);
  tft.drawCircle(15,130,6,TFT_WHITE);
  tft.drawCircle(15,180,6,TFT_WHITE);
 
  if (Disk_Per != 0) {
    int perc = atoi(Disk_Per.c_str());
    float ratio = perc*(0.01) * 30;
    tft.drawRect(180,168,10,30,TFT_WHITE);
    tft.fillRect(180,(168+(30-(int)ratio)),10,(int)ratio,TFT_WHITE);
  }
  
  tft.drawString(Disk_total+'B',130,70);
  tft.drawString(Disk_used+'B', 130,120);
  tft.drawString(Disk_Per+'%', 130,170);
 
  tft.drawXBitmap(245,110,disk, 40, 40, TFT_DARKCYAN);
  
}
 
void HomeScreen() {
  tft.setFreeFont(FSSB9);
  tft.setTextColor(TFT_BLACK);
  tft.drawString("Starting...", 120,120);
}
 

Zusätzlich laden von hier noch die Datei „Free_Fonts.h“ und legen sie in den Ordner.

Bevor wir weiter machen werfen wir kurz einen Blick auf den Code:

  • Zeile 5/6: Zuweisungen von Variablen
  • Zeile 8-63: Bitmap Arrays
  • In Zeile 66-92 ist die Funktion getStringPartByNr, welche einen String aufteilt und einen bestimmten Teil zurückgibt (mehr dazu gleich).
  • In Zeile 94-109 wird setup einmalig beim Start aufgerufen (Initialisierung, Öffnen der seriellen Schnittstelle)
  • Zeile 111-144: loop – wird per Endlosschleife aufgerufen – hier wird das Rendering aufgerufen. Wir warten auf eine Nachricht über die serielle Schnittstelle und extrahieren die Daten daraus. Anschließend werden 3 Screens mit jeweils 2 Sekunden Verzögerung hintereinander angezeigt.
  • Ab Zeile 146: Render Funktionen der einzelnen Screens. Mittels tft können die LCD Funktionen des Wio Terminals aufgerufen werden (und damit können Grafiken gezeichnet werden).

Nun laden wir den Code auf das Gerät. Verbinde das Wio Terminal nach Abschluss des Uploads mit dem Raspberry Pi und starte beide. Am Anfang wird ein weißer Screen mit „Starting…“ angezeigt (wie in der Funktion HomeScreen definiert).

 

Raspberry Pi

Nun wechseln wir auf den Raspberry Pi per SSH. Dort erstellen wir zunächst eine neue Python Datei.

sudo nano wio_terminal_example.py

Wir fügen folgenden Inhalt hinein:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import os
import time
import serial
# Settings for reading from Arduino Serial
serialPort= "/dev/ttyACM0" #Change it to your Serial Port, Check in Arudino IDE
baudRate = 115200
ser = serial.Serial(serialPort, baudRate, timeout=0.5)
time.sleep(2)
# Return CPU temperature as a character string
def getCPUtemperature():
    res = os.popen('vcgencmd measure_temp').readline()
    return(res.replace("temp=","").replace("'C\n",""))
# Return RAM information (unit=kb) in a list
# Index 0: total RAM
# Index 1: used RAM
# Index 2: free RAM
def getRAMinfo():
    p = os.popen('free')
    i = 0
    while 1:
        i = i + 1
        line = p.readline()
        if i==2:
            return(line.split()[1:4])
# Return % of CPU used by user as a character string
def getCPUuse():
    return(str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip()))
# Return information about disk space as a list (unit included)
# Index 0: total disk space
# Index 1: used disk space
# Index 2: remaining disk space
# Index 3: percentage of disk used
def getDiskSpace():
    p = os.popen("df -h /")
    i = 0
    while 1:
        i = i +1
        line = p.readline()
        if i==2:
            return(line.split()[1:5])
def main():
    while True:
        # CPU informatiom
        CPU_temp = getCPUtemperature()
        CPU_usage = getCPUuse()
        # RAM information
        # Output is in kb, here I convert it in Mb for readability
        RAM_stats = getRAMinfo()
        RAM_total = str(round(int(RAM_stats[0]) / 1000,1))
        RAM_used = str(round(int(RAM_stats[1]) / 1000,1))
        RAM_free = str(round(int(RAM_stats[2]) / 1000,1))
        # Disk information
        DISK_stats = getDiskSpace()
        DISK_total = DISK_stats[0]
        DISK_used = DISK_stats[1]
        DISK_perc = DISK_stats[3]
        temp=ser.write(str.encode(CPU_temp+' '+CPU_usage))
        data=ser.write(str.encode(CPU_temp+':'+CPU_usage+':'+RAM_total+':'+RAM_used+':'+RAM_free+':'+DISK_total+':'+DISK_used+':'+DISK_perc))
        ser.flush()
        time.sleep(2)
        print('')
        print('CPU Temperature = '+CPU_temp)
        print('CPU Use = '+CPU_usage)
        print('')
        print('RAM Total = '+str(RAM_total)+' MB')
        print('RAM Used = '+str(RAM_used)+' MB')
        print('RAM Free = '+str(RAM_free)+' MB')
        print('')  
        print('DISK Total Space = '+str(DISK_total)+'B')
        print('DISK Used Space = '+str(DISK_used)+'B')
        print('DISK Used Percentage = '+str(DISK_perc))
if __name__ == '__main__':
    try:    
        main()
    except KeyboardInterrupt:    
        if ser != None:    
            ser.close()
 

Dieses Skript liest die Systemdaten aus, stellt eine serielle Verbindung zum Wio Terminal her und sendet darüber die Daten in der definierten Reihenfolge.

Anschließend speichern (STRG+O) und beenden (STRG+X) wir den Editor und führen das Skript aus:

sudo python wio_terminal_example.py

Nun wirst du die Daten auf dem Display angezeigt bekommen.

 

Fazit & Weiteres

Das Wio Terminal von Seeed Studio ist in meinen Augen ein sehr interessantes Tool, welches für bestimmte Projekte einfach so genutzt werden kann (z.B. mittels MQTT) oder einen Raspberry Pi um ein Display, Sensoren, Buttons, uvm. erweitern kann. Für alle weiteren Funktionen gibt es auf der Wiki Seite auch Code-Beispiele, welche direkt so in die Arduino IDE übernommen werden können. Zwar ist es genauso gut möglich, all jene Sensoren und Module separat zu betreiben, aber dafür hat man dabei nicht alles in einem kompakten kleinen Gehäuse.

Einziges Manko, das mir aufgefallen ist: Man braucht einen zusätzlichen „Stacking Header“, wenn man das Terminal auf die GPIOs stecken will, da es ansonsten bei einem Raspberry Pi 4 nicht obendrauf passt.

 

Falls Interesse an weiteren Tutorials (standalone oder in Verbindung mit dem Raspberry Pi) besteht, schreib gerne einen Kommentar 🙂

 

Bildquellen: Seeed Studio

arduino Bluetooth Gyroscope Gyroskop IDE lcd controller led display python Seeed Studio Serial Serielle Schnittstelle
Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragRemote Control of Raspberry Pi Robots with an Xbox 360 Controller (Part 6)
Nächster Beitrag Raspberry Pi et I2C Capteur de pression d’air BMP180

Ähnliche Beiträge

Mit der Raspberry Pi REST API via Python alle GPIOs steuern

ESP8266 Regensensor selber bauen – Wie viel regnet es pro m²?

How-To: Bluetooth Verbindung Zwischen ESP32 und Raspberry Pi’s

Anleitung: Günstige ESP8266 Waage bauen (mit Gewichtssensor HX711)

4 Kommentare

  1. Frank Weber am 27. November 2020 10:49

    Interessantes Thema und guter Beitrag! Gerne mehr über das Wio-Terminal, Stand alone, wie auch in Verbindung mit Raspi, Arduino und auch externen Sensoren.

    Antworten
  2. Wolfgang am 1. Januar 2021 16:56

    Leider kann ich die Datei „wio_terminal_example.py“ nicht herunterladen. An dieser Stelle wir nur
    „Ein Fehler ist aufgetreten. Bitte versuchen Sie es später erneut.“
    ausgegeben. Dies passiert sowohl bei Firefox als auch bei Opera. Ist die Datei, die dort angezeigt werden sollte nicht mehr vorhanden? Oder könnte der Fehler bei meinem Rechner liegen. Ich habe den Virenscanner von Kaspersky bei mir laufen.

    Antworten
    • Felix am 6. März 2021 22:11

      Kannst du es nochmal prüfen?

      Antworten
  3. Wolfgang am 6. Mai 2021 10:31

    Bin leider erst jetzt wieder hierher gekommen. Vielen Dank, das Script steht ja jetzt direkt im Artikel. Ist bestimmt sicherer. So kann man es jetzt ja direkt dort kopieren.
    Vielen Dank und weiter so

    Antworten

Hinterlasse einen Kommentar Antwort abbrechen

Raspberry Pi der 4. Generation vorgestellt – Neuer Mini Desktop Computer

Raspberry Pi Roboter der eigenen Stimme folgen lassen (Teil 5)

Raspberry Pi & Teachable Machine – Tensorflow Modelle für KI nutzen

Raspberry Pi 4 WLAN und Bluetooth einrichten

How-To: Bluetooth Verbindung Zwischen ESP32 und Raspberry Pi’s

Raspberry Pi Roboter selber bauen – Projektübersicht

Blog abonnieren

Abboniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Kontakt & Impressum
  • Unterstützen
  • Datenschutz

Tippe den Suchbegriff oben ein und drücke Enter, um danach zu suchen. Drücke Esc, um abzubrechen.