Ivy
A Python boilerplate for an IoT node data acquisition system (DAS) supporting remote configuration and software updates. An Ivy-based network is made up of many (remote) computers running autonomously - e.g., performing measurements, controlling actuators, etc. - and a central backend connecting these devices.
The idea of Ivy is that you can start building your own DAS based on Ivy instead of starting from scratch. You have full control over the codebase but do not have to rewrite all the logic that every autonomous DAS has to implement. In addition, Ivy provides you with a well-tested and proven way of upgrading your sensor nodes remotely.
This work is funded by the Horizon 2020 ICOS Cities PAUL Project under grant no. 101037319 (opens in a new tab), and the ERC Consolidator Grant CoSense4Climate under grant no. 101089203 (opens in a new tab).
Important Links:
📚 Documentation: tum-esm-ivy.netlify.app (opens in a new tab)
🪴 Getting Started Guide: tum-esm-ivy.netlify.app/getting-started (opens in a new tab)
🪢 Contributors Guide: tum-esm-ivy.netlify.app/contributing/contributing (opens in a new tab)
🤝 Code of Conduct: tum-esm-ivy.netlify.app/contributing/code-of-conduct (opens in a new tab)
Related Projects:
🪽 The Ivy software template is based on the experience gained when realizing the Hermes Project (opens in a new tab)
🔨 Many utility functions from the tum-esm-utils package (opens in a new tab) are included here.
🕷️ This client-side code connects to the following IoT platforms: Tenta (opens in a new tab), ThingsBoard (opens in a new tab)
🌤️ The software architecture of Pyra (opens in a new tab) is quite similar to the Ivy template. If we were to start building Pyra again today, we could use the Ivy template and save time on developing a new reliable architecture.