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()