====== GUI ======
===== Remote ssh based GUI =====
export DISPLAY=:0.0
===== Remote browser based GUI =====
==== Overview of html - mqtt - php - sh implemened GUI ====
{{ ::browserbasedgui.jpg?400 |}}
==== simple HTML gui ====
color codes (see [[https://www.rapidtables.com/web/color/html-color-codes.html]]:
* green: rgb(127,255,0)
* yellow: rgb(255,255,0)
* cyan: rgb(0,255,255)
* skyblue: rgb(135,206,235)
* blue: rgb(0,0,255)
* violet: rgb(238,130,238)
* white: rgb(255,255,255)
* lightgray: rgb(211,211,211)
* black: rgb(0,0,0)
* red: rgb(255,0,0)
==== plotly based HTML gui ====
Idea: creating images on pi and display these images as html files remotely
Use lighttpd as minimal webserver on pi
sudo apt-get install lighttpd
sudo pip install plotly
Check status
sudo systemctl status lighttpd
Set access rights
sudo groupadd www-data
sudo usermod -G www-data -a pi
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 775 /var/www/html
restart service
sudo service lighttpd force-reload
move html file to be displayed into /var/www/html/
remote browser access html file by:
http://192.168.1.xx/
==== PHP installieren ====
Only use Python3
sudo apt-get install php7.3-cgi php7.3
sudo lighty-enable-mod fastcgi-php
sudo service lighttpd force-reload
php- files in /var/www/html ablegen
==== mqtt Mosquitto installieren ====
Only use Python3
sudo apt-get install mosquitto mosquitto-clients -y
==== paho installieren ====
Paho is needed to call a shell procedure from python.
Only availabe under python 3
pip3 install paho-mqtt
==== sensormqtt.py autostart ====
/etc/rc.local
nohup /home/pi/browserGUI/sensormqtt.py &
==== Basic code ====
import plotly.graph_objects as go
import random
def nextvalue():
return (random.randint(10,104))
def displayserver():
while True:
fig = go.Figure(go.Indicator(
mode = "gauge+number",
value = nextvalue(),
domain = {'x': [0, 1], 'y': [0, 1]},
title = {'text': "Temperatur"}))
fig.write_html('/var/www/html/labor.html', auto_open=True)
#fig.show()
#
# Main
#
if __name__== '__main__':
try:
displayserver()
except KeyboardInterrupt:
exit()
==== shell script lesen DB ====
getlatestvalue.sh
sqlite3 /home/pi/sensor/sensor.db <
==== hand over values to thermometer.py ====
python3 thermometer.py `getlatestvalue.sh`