edgemodelkit: A Python library for seamless sensor data acquisition and logging.
Project description
EdgeModelKit: Sensor Data Acquisition and Logging Library
EdgeModelKit is a Python library developed by EdgeNeuron, designed to simplify sensor data acquisition, logging, and real-time processing for IoT devices. It works seamlessly with the DataLogger script from the EdgeNeuron Arduino library, making it ideal for edge computing and machine learning applications.
Features
- Serial Communication: Supports data acquisition over serial ports with robust error handling.
- Flexible Data Fetching: Retrieve sensor data as Python lists or NumPy arrays.
- Customizable Logging: Log sensor data into CSV files with optional timestamps and counters.
- Class-Based Organization: Log data with class labels to prepare datasets for machine learning tasks.
- Error Handling: Gracefully handles data decoding errors and missing keys in sensor data packets.
Usage Prerequisites
This library is designed to work in conjunction with the DataLogger script available in the EdgeNeuron Arduino library. The DataLogger script configures your Arduino-based IoT device to send structured JSON sensor data over a serial connection.
Before using EdgeModelKit, ensure:
- Your Arduino device is programmed with the DataLogger script from the EdgeNeuron Arduino library.
- The device is connected to your system via a serial interface.
Installation
Install EdgeModelKit using pip:
pip install edgemodelkit
Quick Start
1. Initialize the DataFetcher
from edgemodelkit import DataFetcher
# Initialize the DataFetcher with the desired serial port and baud rate
fetcher = DataFetcher(serial_port="COM3", baud_rate=9600)
2. Fetch Sensor Data
# Fetch data as a Python list
sensor_data = fetcher.fetch_data(return_as_numpy=False)
print("Sensor Data:", sensor_data)
# Fetch data as a NumPy array
sensor_data_numpy = fetcher.fetch_data(return_as_numpy=True)
print("Sensor Data (NumPy):", sensor_data_numpy)
3. Log Sensor Data
# Log 10 samples to a CSV file with timestamp and count columns
fetcher.log_sensor_data(class_label="ClassA", num_samples=10, add_timestamp=True, add_count=True)
CSV Logging Details
The CSV file is generated automatically based on the sensor name (e.g., TemperatureSensor_data_log.csv) and contains the following:
- Timestamp: (Optional) Records the time when the data was logged.
- Sample Count: (Optional) A sequential counter for each data sample.
- Data Columns: Each element in the sensor data array is stored in separate columns (e.g.,
data_value_1,data_value_2, ...).
The data is saved under a folder named Dataset, with subfolders organized by class_label (if specified).
Real-Time Data Processing Example
from edgemodelkit import DataFetcher
fetcher = DataFetcher(serial_port="COM3", baud_rate=9600)
try:
while True:
# Fetch data as NumPy array
sensor_data = fetcher.fetch_data(return_as_numpy=True)
print("Received Data:", sensor_data)
# Perform custom processing (e.g., feed to a TensorFlow model)
# prediction = model.predict(sensor_data)
# print("Prediction:", prediction)
finally:
fetcher.close_connection()
Dependencies
EdgeModelKit requires the following Python packages:
numpypandaspyserialjson
Install dependencies with:
pip install numpy pandas pyserial json
Contributing
We welcome contributions to EdgeModelKit! Feel free to submit bug reports, feature requests, or pull requests on our GitHub repository.
License
EdgeModelKit is licensed under the MIT License. See the LICENSE file for details.
Support
For support and inquiries, contact us at support@edgeneuronai.com or visit our GitHub repository.
About EdgeNeuron
EdgeNeuron is a pioneer in edge computing solutions, enabling developers to build intelligent IoT applications with state-of-the-art tools and libraries. Learn more at edgeneuronai.com.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file edgemodelkit-0.1.1.tar.gz.
File metadata
- Download URL: edgemodelkit-0.1.1.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4f553641126a3f70df7554f123a7daf0a773dad05fe5a9eb166bd8a61ad887e
|
|
| MD5 |
6c5e3e2367d2a083bbd03c36a46207e5
|
|
| BLAKE2b-256 |
e716a03947976b86ff1805e20d7f4f46b99fa90fb0bc48ad83703ad0e905bc8e
|
File details
Details for the file edgemodelkit-0.1.1-py3-none-any.whl.
File metadata
- Download URL: edgemodelkit-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bb89025f688ebd5e90bd3e0751134685c0d75b8febbff46f13a9b143a15b9a6
|
|
| MD5 |
cf0fb383df1a5714c715d1e728215093
|
|
| BLAKE2b-256 |
700348181ccea446c5f95a6142164a922f9bf59a03a6ef60884d8c7075eb495f
|