- Documentation: https://succulent.readthedocs.io/en/latest/
- Tested OS: Windows, Ubuntu, Fedora, Alpine, Arch, macOS. However, that does not mean it does not work on others
Do you ever find it challenging and tricky to send sensor measurements 📏, data 📊, or GPS positions from embedded devices 📱, microcontrollers, and smartwatches to a central server? 📡 Setting up the primary data collection scripts can be a time-consuming ⏳ process, involving selecting a protocol, framework, API, and testing them out. Moreover, these scripts are often tailored for specific tasks, making them difficult to adapt to different scenarios.
But fear not! Introducing succulent 🌵, a pure Python framework that simplifies the configuration, management, collection, and preprocessing of data collected via POST requests. This framework draws inspiration from real-world data collection challenges in smart agriculture 🧠🌿, specifically plant monitoring using ESP32 devices. The main goal behind succulent is to streamline the process of configuring various data parameters and provide a range of useful functions for data transformations. By leveraging succulent, you can set up your entire data collection endpoint within minutes, freeing you from the hassle of dealing with server-side scripts.🚀🔧
The current version of succulent comes packed with exciting features, including, but not limited to:
- Hassle-free generation of request URLs for seamless data collection 🌐
- Effortless data retrieval from POST requests 📥
- Versatile data storage options, such as CSV, JSON, SQLite, and even images 🗂️📊🖼️
- Customizable boundaries for collected data, allowing you to set minimum and maximum thresholds ⚙️
With succulent, the process of collecting, managing, and preprocessing data becomes a breeze, empowering you to focus on what truly matters—gaining valuable insights from your embedded devices, microcontrollers, and smartwatches ⌚. So why waste precious time?⏳ Dive into the world of succulent and unlock the true potential of your data! 💪📈
Install succulent with pip:
pip install succulent
To install succulent on Alpine Linux, please use:
$ apk add py3-succulent
To install succulent on Arch Linux, please use an AUR helper:
$ yay -Syyu python-succulent
To install succulent on Fedora, use:
$ dnf install python3-succulent
Follow the instructions in the configuration section to define the configuration file.
Build the container using Docker:
docker build -t succulent-container .
Alternatively, you can use docker-compose
:
docker compose build
Run the container using Docker:
docker run -p 8080:8080 succulent-container
Alternatively, you can use docker-compose
:
docker compose up
from succulent.api import SucculentAPI
api = SucculentAPI(host='0.0.0.0', port=8080, config='configuration.yml', format='csv')
api.start()
In the root directory, create a file named configuration.yml
and define the following:
data:
- name: # Measure name
min: # Minimum value (optional)
max: # Maximum value (optional)
To collect images, create a file named configuration.yml
in the root directory and define the following:
data:
- key: # Key in POST request
This package is distributed under the MIT License. This license can be found online at http://www.opensource.org/licenses/MIT.
This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!
Thanks goes to these wonderful people (emoji key):
Tadej Lahovnik 💻 🐛 🤔 📖 |
Ayan Das 💻 |
Iztok Fister Jr. 💻 🤔 🧑🏫 |
Oromion 🐛 📦 |
rhododendrom 🎨 |
This project follows the all-contributors specification. Contributions of any kind welcome!