All Projects → rroemhild → pycom-ruuvitag

rroemhild / pycom-ruuvitag

Licence: MIT license
Pycom MicroPython RuuviTag BLE Sensor Beacon scanner

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pycom-ruuvitag

Esp32 Ble2mqtt
A BLE to MQTT bridge running on an ESP32
Stars: ✭ 301 (+1572.22%)
Mutual labels:  esp32, bluetooth
Esp32 Blecollector
ᛡᛒ BLE Scanner + Data persistence on SD Card for M5Stack, Odroid-Go, ESP32-Wrover-Kit and other models
Stars: ✭ 145 (+705.56%)
Mutual labels:  esp32, bluetooth
Esp32 Ble Keyboard
Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible)
Stars: ✭ 533 (+2861.11%)
Mutual labels:  esp32, bluetooth
ruuvitag-demo
Demo of reading Bluetooth Low Energy sensor measurements of RuuviTag environmental sensors and feeding them to MQTT, a database and dashboards
Stars: ✭ 14 (-22.22%)
Mutual labels:  bluetooth, ruuvitag
ruuvidriver
Serves your Ruuvitag Weather Station data over HTTP.
Stars: ✭ 13 (-27.78%)
Mutual labels:  bluetooth, ruuvitag
Blynk Library
Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc.
Stars: ✭ 3,305 (+18261.11%)
Mutual labels:  esp32, bluetooth
Pedalinomini
Same features of Pedalino™ in a compact form.
Stars: ✭ 139 (+672.22%)
Mutual labels:  esp32, bluetooth
MicroDNSSrv
A micro DNS server for MicroPython to simply respond to A queries on multi-domains with or without wildcards (used on Pycom modules & ESP32)
Stars: ✭ 43 (+138.89%)
Mutual labels:  esp32, pycom
ESP32BleAdvertise
Simple library for BLE advertise using ESP32 in Arduino
Stars: ✭ 39 (+116.67%)
Mutual labels:  esp32, bluetooth
Esp32marauder
A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32
Stars: ✭ 233 (+1194.44%)
Mutual labels:  esp32, bluetooth
Nimble Arduino
A fork of the NimBLE library structured for compilation with Ardruino, designed for use with ESP32.
Stars: ✭ 108 (+500%)
Mutual labels:  esp32, bluetooth
Low power TTGO T-beam
Low power consumption for TTGO t-beam
Stars: ✭ 45 (+150%)
Mutual labels:  esp32, bluetooth
Esp32 Ble Mouse
Bluetooth LE Mouse library for the ESP32 (Arduino IDE compatible)
Stars: ✭ 180 (+900%)
Mutual labels:  esp32, bluetooth
BlueRetro
Multiplayer Bluetooth controllers adapter for retro video game consoles
Stars: ✭ 520 (+2788.89%)
Mutual labels:  esp32, bluetooth
arduino-ble-gadget
Create your own Do-It-Yourself BLE enabled sensor gadget on the ESP32 platform.
Stars: ✭ 31 (+72.22%)
Mutual labels:  esp32, bluetooth
GATT
Bluetooth Generic Attribute Profile (GATT) for Swift (Supports Linux)
Stars: ✭ 48 (+166.67%)
Mutual labels:  bluetooth
SuperGreenOS
🧠 SuperGreenOS home farming automation software for esp32, all in one package, and controllable from your smartphone, pc, mac, linux, toaster, plumbus, whatnot...
Stars: ✭ 83 (+361.11%)
Mutual labels:  esp32
soundshed-app
Desktop app to browse and manage guitar amp tones. Control your bluetooth amp, jam to video backing tracks.
Stars: ✭ 36 (+100%)
Mutual labels:  bluetooth
awesome-bluetooth-security
List of Bluetooth BR/EDR/LE security resources
Stars: ✭ 220 (+1122.22%)
Mutual labels:  bluetooth
DuinoDCX
WiFi remote controller for the Behringer Ultradrive.
Stars: ✭ 67 (+272.22%)
Mutual labels:  esp32

Pycom MicroPython RuuviTag Scanner

Harvest data from RuuviTag BLE Sensor Beacon with the Pycom devices.

This repository was renamend from ``micropython-ruuvitag`` to ``pycom-ruuvitag`` as for this version only works on the Pycom devices and to use the namespace ``micropython-ruuvitag`` for the upstream MicroPython version.

pycom-ruuvitag supports Data Format 2, 3, 4 and 5.

This package comes with a scanner and a tracker. The scanner scans for RuuviTags in a pre defined time and return the result. The tracker continuously scans for RuuviTags and call a callback for each tag found.

Installation

With Pymakr you can upload the project to your pycom device. pymakr.conf makes sure that only the relevant files are copied to your device.

Scanner

RuuviTagScanner scans for RuuviTags and decode the data format. The result is a list with named tuples.

Scan 10 seconds for RuuviTag sensors and print the result:

from ruuvitag.scanner import RuuviTagScanner

rts = RuuviTagScanner()

for ruuvitag in rts.find_ruuvitags(timeout=10):
    print(ruuvitag)

Tracker

RuuviTagTracker scans for RuuviTags, decode the data format and call a callback with a named tuple if recieved data from tag.

from ruuvitag.tracker import RuuviTagTracker

def cb(ruuvitag):
    print(ruuvitag)

rtt = RuuviTagTracker()
rtt.track_ruuvitags(cb)

Whitelist devices

You can collect data from only the devices you want by define a whitelist with mac addresses. Other Devices then will be ignored. Whitelists can be used with RuuviTagScanner and RuuviTagTracker.

whitelist = (b'aa:bb:cc:dd:ee:21', b'aa:bb:cc:dd:ee:42',)
rts = RuuviTagScanner(whitelist)

Blacklist persistence

If the data from a Bluetooth device can not be decoded, the device get on a blacklist as long the MicroPython device is not resetted. For a persistent device blacklist the list should be saved and reloaded.

>>> from ruuvitag import RuuviTagScanner
>>> rts = RuuviTagScanner()
>>> # add back blacklisted devices
>>> rts.blacklist = [b'aa:bb:cc:dd:ee:21', b'aa:bb:cc:dd:ee:42']
>>> # run a new scan
>>> rts.find_ruuvitags(timeout=10)
>>> # get blacklisted devices
>>> rts.blacklist

Named tuple formats

Data Format 2 and 4 (Eddystone-URL)

RuuviTagURL = namedtuple('RuuviTagURL', (
    'mac',
    'rssi',
    'format',
    'humidity',
    'temperature',
    'pressure',
    'id',
))

Data Format 3 (RAWv1) and 5 (RAWv2)

RuuviTagRAW = namedtuple('RuuviTagRAW', (
    'mac',
    'rssi',
    'format',
    'humidity',
    'temperature',
    'pressure',
    'acceleration_x',
    'acceleration_y',
    'acceleration_z',
    'battery_voltage',
    'power_info',
    'movement_counter',
    'measurement_sequence',
))
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].