Smartes Temperatur-Monitoring für Schulen – Arduino, Raspberry Pi, Sigfox & ThingSpeak
Komponenten & Zubehör
| Bauteil | Menge |
|---|---|
| Pycom SiPy (Sigfox + WiFi + BLE, MicroPython) | 1 |
| Raspberry Pi 3 Model B | 1 |
| Arduino Nano R3 | 1 |
| Logic Level Converter (bidirektional) | 1 |
| RFID RC522 (NFC, 13,56 MHz) | 1 |
| Sharp GP2Y0A41SK0F Distanzsensor (4–30 cm, analog) | 1 |
| MLX90614-DCI Infrarot-Temperatursensor (I²C) | 1 |
| I²C LCD 16×2 (DFRobot) | 1 |
| LED + 330 Ω Widerstand | 1 |
| Summer (Buzzer) | 1 |
Software & Cloud-Dienste
- Arduino IDE (Nano)
- Visual Studio Code + Pymakr (SiPy)
- Python 3 / IDLE (Raspberry Pi)
- ThingSpeak (MATLAB Analysis, React, Channels)
- IFTTT (Webhooks → E-Mail-Alarm)
- Putty (SSH auf Pi)
Problematik
In asiatischen Schulen (heißes Klima, SARS-Erfahrung) sind quartalsweise Temperaturmessungen Pflicht. Schüler vergessen oft ihre Thermometer, Teilen ist hygienisch bedenklich, manuelle Datenerfassung durch Lehrer ist extrem aufwendig (40 Schüler × Klassen).
Systemarchitektur
1. Arduino Nano – Lokale Messstation
- RFID-Karte identifiziert Schüler (UID → Datenbankabgleich auf Pi).
- Distanzsensor prüft, ob Schüler vor Gerät steht.
- MLX90614 misst Stirntemperatur (28–42 °C gültig).
- LCD zeigt „Welcome, Name“ + Temperatur.
- Serielle Kommunikation (Handshake) mit Raspberry Pi:
READY/RECEIVED/TEMP/STANDBY. - Gültige Daten → an Pi (MySQL) + an SiPy (Sigfox → ThingSpeak).
2. Raspberry Pi – Zentrale Datenhaltung & Validierung
- Raspbian OS, Apache2, PHP, MariaDB, phpMyAdmin.
- Python-Skript: Erstellt DB/Tabellen automatisch (
userInfo,tempData). - Serieller Handshake mit Arduino, schreibt Messwerte mit Timestamp in MySQL.
- Prüft Temperaturbereich, sendet
0,0bei Ungültigkeit zurück an Arduino (Fehleranzeige).
3. Pycom SiPy – Sigfox Uplink
- Empfängt per UART (P3/P4) von Arduino:
UserID,Temp_H,Temp_L. - Sendet als 3 Bytes an Sigfox Backend (RCZ4 für Asien).
- Sigfox Callback → ThingSpeak Channel 1 (Private: UserID, Temp_H, Temp_L).
4. ThingSpeak Cloud – Visualisierung & Alarm
- Channel 1 (Private): Rohdaten.
- MATLAB Analysis (getriggert per React bei Daten-Eingang): Kombiniert Temp_H + Temp_L/100 →
analyzedData, schreibt in Channel 2 (Public: Temperatur, UserID). - Wenn
analyzedData >= 38→ IFTTT Webhookfever→ E-Mail an Lehrer. - Channel 2 zeigt Auto-Update-Tabelle (Excel-ähnlich) für Administration.
Detail-Setup-Anleitungen
Arduino Nano Verdrahtung
| Modul | Pins |
|---|---|
| RFID RC522 | SDA=D10, SCK=D13, MOSI=D11, MISO=D12, RST=D9, 3,3V, GND |
| I²C LCD | SDA=A4, SCL=A5, 5V, GND |
| Distanzsensor | VCC=5V, GND, OUT=A0 |
| Buzzer | GND, OUT=D6 |
| MLX90614 | SDA=A4, SCL=A5, 5V, GND |
| LED | Kathode=GND, Anode=D7 |
Raspberry Pi Einrichtung
- Raspbian flashen (balenaEtcher), SSH/VNC aktivieren.
- Statische IP (optional):
interface eth0 static ip_address=192.168.0.11/24in/etc/dhcpcd.conf. - MariaDB + phpMyAdmin installieren, Root-User sicher einrichten (
DROP USER 'root'@'localhost'; CREATE USER ... GRANT ALL ...).
SiPy Firmware & Sigfox Registrierung
- SiPy auf Expansion Board 2.0 stecken (Reset-Taste Richtung USB).
- Pycom Firmware Updater: Region RCZ4 wählen, Device ID & PAC notieren.
- Visual Studio Code + Pymakr:
main.pyhochladen. - Sigfox Backend: Device ID + PAC eintragen, Land wählen, Account anlegen.
- Test:
s.send(bytes([1..12]))→ Backend prüfen.
ThingSpeak & IFTTT Konfiguration
- Zwei Channels anlegen: Private (Fields: Temp_H, Temp_L, UserID) & Public (Fields: Temp, UserID).
- MATLAB Analysis im Private Channel: Read Fields 1,2,3 → kombinieren → Write Fields 1,2 in Public Channel.
- React: Condition „Field 3 (UserID) != 0“ on Data Insertion → Trigger MATLAB Analysis.
- IFTTT: Webhooks Receive „fever“ → Email mit
{{Value1}}(Temp),{{Value2}}(UserID). - MATLAB Script ruft Webhook-URL auf bei Fieber.
Code-Beispiele
Arduino Nano (C++)
// Kernlogik: RFID → Distanz → Temp → Handshake → Serial an Pi & SiPy
// Siehe vollständigen Code im Originalprojekt (zu lang für Inline).
Raspberry Pi (Python)
// MySQL Auto-Create, Serial Handshake, Temp-Validierung, DB-Insert
// Vollständiger Code im Original.
SiPy (MicroPython)
from machine import UART
from network import Sigfox
import socket, binascii, time, pycom, sys
pycom.heartbeat(False)
sigfox = Sigfox(mode=Sigfox.SIGFOX, rcz=Sigfox.RCZ4)
uart1 = UART(1, baudrate=9600, pins=('P3','P4'))
while True:
recv = uart1.readline()
if recv:
uid, th, tl = map(int, recv.decode().split(','))
s = socket.socket(socket.AF_SIGFOX, socket.SOCK_RAW)
s.setblocking(False)
s.setsockopt(socket.SOL_SIGFOX, socket.SO_RX, False)
s.send(bytes([uid, th, tl]))
s.close()
time.sleep(5)
ThingSpeak MATLAB
readChannelID = 870479; readAPIKey = 'QGHINBPNJQKULBH2';
writeChannelID = 870482; writeAPIKey = 'R6NJIM8NT5A42R9N';
webhook = 'https://maker.ifttt.com/trigger/student_fever/with/key/...';
whole = thingSpeakRead(readChannelID,'ReadKey',readAPIKey,'Fields',1);
dec = thingSpeakRead(readChannelID,'ReadKey',readAPIKey,'Fields',2)/100;
uid = thingSpeakRead(readChannelID,'ReadKey',readAPIKey,'Fields',3);
temp = whole + dec;
thingSpeakWrite(writeChannelID,'Fields',[1,2],'Values',{temp,uid},'WriteKey',writeAPIKey);
if (temp >= 38) webwrite(webhook,'value1',temp,'value2',uid);
Fazit & Team
Ein komplettes IoT-System für Schul-Gesundheitsmonitoring: RFID-Identifikation, berührungslose Fiebermessung, lokale DB (Pi), LPWAN-Uplink (Sigfox), Cloud-Visualisierung (ThingSpeak) + E-Mail-Alarm (IFTTT). Reduziert Lehrer-Arbeit drastisch, verhindert Ausreden („Thermometer vergessen“) und schafft digitale Nachweispflicht.
Team: Aden (Pi/Arduino/ThingSpeak), Reginald (Sigfox/Schematics), Bo Sheng (IFTTT).
Herstellungsprozess
- Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
- Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
- DIY Heimbrau-Temperaturregelung: Überwachen & Steuern mit Arduino
- K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
- Intelligente Jalousien: Automatische Lichtsteuerung mit Arduino & Solarenergie
- Berührungsloses Temperatur-Überwachungstor für schnelles Screening
- Arduino UNO & WiFi Shield: Echtzeit-Temperaturanzeige im Web via Serial
- Effiziente 8-Bit-I/O-Port-Bibliothek für Arduino – Digitale Steuerung erweitern
- Health Band: Smarter Wearable-Assistent für Senioren
- Smart Farming: IoT-gestütztes umfassendes Monitoring für die Zukunft der Landwirtschaft