Really Smart Box: IoT-fähige intelligente Aufbewahrungsbox
Komponenten und Materialien
| Acrylglasplatte (z. B. 3 mm Plexiglas) | × | 1 |
| Arduino MKR FOX 1200 (Sigfox) | × | 1 |
| SparkFun HX711 Lastzellen-Verstärker | × | 1 |
| 5 kg Lastzelle | × | 2 |
| Adafruit BME280 (Temp/Humidity/Pressure) | × | 1 |
Benötigte Werkzeuge & Maschinen
- Lasercutter
- 3D-Drucker
Apps & Online-Dienste
- Tinamous (IoT-Dashboard & Benachrichtigungen)
- Sigfox Backend (Aktivierung, Callbacks)
Projektbeschreibung
Die „Really Smart Box“ verwandelt eine gewöhnliche „Really Useful Box“ in einen vernetzten, batteriebetriebenen Lagerbehälter. Sie misst Gewicht, Temperatur und Luftfeuchtigkeit des Inhalts und funkt die Daten über das Low-Power-Sigfox-Netzwerk an die Cloud. Kein WLAN, keine lokale Stromversorgung nötig – ideal für Filamentlager, Verbrauchsmaterial bei Kunden etc.
Anwendungsfall 1: 3D-Drucker-Filamentlager
Filament muss trocken gelagert werden. Die Box überwacht Gewicht (Bestandsstand) und Feuchte (Silica-Gel-Wechsel).

Anwendungsfall 2: Verbrauchsmaterial-Überwachung beim Kunden
Reinigungsfirma lagert Seife, Duftspender beim Kunden. Kein WLAN-Zugang, keine Steckdose. Sigfox funkt autonom, Batterien halten monatelang. Cloud warnt bei niedrigem Bestand.

Plattformbau (Mechanik)
Zwei lasergeschnittene Acrylplatten (Boden & Deckel) mit zwei 5 kg-Lastzellen dazwischen. Der Deckel ist etwas kleiner, damit er nicht an den Boxwänden ansteht. Der Boden hat eine Aussparung für die Elektronik (direkt aufgeschraubt, M3-Gewinde). 3D-gedruckte Füße an den Ecken sorgen für sicheren Stand.


Die Lastzellen (Wheatstone-Brücke) werden über den HX711 (2 Kanäle A & B) ausgelesen. Jede Zelle hat eigene Kalibrierfaktoren (Offset & Skalierung). Der BME280 sitzt am I2C-Bus. Stromversorgung: 2× AA-Batterien (oder LiFePO4) direkt an den MKR FOX 1200.



Lastzellen-Kalibrierung
Jede Zelle ist einzigartig. Kalibrierung über y = m·x + c:
- Leere Plattform → Offset (c) messen.
- Bekanntes Gewicht (z. B. 230 g Dose, 1,5 kg Filament) auflegen → Steigung (m) berechnen:
m = (gemessen - offset) / Gewicht(g). - Werte in Firmware eintragen (
offset[],scaleFactor[]). - Nach Einbau der vollen Deckplatte: einmalig Tare (Nullung) per Serial-Befehl
zoder per Sigfox-Downlink.

Sigfox-Anbindung
Datenstruktur (12 Bytes, packed):
typedef struct __attribute__ ((packed)) sigfox_message {
uint8_t status; // Flags: FirstRun, HX711-Fehler, BME-Fehler, Temp-Alarm, Hum-Alarm, Weight-Alarm, LowStock
int8_t humidity; // % rF
int8_t temperature; // °C
int16_t zeroWeight; // Tara-Gewicht (little-endian)
int16_t weight; // Aktuelles Gewicht (g)
int16_t itemCount; // Stückzahl ×100 (ermöglicht 2.01 Stücke)
int8_t driftCorrection;
int8_t filler;
int8_t lastStatus; // Letzter Sigfox-Statuscode
} SigfoxMessage;
Sigfox Custom Payload Configuration (Little-Endian beachten!):
firstRun::bool:7 hx711Fault::bool:6 bmeFault::bool:5 temperatureAlarm::bool:4 humidityAlarm::bool:3 weightAlarm::bool:2 lowStock::bool:1 b0::bool:0
status::int:8 humidity::int:8 temperature::int:8 zeroWeight::int:16:little-endian weight::int:16:little-endian itemCount::int:16:little-endian
Gerät im Sigfox Backend aktivieren (ID & PAC aus Firmware via Serial-Befehl s). Dann Device Type anlegen, Callback (DATA → BIDIR) zu Tinamous konfigurieren. Downlink-Callback für Fernkonfiguration (Tara, Alarmgrenzen, Stückgewicht) aktivieren.


Überwachung mit Tinamous
Sigfox Bot in Tinamous hinzufügen → Gerät wird automatisch angelegt. Felder konfigurieren (nur Gewicht & Stückzahl anzeigen, Kalibrierung ×0,01 für Stückzahl). Downlink-Daten (Tara, Alarmgrenzen) im Geräteprofil hinterlegen.




Dashboard zeigt Gewicht, Stückzahl, Geräte-Status. Benachrichtigungen (E-Mail/SMS) bei Unterschreitung Mindestbestand (z. B. < 3 Stück).



Offene Punkte / Known Issues
- Sigfox Downlink: Statuscode 62 (undokumentiert) – weitere Analyse nötig.
- Debug-Modus: Deaktiviert Low-Power, USB-Serial bleibt aktiv.
- Low-Power-Mode: Killt USB-Serial – aktuell deaktiviert.
- Drift: Keine Kompensation für Langzeitdrift der Lastzellen.
- Erschütterungen/Schräglage: Beschleunigungssensor würde Messzyklen bei Bewegung überspringen helfen.
Code (Arduino)
Benötigte Bibliotheken: Adafruit_BME280, HX711, SigFox, ArduinoLowPower.
// Really Smart Box
// Misst Gewicht (2 Lastzellen), Temp/Hum (BME280), sendet via Sigfox
// Author: Stephen Harrison, License: MIT
#include <Adafruit_BME280.h>
#include <HX711.h>
#include <SigFox.h>
#include <ArduinoLowPower.h>
// ... (vollständiger Code wie im Original, siehe Eingabe)
// Hauptfunktionen: measureAndPublish(), calibrate(), Sigfox-Handling, Kalibrierung per Serial-Befehlen (0,1,m,c,t,h,z,s)
Repository: GitHub
CAD-Dateien (Lasercutter / 3D-Druck)
- Schneidevorlage für oberes/unteres Acryl (
cuttingguide_e7GNHf980M.svg) - Distanzplättchen zwischen unterer Platte & Lastzelle (4× drucken)
Schaltplan

Herstellungsprozess
- Die Saftbox-Revolution: Geschichte, Design und Umweltauswirkungen
- Black Box Flugrekorder: Von frühen Prototypen zu zukünftigen integrierten Designs
- Solarzellen: Von frühen Experimenten zur modernen Photovoltaik – Technologie, Produktion und Ausblick
- Smart Bartender: Eigenen Raspberry Pi Cocktail-Roboter bauen
- Intelligente Ampel: Adaptive Straßenbeleuchtung per IoT
- Intelligenter Mülleimer: Abfallentsorgung per IoT-Sensoren optimieren
- DIY Wall-E-inspirierter Raspberry Pi CD-Box-Roboter
- DIY UVC-Sterilisator-Bausatz – Günstige, einfach zu bauende UV-Box für Medizin & Alltag
- Smart Plant IoT: Vernetztes Gewächshaus mit Arduino, Helium & Azure
- Intelligente Jalousien: Automatische Lichtsteuerung mit Arduino & Solarenergie