-
Support for Raspberry Pi and MicroPython
-
Pure Python API to I2C devices
-
Data output to JSON or CSV with JSON header
-
Standardized timestamps string formats
-
Data timestamping and GPS tagging of data
-
Metadata description of devices in JSON
-
Parser to convert CSV output to Pandas DataFrame
-
Object oriented class structure for REPL use
-
Base methods separated from device drivers for reusability and extension
The examples
directory contains usage in Jupyter Notebooks and the tests
folder contains scripts that will run on MicroPython or Linux.
Device Type | Example Notebook | Driver File | I2C Address |
---|---|---|---|
1 Channel Relay | Sparkfun Qwiic Single Relay | relay.py | 0x18 |
8 Channel Relay | Peter Jakab 8 Channel Relay | mcp23008.py | 0x20 |
DC & Stepper Motor | Grove Motor Driver v1.3 | motor.py | 0x0F |
Ambient Temperature | MCP9808 | mcp9808.py | 0x18 |
DC Current & Power | INA219 | ina219.py | 0x40 |
Acceleration & Gyro | MPU6050 | mpu6050.py | 0x68 |
Analog to Digital | ADS1115 | ads.py | 0x48 |
Digital to Analog | MCP4728 | mcp4728.py | 0x60 |
pH | Atlas Sensors | atlas.py | 0x63 |
Conductivity | Atlas Sensors | atlas.py | 0x64 |
Temperature, Humidity, Pressure, VOC Gas | Bosch BME680 | bme680.py | 0x77 |
GPS | PA1010D | pa1010d.py | 0x10 |
RTC | DS3221 | ds3231.py | 0x68 |
Python 3, Jupyter and Pandas
- Raspberry Pi Model 3
- Raspberry Pi Model 4
MicroPython
- FiPy (should work on all PyCom boards)
- OpenMV Cam M7 (tested with OV7725)
Contributions are welcome! Please read our Code of Conduct.