Mit einem fertig konfigurierten BOB-Sensor-Kit läuft die Datenerhebung nicht immer so akkurat wie wir gerne möchten, immer noch gibt es Schwankungen und Ausreißer bei der Waage (und den Temperatursensoren). Weiter kann man Daten an die Digitale Stockkarte und das Sensor-Daten-Panel des Bee Observer-Projekts unter https://bee-observer.org schicken, aber nicht an ein “ausgewachsenes” Visualisierungstool wie Grafana z.B. unter https://swarm.hiveeyes.org/grafana/.
Der hiveeyes / Terkin-Datenlogger hat den Vortel, dass die Sensoren zuverlässiger ausgelesen werden und weitere features. Wie kann ich nun mit einem bereits vorhandenen Bee Observer-Kit das nutzen?
- aktuelle
user_setting.jsonauf dem FiPy sichern - (optional) jetzt bietet es sich an, gleich auf die neueste firmware zu wechseln mit
– erase_all
– aktuelle firmware aufspielen - letztes release von Releases · hiveeyes/terkin-datalogger · GitHub herunterladen, [edit] (Stand 2020-12-31)
terkin-datalogger-0.10.0-pycom-mpy-1.11.zip und lokal entpacken. - den gerade entpackten Ordner mit Atom öffnen
- nun in Atom die Datei
settings.example-bob.pyöffen und neu abspeichern untersettings.py - die alte
user_setting.jsonöffnen und z.B. mit https://jsonformatter.curiousconcept.com/ etwas übersichtlicher und hübscher formatieren (Atom kann das auch, wenn man das package atom-beautify installiert, dann mit Strg-Alt-B):
Diese Datei ist unsere Quelle:
user_setting.json von Bee Observer
{
"sensors":{
"hx711":{
"tare_offset":-569748.6,
"calibration_factor":23328
},
"ds1820":{
"positions":{
"t_i_5":"28ff641d8fd8778b",
"t_i_1":"28ff641d8fd4d5d5",
"t_i_2":"28ff641d8fd18ab0",
"t_i_3":"28ff641d8fd922ab",
"t_i_4":"28ff641d8fd833ac",
"t_o":"287e4d7997040320"
}
}
},
"networking":{
"wlan":{
"available":[
{
"channel":1,
"sec":3,
"rssi":-85,
"ssid":"WLAN FritBox A",
"bssid":"7cff4d716a6f"
},
{
"channel":1,
"sec":3,
"rssi":-86,
"ssid":"WLAN TP-Link",
"bssid":"7eff4d716a6f"
}
],
"ssid":"Meine konfigurierte WLAN-SSID",
"password":"mein-wlan-passwort",
"encryption":3
},
"accesspoint":{
"channel":4,
"ssid":"Heidelbeere",
"encryption":3,
"enabled":true,
"password":"hiverize"
}
},
"telemetry":{
"beep":{
"sensor_key":"mein-beep-key-fuer-volk-x"
}
},
"general":{
"general":{
"initial_time":1584724519177
}
}
}
Übertragung der Konfiguration
Nun müssen wir einzelne Parameter von oben in de settings.py übertragen.
WLAN
Bee Observer
"wlan":{
"available":[
[...]
],
"ssid":"Meine konfigurierte WLAN-SSID",
"password":"mein-wlan-passwort",
"encryption":3
},
Hiveeyes
# WiFi stations to connect to in STA mode.
'stations': [
# Variant 1: Use DHCP.
# Variant 1a: Straight forward.
{'ssid': 'Meine konfigurierte WLAN-SSID', 'password': 'mein-wlan-passwort'},
Waage
Bee Observer
"hx711":{
"tare_offset":-569748,
"calibration_factor":23328
},
Hiveeyes
Bei scale den calibration_factor und
bei offset den Wert von tare_offset eintragen
{
'id': 'scale-1',
'number': 0,
'name': 'scale',
'description': 'Waage 1',
'type': 'HX711',
'enabled': True,
'pin_dout': 'P22',
'pin_pdsck': 'P21',
'scale': 23328,
'offset': -569748,
'decimals' : 3,
},
Temperatur / DS18B20
Bee Observer
"ds1820":{
"positions":{
"t_i_1":"28ff641d8fd4d5d5",
"t_i_2":"28ff641d8fd18ab0",
"t_i_3":"28ff641d8fd922ab",
"t_i_4":"28ff641d8fd833ac",
"t_i_5":"28ff641d8fd8778b",
"t_o":"287e4d7997040320"
}
}
Hiveeyes
Bei brood_1 einige Zeilen darüber das zugehörige Feld address suchen und dort die ID von t_i_1 zuordnen, brood_2 ID von t_i_2 usw. Bei outside dann die ID von t_o
{
'id': 'ds18b20-1',
'name': 'temperature',
'description': 'Wabengasse 1',
'type': 'DS18B20',
'enabled': True,
'bus': 'onewire:0',
'devices': [
{
'id': 'ds18b20-m1wg1',
'address': '28ff641d8fd4d5d5',
'description': 'Magazin 1, Wabengasse 1',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_1',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_1',
},
{
'id': 'ds18b20-m1wg3',
'address': '28ff641d8fd18ab0',
'description': 'Magazin 1, Wabengasse 3',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_2',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_2',
},
{
'id': 'ds18b20-m1wg5',
'address': '28ff641d8fd922ab',
'description': 'Magazin 1, Wabengasse 5',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_3',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_3',
},
{
'id': 'ds18b20-m1wg7',
'address': '28ff641d8fd833ac',
'description': 'Magazin 1, Wabengasse 7',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_4',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_4',
},
{
'id': 'ds18b20-m1wg9',
'address': '28ff641d8fd8778b',
'description': 'Magazin 1, Wabengasse 9',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_5',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_5',
},
{
'id': 'ds18b20-outside',
'address': '287e4d7997040320',
'description': 'outside',
'enabled': True,
'telemetry_name': 'outside.temperature',
'realm': 'outside',
'type': 'temperature',
'name': 'outside',
},
],
},
weiter unten dann die IDs nochmals entsprechend eintragen>
# DS18B20
"temperature.28ff641d8fd4d5d5.onewire:0": "t_i_1",
"temperature.28ff641d8fd18ab0.onewire:0": "t_i_2",
"temperature.28ff641d8fd922ab.onewire:0": "t_i_3",
"temperature.28ff641d8fd833ac.onewire:0": "t_i_4",
"temperature.28ff641d8fd8778b.onewire:0": "t_i_5",
"temperature.287e4d7997040320.onewire:0": "t_o",
Beep key
Bee Observer
"telemetry":{
"beep":{
"sensor_key":"mein-beep-key-fuer-volk-x"
}
},
Hiveeyes
# Beep telemetry: JSON over HTTP
{
# Enable/disable this telemetry target.
'enabled': True,
# Define telemetry endpoint and address information.
'endpoint': 'https://bee-observer.org/api/sensors',
'topology': 'beep-bob',
'data': {
'key': 'mein-beep-key-fuer-volk-x',
},
},