Refactoring von Embedded Software für ESP32-basierten smarten Lärmüberwachungssensor
NoiseAware ist ein US-amerikanisches IoT-Startup, das den weltweit ersten datenschutzfreundlichen Lärmüberwachungsdienst für Kurzzeitvermieter und Hotelketten anbietet. Die Innen- und Außensensoren des Geräts überwachen den Geräuschpegel in einer Immobilie und senden Warnmeldungen via Dashboard oder mobile App, wenn der Geräuschpegel die festgelegten Schwellenwerte überschreitet.
Herausforderung
Unser Kunde hatte Probleme mit der WLAN-Funktionalität und musste die Systemstabilität verbessern, um mögliche schwerwiegende Fehler bei OTA-Updates oder hoher Belastung zu vermeiden. NoiseAware hatte mit instabilen WLAN-Verbindungen und Datenverlusten bei der Kommunikation zwischen Geräten zu kämpfen und beauftragte uns mit der Optimierung des Codes ihres Indoor-Gateway-Geräts.
Gelieferter Mehrwert
Die Systemleistung von NoiseAware stabilisierte sich dank der Verbesserungen, die an der Quellcode-Architektur und den einzelnen Modulen vorgenommen wurden. Auf Grundlage des anfänglichen Audits führten wir eine Refactoring-Phase durch und lieferten eine neue Version des Codes, die in der Produktion eingesetzt werden konnte. Außerdem haben wir das BLE-Protokoll der bestehenden Firmware um Geräteanalysefunktionen erweitert.
Prozess
NoiseAware wandte sich an uns, als sie nach einem Partner mit Fähigkeiten im Bereich Embedded Software suchten, der ihnen bei der Prüfung und Verbesserung ihres Produkts helfen konnte. Unser Hauptziel war es, die Software des ESP32-Moduls in ihrem Gerät zuverlässiger zu machen, um die Datenübertragung zu verbessern. Wir einigten uns auf ein projektbasiertes Geschäftsmodell zu einem Festpreis, und unser Team hielt wöchentliche Statusgespräche mit dem Kunden ab, in denen er über die Ergebnisse der Arbeit des LS-Teams informiert wurde.
Zunächst führten wir ein Code-Audit durch, bei dem wir den Code überprüften und ihn durch einen statischen Analyzer laufen ließen, um kritische Probleme zu erkennen. Daraufhin bauten die LS-Ingenieure einen lokalen Testserver auf, damit sie die HTTPS-Datenkommunikation ohne Verbindung zum NoiseAware-Server testen konnten. Mit Hilfe der ESP-Bibliothek änderten und strukturierten wir den Code, indem wir die Bibliotheken des Kunden weiter isolierten.
Wir haben Zugangspunkte gefiltert, um sicherzustellen, dass ein und dasselbe Gerät nicht wiederholt gescannt wird. Das Embedded-Engineering-Team von LS integrierte außerdem die Anonymisierung der von den mit dem Sensor verbundenen Geräten erfassten Daten. Da Bluetooth nicht korrekt prozessiert wurde, stellte das Gerät eine WLAN-Verbindung her und konnte sich nicht in der Cloud registrieren.
Unser Kunde hatte eine Funktion zum Zählen der Geräte mit eingeschaltetem Bluetooth und der mit einem Router verbundenen Geräte nur teilweise implementiert. Wir setzten die Entwicklung fort und sahen uns mit einer Herausforderung konfrontiert: Während der Tests gelang es den Smartphones nicht, sich gleichzeitig mit WLAN-Routern und über Bluetooth mit dem NoiseAware-Gerät zu verbinden. Die LS-Ingenieure beschlossen, einen individuellen Task für die Verbindung mit dem WLAN einzurichten, wodurch dieses Problem gelöst wurde.
Derzeit arbeiten wir am zweiten Teil des Projekts und helfen NoiseAware bei der Überarbeitung des TI-Moduls in ihrem Gerät.
Wie es funktioniert
Wir fanden Lemberg Solutions zum perfekten Zeitpunkt unserer Produktentwicklung: Wir hatten ein großes Ziel, viele Probleme und nicht genügend Ressourcen. Wir haben Lemberg Solutions damit beauftragt, zunächst unsere Firmware zu überprüfen und Fehler und ineffiziente Architekturen zu identifizieren. Sie lieferten schnell und gewissenhaft, und wir waren so beeindruckt von dem Ergebnis, dass wir sofort mit der Implementierungsphase begannen. Es war ein Vergnügen, mit ihnen zusammenzuarbeiten, jeder in ihrem Team war klug und handelte effektiv, und unsere Firmware ist in einem sehr guten Zustand. Wir werden sie auf jeden Fall in Zukunft für all unseren Embedded-Bedarf nutzen.