This commit is contained in:
jeanGaston 2024-05-05 21:27:17 +02:00
parent c3b6952017
commit 8acb6bfaf1
5 changed files with 79 additions and 48 deletions

View File

@ -1,56 +1,89 @@
#!/bin/bash
# Install Python3 and pip
sudo apt update
sudo apt install -y python3 python3-pip python3-flask python3-schedule python3-plotly python3-pandas
# Install required Python modules
pip3 install bluepy --break-system-packages
# Create env.py file
echo -n "Enter database file name (default: data.db): "
read db_file
db_file=${db_file:-data.db}
echo -e "DBFILE = '$db_file'" >> Program/env.py
# Install and enable SSH
install_ssh() {
echo "Installing SSH..."
sudo apt update
sudo apt install -y openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
echo "SSH installed and enabled."
}
# Install and enable ProFTPD
install_ftp() {
echo "Installing ProFTPD..."
sudo apt update
sudo apt install -y proftpd
sudo systemctl start proftpd
sudo systemctl enable proftpd
echo "ProFTPD installed and enabled."
}
# Install Python3 and modules
install_python(){
sudo apt update
sudo apt install -y python3 python3-pip python3-flask python3-schedule python3-plotly python3-pandas
pip3 install bluepy --break-system-packages
}
# Create env.py file and add values
env_py() {
echo -n "Enter database file name (default: data.db): "
read db_file
db_file=${db_file:-data.db}
echo -e "DBFILE = '$db_file'" >> Program/env.py
echo -n "Enter smtp server address : "
read smtp
echo -e "SMTP = '$smtp'" >> Program/env.py
echo -n "Enter smtp server address : "
read smtp
echo -e "SMTP = '$smtp'" >> Program/env.py
echo -n "Enter smtp port (default 25) : "
read smtp_port
smtp_port=${smtp_portx:-25}
echo -e "SMTP_PORT = $smtp_port" >> Program/env.py
echo -n "Enter smtp port (default 25) : "
read smtp_port
smtp_port=${smtp_portx:-25}
echo -e "SMTP_PORT = $smtp_port" >> Program/env.py
echo -n "Enter sender email address, used as smtp id : "
read smtp_id
echo -e "SMTP_ID = '$smtp_id'" >> Program/env.py
echo -n "Enter sender email address, used as smtp id : "
read smtp_id
echo -e "SMTP_ID = '$smtp_id'" >> Program/env.py
echo -n "Enter sender password, used as smtp password : "
read smtp_pwd
echo -e "SMTP_PWD = '$smtp_pwd'" >> Program/env.py
echo -n "Enter sender password, used as smtp password : "
read smtp_pwd
echo -e "SMTP_PWD = '$smtp_pwd'" >> Program/env.py
echo -n "Enter recipient email address : "
read recipient
echo -e "RECIPIENT = '$recipient'" >> Program/env.py
echo -n "Enter recipient email address : "
read recipient
echo -e "RECIPIENT = '$recipient'" >> Program/env.py
echo -n "Enter Humidity rate alert threshold without percent symbol (default 70): "
read hr_max
hr_max=${hr_max:-70}
echo -e "MAX_HR= $hr_max" >> Program/env.py
echo -n "Enter Humidity rate alert threshold without percent symbol (default 70): "
read hr_max
hr_max=${hr_max:-70}
echo -e "MAX_HR= $hr_max" >> Program/env.py
echo -n "Enter temperature alert threshold without °c symbole (default 30) : "
read temp_max
temp_max=${temp_max:-30}
echo -e "MAX_TEMP= $temp_max" >> Program/env.py
echo -n "Enter temperature alert threshold without °c symbole (default 30) : "
read temp_max
temp_max=${temp_max:-30}
echo -e "MAX_TEMP= $temp_max" >> Program/env.py
echo -e "SENSORS = {'d6:c6:c7:39:a2:e8': 'DEMO3', 'd6:1c:bf:b7:76:62': 'DEMO1', 'd7:ef:13:27:15:29': 'DEMO2'}" >> Program/env.py
}
echo -e "SENSORS = {'d6:c6:c7:39:a2:e8': 'DEMO3', 'd6:1c:bf:b7:76:62': 'DEMO1', 'd7:ef:13:27:15:29': 'DEMO2'}" >> Program/env.py
# Execute main.py
cd Program
python3 main.py
exec(){
cd Program
python3 main.py
}
install_ssh
install_ssh
install_python
env_py
exec

View File

@ -58,17 +58,14 @@ def dashboard():
def history():
data = fetch_all_sensor()
disp_data = []
sensors_name = []
for mac, name in data:
disp_data += [fetch_data_by_sensor(name)]
sensors_name.append[name]
""" S1 = fetch_data_by_sensor("DEMO1")
S2 = fetch_data_by_sensor("DEMO2")
S3 = fetch_data_by_sensor("DEMO3") """
return render_template('history.html', S1=disp_data[0], S2=disp_data[1], S3=disp_data[2])
return render_template('history.html', S1=disp_data[0], S2=disp_data[1], S3=disp_data[2], sensor=sensors_name)
@app.route('/adm', methods=['GET'])
def admin():

View File

@ -13,13 +13,14 @@ def BltDataScrap():
#print("Begin device scan")
devices = scanner.scan(timeout=3.0)
for device in devices:
if device.addr in SENSORS :
if device.addr in sensor_dict :
#print(
#f"Device found {device.addr} ({device.addrType}), "
#f"RSSI={device.rssi} dB"
#)
for adtype, description, value in device.getScanData():
if adtype == 22:
#print(value)
temp = int(value[24:28], 16) / 100
HR = int(value[28:32], 16) / 100
Bat = int(value[20:22], 16)

View File

@ -60,7 +60,7 @@ tr:hover {
<a href="/adm" class="btn">Admin</a>
</div>
<h1>Database Contents</h1>
<h2>Sensor 1</h2>
<h2>{{ sensor[0] }}</h2>
<table border="1">
<tr>
<th>Id</th>
@ -81,7 +81,7 @@ tr:hover {
</tr>
{% endfor %}
</table>
<h2>Sensor 2</h2>
<h2>{{ sensor[1] }}</h2>
<table border="1">
<tr>
<th>Id</th>
@ -102,7 +102,7 @@ tr:hover {
</tr>
{% endfor %}
</table>
<h2>Sensor 3</h2>
<h2>{{ sensor[2] }}</h2>
<table border="1">
<tr>
<th>Id</th>

View File

@ -98,7 +98,7 @@
Plotly.newPlot('graph_hr', HR_graphData.data, HR_graphData.layout);
</script>
<script>
// Refresh the page every 10 seconds
// Refresh the page every 20 seconds
setTimeout(function(){
location.reload();
}, 20000);