What is IoT Assistant?
IoT Assistant is an open source web application that enables the management of sensors, actuators, GPS, and cameras using interfaces like MQTT, HTTP or connected to The Things Network.
Java based
It is based in Java Spring Boot and can run locally on any Windows, Mac, or Linux computer, or on cheap boards like the Raspberry Pi Zero W without requiring virtualization, complicated setups, or third-party services.
Quick and easy
The application should meet the needs of most users right from the start, prioritizing simplicity over flexibility while it still allow developers to add complexity to customize or integrate it with third party like Aqara or Tuya devices.
Getting started
To run IoT Assistant, simply execute the provided .jar file by double-clicking it or using this command:
# java -jar iot-assistant-0.1.0.jar
Depending on your Java version, you may need to use this command instead:
# java --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED -jar iot-assistant-0.1.0.jar
Once running, access the login page at localhost with the default credentials username: admin password: iotassistant
After logging in, go to System > Settings to configure notifications and connect to your devices.
Using IoT Asssistant
Following pages will guide you using IoT Assistant:
- Running IoT Assistant
- Configuring IoT Assistant
- Managing Sensors
- Managing Actuators
- Managing Cameras
- Managing GPS
- Managing Charts
- Managing Rules
Architecture
This application was developed as part of this trainning course mentored by Luis Fernandez Muñoz at EscuelaIt.
The development followed the RUP process, using RUP artifacts to document the architecture based on Philip Krutchen 4+1 View Model. Some UML diagrams are located here.
ESP32 code
Programmable IoT devices typically use a microcontroller connected to a transducer, which reads the transducer's value via GPIO, UART, SPI... and publishes it over a network interface, often entering sleep mode to conserve battery.
The ESP32 microcontroller is popular due to its low cost and wireless capabilities. I provide libraries and Arduino examples for this board to simplify device development. Documentation and code are available here.