A robust, event-driven IoT controller system designed for MicroPython-enabled devices. This project provides a framework for managing IoT devices with a focus on safety, reliability, and extensibility.
- Event-driven architecture
- Safety monitoring system
- Rule-based automation
- Hardware abstraction layer
- Custom testing framework
- Memory-efficient design
- Async support
gg/ ├── core/ │ ├── Events.py # Event system │ ├── Rules.py # Rules engine │ └── Safety.py # Safety monitoring ├── controllers/ │ ├── Base.py # Base controller │ └── Door.py # Door controller ├── hardware/ │ ├── Interfaces.py # Hardware interfaces │ └── MockHAL.py # Mock hardware for testing ├── testing/ │ ├── microtest.py # Testing framework │ ├── mocks.py # Mock objects │ └── tests/ # Test files ├── SystemController.py # Main controller └── init.py
- Clone the repository:
- Install dependencies:
MicroPython v1.24.1https://micropython.org/download/RPI_PICO_W/micropython-logginghttps://github.com/micropython/micropython-lib/tree/master/loggingmpremotehttps://github.com/micropython/micropython/tree/master/tools/mpremote
- Install on Raspberry Pi Pico W:
mpremote fs cp -r * :.
- Run tests:
Set config.py DEBUG to True
Set config.py RUN_TESTS to True
Set config.py LOG_LEVEL to DEBUG
Connect to Raspberry Pi Pico W via USB and run main.py
mpremote run main.py
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT - See LICENSE file for details
Brandon Bearden