Skip to content

rzr/sense-hat-webthing

Repository files navigation

SENSE-HAT WEBTHING

GitHub forks PyPi Legal Mastodon Follow

ABOUT

Addon adapter for WebThings Gateway using python module to handle I2C sensors and GPIOs of Raspberry Pi's extension board "SenseHat".

sense-hat-webthing

USAGE

PREREQUISITES

Install WebThings Gateway on RaspberryPI (It was made for https://github.com/WebThingsIO/gateway/releases/download/0.12.0/gateway-0.12.0.img.zip )

INSTALL

From "Settings" add-on menu:

  • Add "and enable add-on
  • Then add "SenseHat" from the things dashboard.

CALIBRATE

For using Inertial measurement unit (IMU sensors), calibration will help to get more accurate measurements.

sudo apt-get install librtimulib-utils

cd ~/.config/sense_hat/
mv -f RTIMULib.ini RTIMULib.ini.orig
RTIMULibCal

#| RTIMULibCal - using RTIMULib.ini
#| Settings file not found. Using defaults and creating settings file
#| Detected LSM9DS1 at standard/standard address
#| Using fusion algorithm RTQF
#| min/max compass calibration not in use
#| Ellipsoid compass calibration not in use
#| Accel calibration not in use
#| LSM9DS1 init complete
#| Options are: 
#| m - calibrate magnetometer with min/max
#| e - calibrate magnetometer with ellipsoid (do min/max first)
#| a - calibrate accelerometers
#| (...)

grep '=' RTIMULib.ini

If done correctly north should be indicated by edge where power LED is located the compass value is actually the "yaw" value, while "pitch" is around this same edge. Remaining "roll" value can be changed by rotating on longest middle axis of board.

AUTOMATE

Once added in gateway, it can be used along the rule engine:

sense-hat-webthing

DEVELOP

# From Settings / Developer / Enable SSH
# https://sensehat.mozilla-iot.org/settings/developer
ssh [email protected] # password=raspberry
sudo systemctl stop mozilla-iot-gateway
rm -rf ~/.mozilla-iot/addons/sense-hat-*
cd ~/.mozilla-iot/addons/
git clone https://github.com/rzr/sense-hat-webthing sense-hat-adapter
make -C sense-hat-adapter help prep start # unprep # to restore
sudo systemctl restart mozilla-iot-gateway
sudo journalctl -f -xu mozilla-iot-gateway.service

From "/things" webpage "SenseHat" can be added (+, Add, Done)

Note that instead of restarting gateway, from Web UI, any addon can disabled and enabled again.

EXTRA: EXAMPLES

More examples can be also used as standone webthing server:

cd example
# If on debian, it will be faster:
sudo apt-get install python3-sense-hat 
pip3 install webthing 
# Or if not on debian:
# pip3 install -r requirements.txt 
./sense-hat-single-thing.py

Then add thing using "URL" adapter it should be discovered as (https://localhost:8888)

Same procedure for other exampl, like multiple things which is handling orientation sensor.

MORE

For reference the following items are supported:

Thanks to Geof Cohler (@gcohler) for support.

RESOURCES

sense-hat-webthing