IoT-Thermometer Bouwen met Python: Complete Handleiding
Onderdelen en benodigdheden
| MikroE Flip & Click (32-bit, AT91SAM3X8E – zelfde core als Arduino Due) | × | 1 | |
![]() | Arduino Due (alternatief) | × | 1 |
![]() | Particle Photon (alternatief) | × | 1 |
![]() | NodeMCU ESP8266 Breakout Board (alternatief) | × | 1 |
![]() | SparkFun Photon RedBoard (alternatief) | × | 1 |
| MikroE Temp&Hum Click (HTS221 temperatuur/vochtigheidssensor) | × | 1 | |
| MikroE WiFi Plus Click (MRF24WB0MA WiFi module) | × | 1 | |
![]() | Espressif Wemos D1 Mini (alternatief) | × | 1 |
![]() | Arduino Zero (alternatief) | × | 1 |
Apps en online diensten
![]() |
Zerynth Studio (IDE voor embedded Python) |
Over dit project

De Zerynth App
De Zerynth App is een mobiele applicatie voor Android en iOS die snel prototypen van grafische interfaces voor IoT-projecten mogelijk maakt.
Met de Zerynth App zet je je mobiele om in de controller en display voor slimme objecten en IoT-systemen! Je kunt verbonden apparaten (geprogrammeerd met Zerynth) beheren en besturen, met bidirectionele communicatie tussen je mobiele en het apparaat.
In deze tutorial bouwen we een eenvoudige maar krachtige IoT-thermometer, met een Zerynth-powered microcontroller en de Zerynth App als remote display.
Benodigde materialen
Je hebt een bord nodig dat ondersteund wordt door Zerynth (32-bit microcontrollers). We kiezen de Flip&Click van Mikroelektronika – een tweezijdige Arduino-achtige board: één kant is Arduino-compatibel, de andere kant heeft vier open mikroBUS-sockets voor "click boards" (kleine shield-achtige modules).
- Temp&Hum Click op slot A (HTS221 sensor).
- WiFi Plus Click op slot B (MRF24WB0MA WiFi module).
- Zerynth Studio – download via zerynth.com.
- Zerynth App – download via app store.
IoT-thermometer assembleren
Plaats de Temp&Hum Click in slot A en de WiFi Plus Click in slot B van de Flip&Click. Geen solderen nodig – de click boards klikken gewoon in de mikroBUS-sockets.
Programmeren met Python
Voorbeeld klonen
Na installatie van Zerynth Studio en aanmaken van een Zerynth-account, kloon je het voorbeeld "Zerynth App Oscilloscope". Bekijk de originele main.py – hier ontwikkel je de logica van je Python-script. We passen dit aan voor ons project.
Juiste WiFi-driver en sensor-libraries importeren
Het originele voorbeeld gebruikt de Particle Photon WiFi-driver. Voor de WiFi Plus Click wijzig je:
# Was:
from broadcom.bcm43362 import bcm43362 as wifi_driver
wifi_driver.auto_init()
# Wordt:
from microchip.mcw1001a import mcw1001a as wifi_driver
wifi_driver.init(SERIAL2, D24) # slot B
Voeg de HTS221 library toe voor de temperatuursensor:
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # slot A
# Uitlezen:
tmp, hum = temp_hum.get_temp_humidity()
WiFi SSID en wachtwoord instellen
wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")
Connected device aanmaken en koppelen
Maak in de Zerynth ADM (App Device Manager) een "connected device" aan. Kopieer de Device UID en Token uit Zerynth Studio (ADM panel). Het IP-adres van de Zerynth ADM (178.22.65.123) wordt gebruikt omdat de netwerkdriver geen hostname-resolutie ondersteunt.


Template aanmaken, uploaden en instellen
De grafische interface van elk apparaat wordt gehost op de Zerynth ADM sandbox en bestaat uit HTML5, JavaScript, CSS en afbeeldingen. Met de ADM JavaScript Library kan de app communiceren met het apparaat (berichten ontvangen en versturen).
Upload de template vanuit de template map (bevat index.html – je kunt deze aanpassen).


Script uplinken
Na de aanpassingen ziet de code er zo uit:
################################################################################
# IoT Thermometer
################################################################################
from wireless import wifi
from microchip.mcw1001a import mcw1001a as wifi_driver
import streams
import adc
from zerynthapp import zerynthapp
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # slot A
streams.serial()
sleep(1000)
print("STARTING...")
try:
zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", ip="178.22.65.123", log=True)
wifi_driver.init(SERIAL2, D24) # slot B
for i in range(0,5):
try:
wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")
break
except Exception as e:
print("Can't link", e)
else:
print("Impossible to link!")
while True: sleep(1000)
zapp.run()
while True:
sleep(1000)
tmp, hum = temp_hum.get_temp_humidity()
print("Temp is:", tmp, "Humidity is:", hum)
try:
zapp.event({"data": tmp})
except Exception as e:
print(e)
if tmp > 30:
try:
zapp.notify("ALARM!", "High Temperature!")
except Exception as e:
print(e)
except Exception as e:
print(e)
Let op: vervang DEVICE UID, DEVICE TOKEN, SSID en PASSWORD door je eigen waarden.
Upload het script naar je apparaat via Zerynth Studio.
Dashboard bekijken in de Zerynth App
Open de Zerynth App, log in, selecteer het specifieke apparaat en bekijk je IoT-thermometer dashboard. De app ontvangt ook push-notificaties – in dit geval bij temperatuur > 30°C.

Vragen? Open een discussie op het Zerynth community forum.
Veel plezier!
Code
IoT Thermometer (Python)
################################################################################
# Zerynth App Oscilloscope (aangepast voor IoT Thermometer)
################################################################################
from wireless import wifi
from microchip.mcw1001a import mcw1001a as wifi_driver
import streams
import adc
streams.serial()
from zerynthapp import zerynthapp
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # slot A
sleep(1000)
print("STARTING...")
try:
zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", ip="178.22.65.123", log=True)
wifi_driver.init(SERIAL2, D24) # slot B
for i in range(0,5):
try:
wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")
break
except Exception as e:
print("Can't link", e)
else:
print("Impossible to link!")
while True: sleep(1000)
zapp.run()
while True:
sleep(1000)
tmp, hum = temp_hum.get_temp_humidity()
print("Temp is:", tmp, "Humidity is:", hum)
try:
zapp.event({"data": tmp})
except Exception as e:
print(e)
if tmp > 30:
try:
zapp.notify("ALARM!", "High Temperature!")
except Exception as e:
print(e)
except Exception as e:
print(e)
Schema's
Productieproces
- De thermometer: van Galileo's thermoscoop tot moderne digitale sensoren
- TMP006 Infrarood temperatuursensor met Raspberry Pi: Python bibliotheek & installatiegids
- Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
- De PSoC 6 Pioneer Board met IoT Add-On Shield Beheersen: Een Ontwikkelaarsgids
- Hoe IoT Het Dagelijks Leven Revolutieoniseert
- Python en PyCharm installeren op Windows: Stapsgewijze handleiding
- Bestanden en directories hernoemen in Python met os.rename() – Stap-voor-stap gids
- Facebook Login Automatiseren met Python en Selenium: Stap-voor-Stap Gids
- Gemiddeldes Berekenen in Python: Een Praktische Gids
- Strings omzetten naar Title Case met Python – snel & betrouwbaar
- E-mail verzenden in Python met SMTP: Snelle & Eenvoudige Gids






