JohnKampe
4 years ago
5 changed files with 168 additions and 0 deletions
@ -0,0 +1,2 @@ |
|||
EMAIL=kampe.test@gmail.com |
|||
PASSWORD=12345^&*()test |
@ -0,0 +1 @@ |
|||
.env |
@ -0,0 +1,64 @@ |
|||
<!DOCTYPE HTML> |
|||
<html> |
|||
<head> |
|||
<title>Raspberry Pi Measures</title> |
|||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> |
|||
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script> |
|||
<script src="/socket.io/socket.io.js"></script> |
|||
</head> |
|||
|
|||
<body> |
|||
<div id="myDiv"></div> <!-- Presenting the graph at localhost:3000/ --> |
|||
<script> |
|||
const socket = io(); //connecting with server |
|||
|
|||
var data = []; //initializing list data, we will put the |
|||
//different traces (trace0, trace1, trace2, trace3) in order to plot them |
|||
|
|||
var trace0 = {}; //trace of temperature |
|||
var trace1 = {}; //trace of air humidity |
|||
var trace2 = {}; //trace of ground humidity |
|||
var trace3 = {}; //trace of beaufort |
|||
|
|||
socket.on('graph', (value) => { //on event with name 'graph' get the values from the server |
|||
if(value[10] == 0){ //if the id = 0 then it's temperature values |
|||
trace0 = { //update the trace of temperature |
|||
x: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], |
|||
y: [value[0],value[1],value[2],value[3],value[4],value[5],value[6],value[7],value[8],value[9]], |
|||
type: 'scatter', |
|||
mode: 'lines', |
|||
name: 'Temperature' |
|||
}; |
|||
} else if(value[10] == 1){ //if the id = 1 then it's air humidity values |
|||
trace1 = { //update the trace of air humidity |
|||
x: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], |
|||
y: [value[0],value[1],value[2],value[3],value[4],value[5],value[6],value[7],value[8],value[9]], |
|||
type: 'scatter', |
|||
mode: 'lines', |
|||
name: 'Air humidity' |
|||
}; |
|||
}else if(value[10] == 2){ //if the id = 2 then it's ground humidity values |
|||
trace2 = { //update the trace of ground humidity |
|||
x: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], |
|||
y: [value[0],value[1],value[2],value[3],value[4],value[5],value[6],value[7],value[8],value[9]], |
|||
type: 'scatter', |
|||
mode: 'lines', |
|||
name: 'Ground humidity' |
|||
}; |
|||
}else if(value[10] == 3){ //if the id = 3 then it's beaufort values |
|||
trace3 = { //update the trace of beaufort |
|||
x: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], |
|||
y: [value[0],value[1],value[2],value[3],value[4],value[5],value[6],value[7],value[8],value[9]], |
|||
type: 'scatter', |
|||
mode: 'lines', |
|||
name: 'Beaufort' |
|||
}; |
|||
} |
|||
data = [trace0, trace1, trace2, trace3]; //inserting in list data the traces |
|||
console.log(data); //printing the traces for debugging reasons |
|||
Plotly.newPlot('myDiv', data); //plotting the traces |
|||
}); |
|||
</script> |
|||
</body> |
|||
</html> |
|||
|
Binary file not shown.
@ -0,0 +1,101 @@ |
|||
import requests, json, random |
|||
from time import sleep |
|||
|
|||
url = 'http://localhost:3000' |
|||
old = [0, 0, 0, 0] #list to hold the previous values |
|||
new = [0, 0, 0, 0] #list to hold the new values |
|||
names = ["temperature", "air humidity", "ground humidity", "beaufort"] |
|||
flag = 0 |
|||
diff = 0 |
|||
timer = 0 |
|||
|
|||
while True: |
|||
temp = random.randint(15,45) #Temperature |
|||
ahum = random.randint(0,100) #Air humidity |
|||
ghum = random.randint(0,100) #Ground humidity |
|||
wind = random.randint(0,17) #Beaufort (Bofor) |
|||
|
|||
print("Temperature:",temp) |
|||
print("Air humidity:",ahum) |
|||
print("Ground humidity:",ghum) |
|||
print("Beaufort:",wind,"\n") |
|||
|
|||
new[0]=temp #assigning to list new the new values |
|||
new[1]=ahum |
|||
new[2]=ghum |
|||
new[3]=wind |
|||
|
|||
if flag == 1: #we don't want to do calculations with zeros |
|||
print("New temperature: ",new[0], ", Old temperature: ", old[0]) |
|||
print("New air humidity: ",new[1], ", Old air humidity: ", old[1]) |
|||
print("New ground humidity: ",new[2], ", Old ground humidity: ", old[2]) |
|||
print("New beaufort: ",new[3], ", Old beaufort: ", old[3],"\n") |
|||
|
|||
if timer==10: #if 5 minutes have passed then send the new values to server (10 x 30secs = 300 secs = 5 mins) |
|||
print("Send to server: 5 mins passed!")#send all the new data to server |
|||
|
|||
data = {0:new[i]} #sending the new value of temperature |
|||
r = requests.post(url, data) #sending a json object to the specified url |
|||
|
|||
data = {1:new[i]} #sending the new value of air humidity |
|||
r = requests.post(url, data) #sending a json object to the specified url |
|||
|
|||
data = {2:new[i]} #sending the new value of ground humidity |
|||
r = requests.post(url, data) #sending a json object to the specified url |
|||
|
|||
data = {3:new[i]} #sending the new value of beaufort |
|||
r = requests.post(url, data) #sending a json object to the specified url |
|||
|
|||
else: |
|||
for i in range(4): |
|||
if (new[i] == 0) and (old[i] == 0): #if the previous value and the new one are 0 then continue |
|||
continue |
|||
elif old[i] == 0: #we can't devide a number with zero |
|||
if new[i] > 2: #check if the new value is above 2 (10%) |
|||
diff = new[i] |
|||
elif new[i] == 0: #if the new value is 0 then |
|||
if old[i] > 2: #check if the old value is above 2 (10%) |
|||
diff = old[i] |
|||
else: |
|||
diff = round((abs((new[i]-old[i]))/old[i])*100,2) #calculating percentage difference |
|||
print("Percentage difference of",names[i],":",diff) |
|||
|
|||
if diff > 10: #if the new and old values differ by 10 then send the new value to server |
|||
timer = 0 |
|||
print('Sending to server (10%)...') |
|||
|
|||
if(i == 0): |
|||
|
|||
data = {0:old[i]} #sending the old value |
|||
r = requests.post(url, data) |
|||
data = {0:new[i]} #sending the new value |
|||
|
|||
elif(i == 1): |
|||
|
|||
data = {1:old[i]} #sending the old value |
|||
r = requests.post(url, data) |
|||
data = {1:new[i]} #sending the new value |
|||
|
|||
elif(i == 2): |
|||
|
|||
data = {2:new[i]} #sending the old value |
|||
|
|||
elif(i == 3): |
|||
|
|||
data = {3:new[i]} #sending the old value |
|||
|
|||
r = requests.post(url, data) #sending a json object to the specified url |
|||
|
|||
print('\n') |
|||
|
|||
sleep(5) #produce data every 30 seconds |
|||
timer+=1 |
|||
|
|||
|
|||
old[0]=temp #assigning to list old the old values |
|||
old[1]=ahum |
|||
old[2]=ghum |
|||
old[3]=wind |
|||
|
|||
flag = 1 |
|||
|
Loading…
Reference in new issue