This project provides a framework to create a personal network of sensors, coupled with a simple web-based interface for viewing sensor readings. It's designed to lower the barrier to IoT exploration, enabling users to set up a home sensor network with just a basic understanding of Python.
- Custom Sensor Network: Build your own network with various sensors.
- Web Interface: Easily view sensor data through a user-friendly web interface.
- User-Friendly: Requires only basic Python knowledge for setup and customization.
- Python 3.x
- Basic knowledge of Python programming
- Required hardware sensors (list specific models or types)
-
Clone the repository:
git clone https://github.com/bendrummond389/SensorAssistant.git
-
Navigate to the project directory:
cd SensorAssistant
- Modify three key files in this project.
- First, add the SSID and password of your network to
connection_settings.py
. - Next, add the IP address of the server device to
mqtt/mqtt_config
. - Finally, modify the
read_sensor()
function insensor.py
to return the desired value from your sensor. Note: There's currently an example for reading a water sensor. More examples and possibly wiring diagrams may be added in the future.
The application currently requires a few steps to run. To simplify the process the MQTT broker, go server and nextjs frontend have been containerized and can be built and deployed with 2 commands.
-
Deploy MicroPython to Your Microcontroller:
- Use pymaker for easy file flashing to the device. Once deployed, the code runs on startup, so no further configuration is needed.
-
Build the Docker image:
-
From the project root, run:
docker-compose build
-
-
Start the docker image:
-
From the project root, run:
docker compose up
-
Once the application is started, visit localhost:3000 to view the web-based dashboard.
This project is licensed under the MIT License - see the LICENSE file for details.