Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

IoT-Thermometer Bouwen met Python: Complete Handleiding

Onderdelen en benodigdheden

MikroE Flip & Click (32-bit, AT91SAM3X8E – zelfde core als Arduino Due)×1
IoT-Thermometer Bouwen met Python: Complete HandleidingArduino Due (alternatief)×1
IoT-Thermometer Bouwen met Python: Complete HandleidingParticle Photon (alternatief)×1
IoT-Thermometer Bouwen met Python: Complete HandleidingNodeMCU ESP8266 Breakout Board (alternatief)×1
IoT-Thermometer Bouwen met Python: Complete HandleidingSparkFun Photon RedBoard (alternatief)×1
MikroE Temp&Hum Click (HTS221 temperatuur/vochtigheidssensor)×1
MikroE WiFi Plus Click (MRF24WB0MA WiFi module)×1
IoT-Thermometer Bouwen met Python: Complete HandleidingEspressif Wemos D1 Mini (alternatief)×1
IoT-Thermometer Bouwen met Python: Complete HandleidingArduino Zero (alternatief)×1

Apps en online diensten

IoT-Thermometer Bouwen met Python: Complete Handleiding Zerynth Studio (IDE voor embedded Python)

Over dit project

IoT-Thermometer Bouwen met Python: Complete Handleiding

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.

IoT-Thermometer Bouwen met Python: Complete Handleiding
IoT-Thermometer Bouwen met Python: Complete Handleiding

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).

IoT-Thermometer Bouwen met Python: Complete Handleiding
IoT-Thermometer Bouwen met Python: Complete Handleiding

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.

IoT-Thermometer Bouwen met Python: Complete Handleiding

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

IoT-Thermometer Bouwen met Python: Complete Handleiding

Productieproces

  1. De thermometer: van Galileo's thermoscoop tot moderne digitale sensoren
  2. TMP006 Infrarood temperatuursensor met Raspberry Pi: Python bibliotheek & installatiegids
  3. Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
  4. De PSoC 6 Pioneer Board met IoT Add-On Shield Beheersen: Een Ontwikkelaarsgids
  5. Hoe IoT Het Dagelijks Leven Revolutieoniseert
  6. Python en PyCharm installeren op Windows: Stapsgewijze handleiding
  7. Bestanden en directories hernoemen in Python met os.rename() – Stap-voor-stap gids
  8. Facebook Login Automatiseren met Python en Selenium: Stap-voor-Stap Gids
  9. Gemiddeldes Berekenen in Python: Een Praktische Gids
  10. Strings omzetten naar Title Case met Python – snel & betrouwbaar
  11. E-mail verzenden in Python met SMTP: Snelle & Eenvoudige Gids