Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
0 Materialien zum Buch
15
0 Geleitwort
17
1 Arduino – was ist das?
19
1.1 Arduino – etwas Hintergrund
19
1.2 Open Source: Die Lizenzen des Arduino-Projekts
20
1.3 Maker und die Arduino-Community
23
1.4 Arduino Uno Rev3 – der Standard
25
1.4.1 Ein- und Ausgangspins
26
1.4.2 Serielle Schnittstellen
28
1.4.3 Spannungsversorgung
28
1.4.4 Mikrocontroller ATmega328P
29
1.4.5 Warum eigentlich die Bezeichnung »Uno«?
29
1.5 Details zum Mikrocontroller
30
1.5.1 Der Mikrocontroller-Kern
30
1.5.2 Die Mikrocontroller-Peripherie
35
2 Die Arduino-Hardware
59
2.1 Die Produktfamilie Arduino
59
2.1.1 Klassische Arduino-Boards
59
2.1.2 Kompakte Arduino-Boards
70
2.1.3 Die Arduino-MKR-Serie
81
2.1.4 Die Arduino-Pro-Familie
85
2.1.5 Arduino Yún Rev2
98
2.2 Arduino-kompatible Boards
100
2.2.1 Seeeduino v4.2
100
2.2.2 LilyPad Arduino
101
2.2.3 BBC micro:bit bzw. Calliope mini
102
2.2.4 SparkFun Pro nRF52840 Mini
104
2.2.5 STM32 Nucleo
106
2.2.6 Teensy 4.x
107
2.2.7 ESP8266
108
2.2.8 ESP32
113
2.2.9 M5Stack, M5StickC/M5StickC Plus, M5ATOM und M5Stamp
120
2.2.10 Raspberry Pi Pico
127
2.2.11 Seeed Studio XIAO-Serie
134
2.2.12 Adafruit Feather und SparkFun Thing Plus
135
2.2.13 RAKwireless WisBlock
136
2.2.14 Maixduino
138
2.3 Arduino-Shields
141
2.3.1 Arduino-Standard-Shields
141
2.3.2 Arduino-MKR-Shields
146
2.4 Expansionsboards
150
2.4.1 Arduino Portenta H7
150
2.4.2 Seeeduino XIAO
150
2.4.3 Raspberry Pi Pico
152
3 Das Experimentierumfeld
155
3.1 Elektronische Bauteile
155
3.1.1 Widerstand, Kondensator und Spule
155
3.1.2 Taster, Schalter und Relais
162
3.1.3 Dioden
163
3.1.4 Transistoren und FETs als Schalter
165
3.1.5 Operationsverstärker
171
3.2 Grundlagen zur Schaltungstechnik
173
3.2.1 Ohmsches Gesetz
173
3.2.2 Kirchhoffsche Regeln
173
3.2.3 Reihen- und Parallelschaltung von Widerständen
177
3.3 Breadboards und Zubehör
178
3.3.1 Breadboards
178
3.3.2 Breadboard Holder
181
3.3.3 Breadboard Power
183
3.4 Qwiic, Grove und mikroBUS Connection
183
3.4.1 Qwiic Connection
184
3.4.2 Das Grove-System
185
3.4.3 Das mikroBUS-System
186
3.5 Spannungsversorgung
187
3.5.1 USB-Anschluss
187
3.5.2 USB-Hub mit Schnellladeanschluss
190
3.5.3 Steckernetzteil
191
3.5.4 Labornetzgerät
192
3.5.5 Lithium-Polymer-Akku
192
3.5.6 Spannungsversorgung mit Solarzellen
196
3.5.7 Reduzierung des Strombedarfs für den Batteriebetrieb
198
3.6 Messtechnik
201
3.6.1 Multimeter
201
3.6.2 Funktionsgenerator
203
3.6.3 Oszilloskop
204
3.6.4 BitScope Micro
205
3.6.5 Saleae Logic Analyzer
210
3.7 CAD-Software
211
3.7.1 Fritzing
211
3.7.2 KiCad
214
3.7.3 EAGLE
214
3.7.4 EasyEDA Standard
214
3.7.5 Welches Tool soll ich verwenden?
215
4 Arduino-Software
217
4.1 Schritte bei der Programmerstellung
217
4.2 Die Arduino-Entwicklungsumgebung
218
4.2.1 Legacy IDE: Arduino 1.8
219
4.2.2 Die Arduino IDE 2
219
4.3 Die Arduino-Create-Plattform
223
4.3.1 Arduino Web Editor
224
4.3.2 Arduino IoT Cloud
226
4.3.3 Arduino Project Hub
226
4.4 Arduino Create vs. Arduino IDE
227
4.5 Programmieren in C++
228
4.5.1 Einführung in die Grundlagen von C++
229
4.5.2 Präprozessor-Direktiven
256
4.6 Den Arduino programmieren
258
4.6.1 Programmstruktur
258
4.6.2 Arduino-Funktionen
259
4.6.3 Hello World
280
4.6.4 Arduino-Librarys
282
4.7 Arduino-Boards in Betrieb nehmen
285
4.7.1 Arduino Uno
286
4.7.2 Arduino Uno WiFi Rev2
288
4.7.3 ESP32
293
4.7.4 M5Stack bzw. M5StickC/C Plus
296
4.7.5 Teensy 4.x
299
4.7.6 Raspberry Pi Pico
302
4.8 Arduino-Debugging
305
4.8.1 Debugging mit digitalem Ausgang
306
4.8.2 printf()-Debugging
306
4.8.3 Die MicroDebug-Library
307
4.8.4 Die ArduinoTrace-Library
310
4.8.5 Arduino-Debugging mit dem SEGGER J-Link Debugger
312
4.9 MicroPython mit Arduino
319
4.10 Grafische Programmierung mit ArduBlock
322
4.11 Simulation mit Wokwi
326
5 Sensoren
329
5.1 Der Thermistor als Temperatursensor
329
5.2 Der Temperatursensor TMP36
332
5.3 Der Temperatur- und Feuchtigkeitssensor DHTxx/AM23xx
336
5.4 Der Temperatur- und Feuchtigkeitssensor Si7021
342
5.5 Der Temperatursensor DS18B20
345
5.6 Die barometrischen Drucksensoren BMP180, BMP280 und BME280
349
5.7 Sensoren zur Messung der Luftqualität
354
5.7.1 Die Gas-Sensoren SGP40 und BME680
356
5.7.2 Der NDIR-Sensor SCD4x
357
5.7.3 Der Luftqualitätssensor MQ135
358
5.8 Der Grove-Feinstaubsensor PPD42NS
363
5.9 Der Umweltsensor SEN55
367
5.10 Der Lichtstärkesensor GY-30 (BH1750FVI)
368
5.11 Das Farbsensormodul GY-TCS3200D
372
5.12 Ultraschall-Entfernungsmessung
377
5.13 ToF-Entfernungsmessung
382
5.14 Bewegungsdetektion mit PIR-Sensoren
385
5.15 Wetterdaten
388
6 Eingabeelemente
395
6.1 Taster und Schalter
395
6.2 Keypads
397
6.3 Joysticks
404
6.4 Drehgeber
407
6.5 Touch-Sensoren
411
6.6 Touch-Panels
412
6.7 RFID
416
6.8 NFC
425
7 Anzeigeelemente
439
7.1 LEDs und RGB-LEDs
439
7.2 Sieben-Segment-Anzeigen
445
7.3 LED-Dot-Matrix-Anzeigen
448
7.4 Seriell gesteuerte RGB-LEDs
452
7.4.1 NeoPixel
452
7.4.2 DotStar
457
7.4.3 NeoPixel vs. DotStar
461
7.4.4 FastLED
461
7.5 LCDs
463
7.5.1 Display mit HD44780
464
7.5.2 LCDs mit I2C-Interface
466
7.5.3 LCD Keypad Shield
468
7.5.4 Nokia-5110-Grafik-LCD
472
7.6 OLED-Displays
480
7.6.1 Eine Bitmap-Bilddatei erzeugen
486
7.7 ePaper
490
7.8 M5Stack-Displays
491
7.9 Touchscreens
492
7.9.1 Waveshare 2.8" Touch LCD Shield
493
7.9.2 Nextion 2.8" HMI LCD Touch Display
502
8 Aktoren
533
8.1 Relais
533
8.2 Motoren
538
8.2.1 Servos
538
8.2.2 DC-Motoren
543
8.2.3 Schrittmotoren
557
9 Externe Speicher
571
9.1 Internes EEPROM
571
9.2 Externes EEPROM
574
9.3 FRAM
577
10 Kommunikation
581
10.1 Serielles Interface UART, der interne Monitor
581
10.2 SPI
587
10.3 Der I2C-Bus
593
10.4 Der 1-Wire-Bus
596
10.5 CAN
602
10.6 Bluetooth und BLE
610
10.6.1 Serielle Bluetooth-Module
611
10.6.2 Mikrocontroller mit BLE
612
10.7 Der Arduino im Netzwerk
624
10.7.1 Ethernet
624
10.7.2 WiFi
629
10.7.3 Die Performance testen
641
10.8 LoRa bzw. LoRaWAN
642
10.8.1 LoRa/LoRaWAN – Begriffe
643
10.8.2 LoRa-Datenübertragung
644
10.8.3 The Things Network (TTN)
650
10.8.4 LoRaWAN-Knoten
653
10.9 GSM
669
10.9.1 Module und Provider
669
10.9.2 Arduino Uno mit SIM800L-EVB
671
10.10 LTE
675
10.10.1 Das LTE-Modul SIM7600
675
10.10.2 WiFi-LTE-Modems
676
10.11 3GPP LPWAN
680
10.11.1 NB-IoT
683
10.11.2 LTE-M
705
11 Mikrocontroller-Netzwerke
711
11.1 nRF24L01-Netzwerke
712
11.1.1 Der Transceiver nRF24L01
712
11.1.2 Das nRF24L01-Modul
714
11.1.3 nRF24L01-Reichweitenmessung
715
11.1.4 Netzwerkknoten komplett
717
11.1.5 Initialisierung des nRF24L01
720
11.1.6 Peer-to-Peer Datenübertragung
721
11.1.7 Netzwerke aufbauen
725
11.1.8 Gateway
728
11.1.9 Sensorknoten
731
11.2 nRF24L01-Mesh
735
11.3 Meshtastic
735
11.3.1 Meshtastic-Devices
736
11.3.2 Die Meshtastic-Firmware
742
11.3.3 Das Meshtastic-Netzwerk im Test
746
11.4 ZigBee
751
11.4.1 ZigBee-Devices
752
11.4.2 ZigBee-Netzwerk
753
11.4.3 Coordinator
753
11.4.4 Router
753
11.4.5 End Device
754
11.4.6 ZigBee in Betrieb nehmen
754
11.4.7 XBee MicroPython
758
11.4.8 Externe Sensorik am ZigBee-Device
761
12 Datenformate und Kommunikationsprotokolle
767
12.1 JSON
767
12.2 MQTT
770
12.2.1 Grundlagen
771
12.2.2 MQTT-Broker
772
12.2.3 MQTT-Client
773
13 Projektideen für den Arduino
777
13.1 Tragbare Elektronik (Wearables)
777
13.2 Überwachung des Raumklimas
780
13.2.1 Sensirion SCD30
782
13.2.2 Sensirion SGP30 und Bosch BME280
789
13.2.3 Bosch BME680
789
13.2.4 Environmental Sensor AZ-Envy
795
13.3 OpenWeatherMap: Open Data aus dem Internet
798
13.4 Pushover-Statusmeldungen
804
13.4.1 Pushover-Server
804
13.4.2 Pushover-Android-Client
806
13.4.3 Pushover-Integration ins Arduino-Programm
807
13.5 Überwachung von Pflanzen
811
13.5.1 M5Stack ENV.II und EARTH
812
13.5.2 Kapazitive Bodenfeuchtesensoren
813
13.5.3 LILYGO T-Higrow Kit
814
13.6 Messung von radioaktiver Strahlung
816
13.6.1 Messtechnische Voraussetzungen
816
13.6.2 Auswertung der GMZ-Impulse
822
13.7 M5StickC
824
13.7.1 M5StickC-Hats
824
13.7.2 M5StickC-Thermometer
826
13.7.3 M5StickC – Messung der Wassertemperatur
826
13.8 Kameraanwendungen
829
13.8.1 ArduCam Shield V2
830
13.8.2 Das ArduCAM ESP32S UNO PSRAM-Board
834
13.8.3 M5Stack Camera
837
13.9 Batteriebetriebener und solargepufferter IoT-Knoten
839
13.9.1 Hard- und Firmware
839
13.9.2 Anwendungsprogramm
842
13.10 Low-Power-IoT-Knoten mit Display
847
13.10.1 Hardware
847
13.10.2 Testprogramme
850
13.10.3 Anwendungsprogramm
853
13.11 Approximation nichtlinearer Sensorkennlinien
855
13.11.1 Polynomapproximation
856
13.11.2 Cubic-Spline-Interpolation
856
13.11.3 Neuronales Netz
857
13.11.4 Vergleichende Betrachtung der Verfahren
858
13.12 Maschinelles Lernen
859
13.12.1 TensorFlow Lite
860
13.12.2 Edge Impulse
860
Anhang
863
A.1 Arduino-Distributoren
863
A.2 Internationale Beschaffung
863
A.3 Technische Daten im Vergleich
864
A.4 Spezifikation von Widerständen
868
Index
873