Nikla (Diskussion | Beiträge) |
Bar^-5 (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
| Zeile 19: | Zeile 19: | ||
Mit diesem Python code kann aus den Sensordaten eine Heatmap generiert werden: | Mit diesem Python code kann aus den Sensordaten eine Heatmap generiert werden: | ||
<nowiki> | <nowiki> | ||
import paho.mqtt.client as mqtt | |||
import numpy as np | import numpy as np | ||
import math | import math | ||
| Zeile 60: | Zeile 60: | ||
</nowiki> | </nowiki> | ||
[[Kategorie: Projekte]] | [[Kategorie:Projekte:Archiv]] | ||
Aktuelle Version vom 11. Januar 2020, 13:17 Uhr
GridEye Sensoren, um im Entropia eine Heat-Heatmap zu erzeugen, Projekt gebastelt von Nikla.
Doku
Die aus dem GridEye Sensor ausgelesenen Daten können per MQTT (mqtt://vielseitigkeit.club.entropia.de) unter dem Topic /sandkasten/grideye/optionsraum abgerufen werden.
Der bisher einzige Sensor ist temporär im hauptraum unter Stahlträger montiert und pushed sekündlich seine Werte als Temperatur / Pixel * 4 in Grad Celsius.
TODO:
- Mehr Sensoren (einen pro Raumsegment)
- Bessere Befestigung (müssen höher gehängt werden für volle Abdeckung des Raums)
- Schickes Webinterface zur Datenauswertung
- Personenzählen mit integration in Clubstatus
Beispielcode
Mit diesem Python code kann aus den Sensordaten eine Heatmap generiert werden:
import paho.mqtt.client as mqtt
import numpy as np
import math
import matplotlib.pyplot as plt
import seaborn as sns
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("/sandkasten/grideye/optionsraum")
# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
#print(str(msg.payload))
words = str(msg.payload).split(",")
words.pop(0)
words.pop(64)
#print(words)
x_list = words
x = np.array((x_list))
x_res=x.reshape(8,8)
fig, ax = plt.subplots(figsize=(15,15))
x_res = x_res.astype(float)
x_res = x_res / 4
print(x_res)
sns.heatmap(x_res, square=True, ax=ax, annot=True, fmt=".2f")
plt.yticks(rotation=0,fontsize=16);
plt.xticks(fontsize=12);
plt.tight_layout()
plt.savefig('colorlist.png')
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("vielseitigkeit.club.entropia.de", 1883, 60)
client.loop_forever()