IoT-1/Hardware
Netwerken |
---|
Zie ook Netwerken-project |
IoT-hardware
Het Internet of Things bestaat aan de randen (bij de "dingen" en één stap verder) uit:
- IoT-knopen; een dergelijke knoop omvat gewoonlijk:
- sensoren
- (soms) actuatoren
- microcontroller
- radio
- energievoorziening (meestal een batterij, of een permanente stroomvoorziening)
- gateways/bridges naar het internet
Radio
Afhankelijk van de "dingen" die in het internet verbonden moeten worden, en de eisen van de toepassing, zijn er verschillende keuzes voor de radio voor de IoT-knoop:
radio | power | bereik | bitrate | tussenstap | protocol (**) |
---|---|---|---|---|---|
WiFi | medium power | lokaal bereik (10-50m) | MBytes/s | (rechtstreeks) | HTTP |
WiFi | medium power | lokaal bereik (10-50m) | Mbytes/s | (evt. lokale broker/bridge) | MQTT |
RFM69 | low power | lokaal bereik (50-200m) | 50kbits/s (*) | lokale gateway | MQTT |
LoRa (bijv. RFM95) | low power | niet-lokaal (enkele km) | 1 kbit/s (*) | publieke gateway | MQTT |
(*) voor LoRa is de bitrate nog lager bij een groot bereik. Bovendien mogen RFM69 en Lora-radio's max. 1% van de tijd zenden.
(**) protocol: IoT-knoop <-> NodeRed/web-app
Bovenstaande betekent dat er geen universele radio-oplossing is: dit moet per toepassing gekozen worden.
Microcontroller
Er komen de laatste jaren veel krachtige en betaalbare microcontroller-bordjes op de markt. Een aanzienlijk deel hiervan is te programmeren met de Arduino IDE. Daarnaast wint microPython aan populariteit (o.a. voor de ESP8266/ESP32-serie).
In eerste instantie gebruiken we voor de IoT-toepassingen de Arduino IDE: dit is de meest stabiele omgeving. We gebruiken deze voor het programmeren van de volgende microcontrollers:
- Arduino mini (pro) - voor low-power (en low-cost) toepassingen
- Arduino UNO - voor kortdurende experimenten
- ESP8266 - in het bijzonder voor toepassingen met een grote batterij/permanente stroomvoorziening
- ESP32 - idem
De ESP32 is ook geschikt voor low-power toepassingen, maar de software is daar nu nog niet op ingericht.
Sensoren
Er is een groot aanbod aan sensoren, voor allerlei toepassingen. Een belangrijke overweging is dat de IoT-sensoren bij voorkeur geschikt zijn voor 3.3V: de meeste moderne microcontrollers werken met deze spanning, en ook voor low-power toepassingen is dit eigenlijk een voorwaarde.
Sensoren die gebruikt worden bij de cursus:
- bme280 (luchtdruk/temperatuur/luchtvochtigheid)
- db18b20 (temperatuur)
- drukknopjes (en LEDjes)
Combinaties
microcontroller | radio | link | prijs ca. |
---|---|---|---|
Arduino mini Pro | LoRa (RFM95) | https://www.thethingsnetwork.org/labs/story/creating-a-ttn-node | EURO 32,- (incl. USB-serial omzetter) |
Arduino mini Pro | RFM69HCW | (zelfde bordje, andere radio) | EURO 20,- (excl. USB-serial omzetter) |
Arduino (UNO etc.) | RFM69HCW | bijv. Adafruit RFM69 breakout https://www.adafruit.com/product/3070 | EURO 23,- EURO 13,- (radio, excl. UNO) |
Arduino (UNO etc.) | LoRa (RFM95) | bijv. Adafruit RFM95 https://www.adafruit.com/product/3072 | EURO 13,- (radio, excl. UNO) |
ESP8266 (Bijv. WeMos D1 mini Pro; of NodeMCU) | WiFi (ingebouwd) evt. extra RFM69 |
https://wiki.wemos.cc/products:d1:d1_mini_pro | EURO 8,50 |
ESP32 (Bijv. Wemos LoLin D32 Pro) | WiFi (ingebouwd) evt. extra RFM69 |
(zelfde bordje, andere radio) | EURO 14,- |
Deze prijzen zijn gebaseerd op Nederlandse winkelprijzen; rechtstreekse import uit China is meestal goedkoper, maar kan (veel) meer tijd kosten.
Alternatieven
- Adafruit Feather Huzzah 8266 - https://www.adafruit.com/product/2821
- Adafruit Feather Huzzah32 - https://www.adafruit.com/product/3405
- Adafruit Feather M0 with RFM69 - https://www.adafruit.com/product/3176
- Adafruit Feather M0 with RFM95 - https://www.adafruit.com/product/3178
- Arduino MKR1300 (LoRa) - https://store.arduino.cc/mkr-wan-1300
- Pycom LoPy(4) (WiFi, Bluetooth, LoRa, Sigfox ) - https://pycom.io/product/lopy4/
- programmeren in microPython
LoRa gateway
Voor een school kan het aantrekkelijk zijn om een eigen LoRa gateway te instelleren; de kosten hiervan bedragen ca. 350-500 euro. Zie bijv.: http://uk.farnell.com/the-things-network/ttn-gw-868/the-things-gateway-eu/dp/2675813 Een alternatief is het zelf bouwen hiervan, op basis van een Raspberry Pi en aanvullende hardware (kosten ca. 250 euro).
Raspberry Pi
Voor het sommige opstellingen is het gebruik van een Raspberry Pi handig, bijvoorbeeld als lokale MQTT-broker/gateway. Een ander voordeel van de Raspberry Pi is dat hierop de NodeRed-software beschikbaar is (als onderdeel van de Raspbian distibutie).
Hardware voor de IoT-cursus
kop 2 | prijs ca. (Euro) | |
---|---|---|
Div. sensoren | 10,- | |
WeMos prototype boards etc. | 10,- |
Experimenten
- ESP8266 (WiFi) met sensoren -> MQTT -> externe broker
- ESP8266 (WiFi) met sensoren -> MQTT -> lokale broker (RasPi)
- Arduino (3V3) met RFM69 met sensoren ->
- in combinatie met ESP8266 als RFM69-gateway -> MQTT -> ...
- Arduino (3V3) met RFM95 met sensoren -> LoRa gateway