diff --git a/killSite.sh b/killSite.sh new file mode 100755 index 0000000..e96b7a1 --- /dev/null +++ b/killSite.sh @@ -0,0 +1,3 @@ +#!/bin/bash +sudo pkill python +echo Killing website diff --git a/website.sh b/website.sh new file mode 100755 index 0000000..1113884 --- /dev/null +++ b/website.sh @@ -0,0 +1,6 @@ +#!/bin/bash +cd website +sudo python3 coolerControl.py & +sudo python3 saveTempData.py & +sudo python3 tempLogger.py & +sudo python3 homepage.py & diff --git a/website/PIN/pinRead.py b/website/PIN/pinRead.py new file mode 100644 index 0000000..b716f5f --- /dev/null +++ b/website/PIN/pinRead.py @@ -0,0 +1,10 @@ +import RPi.GPIO as GPIO +import time +import numpy as np + +GPIO.setmode(GPIO.BCM) +GPIO.setwarnings(False) +while True: + pin = int(input("Choose a pin: ")) + GPIO.setup(int(pin),GPIO.OUT) + print(str(GPIO.input(pin))) \ No newline at end of file diff --git a/website/PIN/writePin.py b/website/PIN/writePin.py new file mode 100644 index 0000000..46f0ec4 --- /dev/null +++ b/website/PIN/writePin.py @@ -0,0 +1,16 @@ +import RPi.GPIO as GPIO +import time +import numpy as np + +GPIO.setmode(GPIO.BCM) +GPIO.setwarnings(False) +while True: + pin = int(input("Choose a pin: ")) + GPIO.setup(int(pin),GPIO.OUT) + print("Pin " + str(pin) + " status:"+str(GPIO.input(pin))) + if (GPIO.input(pin) == 0): + print("Turning it on") + GPIO.output(pin,GPIO.HIGH) + else: + print("Turning it off") + GPIO.output(pin,GPIO.LOW) \ No newline at end of file diff --git a/website/__pycache__/PIN/writePin.py b/website/__pycache__/PIN/writePin.py new file mode 100644 index 0000000..00b690b --- /dev/null +++ b/website/__pycache__/PIN/writePin.py @@ -0,0 +1,18 @@ +import RPi.GPIO as GPIO +import time +import tempRead +import target +import numpy as np + +GPIO.setmode(GPIO.BCM) +GPIO.setwarnings(False) +while True: + pin = int(input("Choose a pin: ")) + GPIO.setup(int(pin),GPIO.OUT) + print("Pin " + str(pin) + " status:"+str(GPIO.input(pin))) + if (pin == 0): + print("Turning it on") + GPIO.output(pin,GPIO.HIGH) + else: + print("Turning it off") + GPIO.output(pin,GPIO.LOW) \ No newline at end of file diff --git a/website/__pycache__/ai.cpython-37.pyc b/website/__pycache__/ai.cpython-37.pyc index c9cf7bd..b9e5536 100644 Binary files a/website/__pycache__/ai.cpython-37.pyc and b/website/__pycache__/ai.cpython-37.pyc differ diff --git a/website/__pycache__/readData.cpython-37.pyc b/website/__pycache__/readData.cpython-37.pyc index 6fc4caf..98d98b7 100644 Binary files a/website/__pycache__/readData.cpython-37.pyc and b/website/__pycache__/readData.cpython-37.pyc differ diff --git a/website/__pycache__/target.cpython-37.pyc b/website/__pycache__/target.cpython-37.pyc index 3331acd..1dafec3 100644 Binary files a/website/__pycache__/target.cpython-37.pyc and b/website/__pycache__/target.cpython-37.pyc differ diff --git a/website/__pycache__/tempRead.cpython-37.pyc b/website/__pycache__/tempRead.cpython-37.pyc index 3f951b7..fe865f9 100644 Binary files a/website/__pycache__/tempRead.cpython-37.pyc and b/website/__pycache__/tempRead.cpython-37.pyc differ diff --git a/website/__pycache__/think.cpython-37.pyc b/website/__pycache__/think.cpython-37.pyc index 2553e5b..6e9f027 100644 Binary files a/website/__pycache__/think.cpython-37.pyc and b/website/__pycache__/think.cpython-37.pyc differ diff --git a/website/coolerControl.py b/website/coolerControl.py index d117d4a..ee42c4a 100755 --- a/website/coolerControl.py +++ b/website/coolerControl.py @@ -1,13 +1,12 @@ import RPi.GPIO as GPIO import time -import tempRead -import target import numpy as np - +import target +import tempRead GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) -pumps = 14 -peltier = 15 +pumps = 24 +peltier = 25 GPIO.setup(pumps,GPIO.OUT) GPIO.setup(peltier,GPIO.OUT) recentlyCycled = False @@ -15,17 +14,34 @@ while True: try: - tempTarget = target.readTarget() - tempTarget = float(tempTarget) + try: + tempTarget = target.readTarget() + tempTarget = float(tempTarget) + except: + tempTarget = 3 + print("Something went wrong, could not read TempTarget") + time.sleep(0.01) + #print("\n\n") + + #print(tempTarget) + #print("ok") + #print(GPIO.input(pumps)) + try: + actualTemp = tempRead.get_temp() + except: + print("Could not read temp") + actualTemp = 5 + #print(actualTemp) + #print("her") #actualTemp = tempRead.read_temp() - actualTemp = tempRead.get_temp() - if tempTarget > actualTemp + 0.5 and GPIO.input(pumps) == 1: + #actualTemp = tempRead.get_temp() + if tempTarget > float(actualTemp) + 0.5 and GPIO.input(pumps) == 1: print("Turning OFF coolers") GPIO.output(pumps,GPIO.LOW) GPIO.output(peltier,GPIO.LOW) recentlyCycled = False - elif tempTarget< actualTemp and GPIO.input(pumps) == 0: + elif tempTarget < actualTemp and GPIO.input(pumps) == 0: print("Turning ON coolers") GPIO.output(pumps,GPIO.HIGH) GPIO.output(peltier,GPIO.HIGH) @@ -34,10 +50,11 @@ GPIO.output(pumps,GPIO.HIGH) GPIO.output(peltier,GPIO.HIGH) print("Cycling hot water") - time.sleep(2) + time.sleep(5) GPIO.output(pumps,GPIO.LOW) GPIO.output(peltier,GPIO.LOW) recentlyCycled = True + '''except Exception as e: print("Failed to do it") print(e) @@ -47,6 +64,6 @@ print("Failed to do it") #exit()''' except: - a = 2 + print("\n\nSomething went terribly wrong!!!\n\n") diff --git a/website/coolerControl.py.save b/website/coolerControl.py.save new file mode 100755 index 0000000..ab29e38 --- /dev/null +++ b/website/coolerControl.py.save @@ -0,0 +1,57 @@ +import RPi.GPIO as GPIO +import time +import numpy as np + +GPIO.setmode(GPIO.BCM) +GPIO.setwarnings(False) +pumps = 24 +peltier = 25 +GPIO.setup(pumps,GPIO.OUT) +GPIO.setup(peltier,GPIO.OUT) +recentlyCycled = False +coolers = False +while True: + + try: + # print("FUCK") + tempTarget = target.readTarget() + tempTarget = float(tempTarget) + time.sleep(0.01) + #print("\n\n") + print(tempTarget) + print(GPIO.input(pumps)) + actualTemp = tempRead.get_temp() + print(actualTemp) + print("\n\n") + #actualTemp = tempRead.read_temp() + #actualTemp = tempRead.get_temp() + if tempTarget > actualTemp + 0.5 and GPIO.input(pumps) == 1: + print("Turning OFF coolers") + GPIO.output(pumps,GPIO.LOW) + GPIO.output(peltier,GPIO.LOW) + recentlyCycled = False + elif tempTarget< actualTemp and GPIO.input(pumps) == 0: + print("Turning ON coolers") + GPIO.output(pumps,GPIO.HIGH) + GPIO.output(peltier,GFOPIO.HIGH) + recentlyCycled = False + elif tempTarget < actualTemp + 0.2 and GPIO.input(pumps) == 0 and recentlyCycled == False: + GPIO.output(pumps,GPIO.HIGH) + GPIO.output(peltier,GPIO.HIGH) + print("Cycling hot water") + time.sleep(5) + GPIO.output(pumps,GPIO.LOW) + GPIO.output(peltier,GPIO.LOW) + recentlyCycled = True + '''except Exception as e: + print("Failed to do it") + print(e) + print(type(tempTarget)) + print(type(actualTemp)) + print(type(GPIO.input(14))) + print("Failed to do it") + #exit()''' + except: + a = 2 + + diff --git a/website/coolerControl.py.save.1 b/website/coolerControl.py.save.1 new file mode 100755 index 0000000..0c6b0b6 --- /dev/null +++ b/website/coolerControl.py.save.1 @@ -0,0 +1,58 @@ +import RPi.GPIO as GPIO +import time +import numpy as np +import target +GPIO.setmode(GPIO.BCM) +GPIO.setwarnings(False) +pumps = 24 +peltier = 25 +GPIO.setup(pumps,GPIO.OUT) +GPIO.setup(peltier,GPIO.OUT) +recentlyCycled = False +coolers = False +while True: + + try: + + tempTarget = target.readTarget( + tempTarget = float(tempTarget) + time.sleep(0.01) + #print("\n\n") + print("ok") + print(tempTarget) + print(GPIO.input(pumps)) + actualTemp = tempRead.get_temp() + print(actualTemp) + print("\n\n") + #actualTemp = tempRead.read_temp() + #actualTemp = tempRead.get_temp() + if tempTarget > actualTemp + 0.5 and GPIO.input(pumps) == 1: + print("Turning OFF coolers") + GPIO.output(pumps,GPIO.LOW) + GPIO.output(peltier,GPIO.LOW) + recentlyCycled = False + elif tempTarget< actualTemp and GPIO.input(pumps) == 0: + print("Turning ON coolers") + GPIO.output(pumps,GPIO.HIGH) + GPIO.output(peltier,GFOPIO.HIGH) + recentlyCycled = False + elif tempTarget < actualTemp + 0.2 and GPIO.input(pumps) == 0 and recentlyCycled == False: + GPIO.output(pumps,GPIO.HIGH) + GPIO.output(peltier,GPIO.HIGH) + print("Cycling hot water") + time.sleep(5) + GPIO.output(pumps,GPIO.LOW) + GPIO.output(peltier,GPIO.LOW) + recentlyCycled = True + '''except Exception as e: + print("Failed to do it") + print(e) + print(type(tempTarget)) + print(type(actualTemp)) + print(type(GPIO.input(14))) + print("Failed to do it") + #exit()''' + except: + a = 2 + + diff --git a/website/data10Sec.npz b/website/data10Sec.npz index c3dad55..2104613 100644 Binary files a/website/data10Sec.npz and b/website/data10Sec.npz differ diff --git a/website/data3Min.npz b/website/data3Min.npz index 7ee3a84..754383b 100644 Binary files a/website/data3Min.npz and b/website/data3Min.npz differ diff --git a/website/homepage.py b/website/homepage.py index 1749f31..8f66e85 100644 --- a/website/homepage.py +++ b/website/homepage.py @@ -14,7 +14,7 @@ import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) -GPIO.setup(14,GPIO.OUT) +GPIO.setup(24,GPIO.OUT) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) @@ -24,11 +24,11 @@ @app.route('/',methods = ['GET']) @app.route('/send',methods = ['GET','POST']) def send(): - return render_template('age.html', ip=s.getsockname()[0]) + return render_template('age.html', ip="ecbeer.dk")#=s.getsockname()[0]) @app.route('/admin',methods = ['GET','POST']) def admin(): - return render_template('admin.html', ip=s.getsockname()[0]) + return render_template('admin.html', ip="ecbeer.dk")#ip=s.getsockname()[0]) @app.route('/images',methods = ['GET','POST']) def images(): @@ -60,7 +60,7 @@ def charts(): @app.route('/readTarget',methods = ['GET','POST']) def readTarget(): - list ={'target':[target.readTarget()],'status':[str(GPIO.input(14))]} + list ={'target':[target.readTarget()],'status':[str(GPIO.input(24))]} return jsonify(list) #Returns JSON with list @@ -78,7 +78,18 @@ def estimate(): list ={'estimate':[ai.estimate()]} return jsonify(list) #Returns JSON with list +@app.route('/turnOff',methods = ['GET','POST']) +def turnOff(): + os.system("sudo shutdown -h now") + +@app.route('/reboot',methods = ['GET','POST']) +def reboot(): + print("Rebooting") + os.system("sudo reboot") + if __name__ == '__main__': app.run(debug=False,port=80,host='0.0.0.0') + + diff --git a/website/oldLogs/data10Sec00.npz b/website/oldLogs/data10Sec00.npz new file mode 100644 index 0000000..8eb8031 Binary files /dev/null and b/website/oldLogs/data10Sec00.npz differ diff --git a/website/oldLogs/data10Sec01.npz b/website/oldLogs/data10Sec01.npz new file mode 100644 index 0000000..7c74e56 Binary files /dev/null and b/website/oldLogs/data10Sec01.npz differ diff --git a/website/oldLogs/data10Sec02.npz b/website/oldLogs/data10Sec02.npz new file mode 100644 index 0000000..2d59e37 Binary files /dev/null and b/website/oldLogs/data10Sec02.npz differ diff --git a/website/oldLogs/data10Sec03.npz b/website/oldLogs/data10Sec03.npz new file mode 100644 index 0000000..262959c Binary files /dev/null and b/website/oldLogs/data10Sec03.npz differ diff --git a/website/oldLogs/data10Sec04.npz b/website/oldLogs/data10Sec04.npz new file mode 100644 index 0000000..a43d6bb Binary files /dev/null and b/website/oldLogs/data10Sec04.npz differ diff --git a/website/oldLogs/data10Sec05.npz b/website/oldLogs/data10Sec05.npz new file mode 100644 index 0000000..d88d546 Binary files /dev/null and b/website/oldLogs/data10Sec05.npz differ diff --git a/website/oldLogs/data10Sec06.npz b/website/oldLogs/data10Sec06.npz new file mode 100644 index 0000000..42ced1f Binary files /dev/null and b/website/oldLogs/data10Sec06.npz differ diff --git a/website/oldLogs/data10Sec07.npz b/website/oldLogs/data10Sec07.npz new file mode 100644 index 0000000..b0f3f29 Binary files /dev/null and b/website/oldLogs/data10Sec07.npz differ diff --git a/website/oldLogs/data10Sec08.npz b/website/oldLogs/data10Sec08.npz new file mode 100644 index 0000000..648ea00 Binary files /dev/null and b/website/oldLogs/data10Sec08.npz differ diff --git a/website/oldLogs/data10Sec09.npz b/website/oldLogs/data10Sec09.npz new file mode 100644 index 0000000..dbb2886 Binary files /dev/null and b/website/oldLogs/data10Sec09.npz differ diff --git a/website/oldLogs/data10Sec10.npz b/website/oldLogs/data10Sec10.npz index 48df6d1..12379fe 100644 Binary files a/website/oldLogs/data10Sec10.npz and b/website/oldLogs/data10Sec10.npz differ diff --git a/website/oldLogs/data10Sec11.npz b/website/oldLogs/data10Sec11.npz new file mode 100644 index 0000000..1bfb2fb Binary files /dev/null and b/website/oldLogs/data10Sec11.npz differ diff --git a/website/oldLogs/data10Sec12.npz b/website/oldLogs/data10Sec12.npz new file mode 100644 index 0000000..515669a Binary files /dev/null and b/website/oldLogs/data10Sec12.npz differ diff --git a/website/oldLogs/data10Sec13.npz b/website/oldLogs/data10Sec13.npz new file mode 100644 index 0000000..3d0dd89 Binary files /dev/null and b/website/oldLogs/data10Sec13.npz differ diff --git a/website/oldLogs/data10Sec14.npz b/website/oldLogs/data10Sec14.npz new file mode 100644 index 0000000..9fda9fa Binary files /dev/null and b/website/oldLogs/data10Sec14.npz differ diff --git a/website/oldLogs/data10Sec15.npz b/website/oldLogs/data10Sec15.npz new file mode 100644 index 0000000..8dea100 Binary files /dev/null and b/website/oldLogs/data10Sec15.npz differ diff --git a/website/oldLogs/data10Sec16.npz b/website/oldLogs/data10Sec16.npz new file mode 100644 index 0000000..3e00c11 Binary files /dev/null and b/website/oldLogs/data10Sec16.npz differ diff --git a/website/oldLogs/data10Sec17.npz b/website/oldLogs/data10Sec17.npz new file mode 100644 index 0000000..4e24bc7 Binary files /dev/null and b/website/oldLogs/data10Sec17.npz differ diff --git a/website/oldLogs/data10Sec18.npz b/website/oldLogs/data10Sec18.npz new file mode 100644 index 0000000..33542f7 Binary files /dev/null and b/website/oldLogs/data10Sec18.npz differ diff --git a/website/oldLogs/data10Sec19.npz b/website/oldLogs/data10Sec19.npz new file mode 100644 index 0000000..a10a96d Binary files /dev/null and b/website/oldLogs/data10Sec19.npz differ diff --git a/website/oldLogs/data10Sec20.npz b/website/oldLogs/data10Sec20.npz new file mode 100644 index 0000000..5c5187e Binary files /dev/null and b/website/oldLogs/data10Sec20.npz differ diff --git a/website/oldLogs/data10Sec21.npz b/website/oldLogs/data10Sec21.npz new file mode 100644 index 0000000..f9c416f Binary files /dev/null and b/website/oldLogs/data10Sec21.npz differ diff --git a/website/oldLogs/data10Sec22.npz b/website/oldLogs/data10Sec22.npz new file mode 100644 index 0000000..5c12d4e Binary files /dev/null and b/website/oldLogs/data10Sec22.npz differ diff --git a/website/oldLogs/data10Sec23.npz b/website/oldLogs/data10Sec23.npz new file mode 100644 index 0000000..2594fc5 Binary files /dev/null and b/website/oldLogs/data10Sec23.npz differ diff --git a/website/pinRead.py b/website/pinRead.py new file mode 100644 index 0000000..4c1ca8a --- /dev/null +++ b/website/pinRead.py @@ -0,0 +1,12 @@ +import RPi.GPIO as GPIO +import time +import tempRead +import target +import numpy as np + +GPIO.setmode(GPIO.BCM) +GPIO.setwarnings(False) +while True: + pin = int(input("Choose a pin: ")) + GPIO.setup(int(pin),GPIO.OUT) + print(str(GPIO.input(pin))) \ No newline at end of file diff --git a/website/static/pictures/IMG_20200301_112325.jpg b/website/static/pictures/IMG_20200301_112325.jpg index f7a956d..4e9a5d8 100755 Binary files a/website/static/pictures/IMG_20200301_112325.jpg and b/website/static/pictures/IMG_20200301_112325.jpg differ diff --git a/website/static/pictures/IMG_20200301_112328.jpg b/website/static/pictures/IMG_20200301_112328.jpg index d44a50e..38e1e07 100755 Binary files a/website/static/pictures/IMG_20200301_112328.jpg and b/website/static/pictures/IMG_20200301_112328.jpg differ diff --git a/website/static/pictures/IMG_20200620_150024.jpg b/website/static/pictures/IMG_20200620_150024.jpg index de22a31..df9cfe8 100755 Binary files a/website/static/pictures/IMG_20200620_150024.jpg and b/website/static/pictures/IMG_20200620_150024.jpg differ diff --git a/website/static/pictures/IMG_20200620_162213.jpg b/website/static/pictures/IMG_20200620_162213.jpg index 4e50c9c..b62cc18 100755 Binary files a/website/static/pictures/IMG_20200620_162213.jpg and b/website/static/pictures/IMG_20200620_162213.jpg differ diff --git a/website/static/pictures/IMG_20200620_162217.jpg b/website/static/pictures/IMG_20200620_162217.jpg index c236a7c..bed72b7 100755 Binary files a/website/static/pictures/IMG_20200620_162217.jpg and b/website/static/pictures/IMG_20200620_162217.jpg differ diff --git a/website/static/pictures/IMG_20200620_162220.jpg b/website/static/pictures/IMG_20200620_162220.jpg index b14c646..e11dd5c 100755 Binary files a/website/static/pictures/IMG_20200620_162220.jpg and b/website/static/pictures/IMG_20200620_162220.jpg differ diff --git a/website/static/pictures/IMG_20200620_162427.jpg b/website/static/pictures/IMG_20200620_162427.jpg index 0e0b999..456c104 100755 Binary files a/website/static/pictures/IMG_20200620_162427.jpg and b/website/static/pictures/IMG_20200620_162427.jpg differ diff --git a/website/static/pictures/IMG_20200620_164453.jpg b/website/static/pictures/IMG_20200620_164453.jpg index 67ad6d3..7cd9a61 100755 Binary files a/website/static/pictures/IMG_20200620_164453.jpg and b/website/static/pictures/IMG_20200620_164453.jpg differ diff --git a/website/static/pictures/IMG_20200620_164501.jpg b/website/static/pictures/IMG_20200620_164501.jpg index d70b1d1..d6c4ec5 100755 Binary files a/website/static/pictures/IMG_20200620_164501.jpg and b/website/static/pictures/IMG_20200620_164501.jpg differ diff --git a/website/static/pictures/IMG_20200620_164503.jpg b/website/static/pictures/IMG_20200620_164503.jpg index 7fad819..db42e23 100755 Binary files a/website/static/pictures/IMG_20200620_164503.jpg and b/website/static/pictures/IMG_20200620_164503.jpg differ diff --git a/website/static/pictures/IMG_20200620_164507.jpg b/website/static/pictures/IMG_20200620_164507.jpg index c06c197..91f9fb2 100755 Binary files a/website/static/pictures/IMG_20200620_164507.jpg and b/website/static/pictures/IMG_20200620_164507.jpg differ diff --git a/website/static/pictures/IMG_20200621_180701.jpg b/website/static/pictures/IMG_20200621_180701.jpg index 67b9277..1f8e20f 100755 Binary files a/website/static/pictures/IMG_20200621_180701.jpg and b/website/static/pictures/IMG_20200621_180701.jpg differ diff --git a/website/static/pictures/IMG_20200628_204354.jpg b/website/static/pictures/IMG_20200628_204354.jpg index 9b0a0f7..e338364 100755 Binary files a/website/static/pictures/IMG_20200628_204354.jpg and b/website/static/pictures/IMG_20200628_204354.jpg differ diff --git a/website/static/pictures/IMG_20200628_204401.jpg b/website/static/pictures/IMG_20200628_204401.jpg index ef64db2..fc7d82b 100755 Binary files a/website/static/pictures/IMG_20200628_204401.jpg and b/website/static/pictures/IMG_20200628_204401.jpg differ diff --git a/website/static/pictures/IMG_20200701_143437.jpg b/website/static/pictures/IMG_20200701_143437.jpg index e8f9c0a..0c3c7bd 100755 Binary files a/website/static/pictures/IMG_20200701_143437.jpg and b/website/static/pictures/IMG_20200701_143437.jpg differ diff --git a/website/static/pictures/IMG_20201229_113529938.jpg b/website/static/pictures/IMG_20201229_113529938.jpg index 1eaa069..b5d1dbf 100755 Binary files a/website/static/pictures/IMG_20201229_113529938.jpg and b/website/static/pictures/IMG_20201229_113529938.jpg differ diff --git a/website/static/pictures/MVIMG_20200620_162433.jpg b/website/static/pictures/MVIMG_20200620_162433.jpg index 02bc6e2..bdba8b4 100755 Binary files a/website/static/pictures/MVIMG_20200620_162433.jpg and b/website/static/pictures/MVIMG_20200620_162433.jpg differ diff --git a/website/static/pictures/Screenshot_20200528-170904.jpg b/website/static/pictures/Screenshot_20200528-170904.jpg new file mode 100644 index 0000000..0c60a11 Binary files /dev/null and b/website/static/pictures/Screenshot_20200528-170904.jpg differ diff --git a/website/static/pictures/V1.jpg b/website/static/pictures/V1.jpg index e8f9c0a..0c3c7bd 100755 Binary files a/website/static/pictures/V1.jpg and b/website/static/pictures/V1.jpg differ diff --git a/website/static/pictures/v2.jpg b/website/static/pictures/v2.jpg index 1eaa069..b5d1dbf 100755 Binary files a/website/static/pictures/v2.jpg and b/website/static/pictures/v2.jpg differ diff --git a/website/target.pyc b/website/target.pyc index 65fbde7..b89255c 100644 Binary files a/website/target.pyc and b/website/target.pyc differ diff --git a/website/targetTemp.txt b/website/targetTemp.txt index e440e5c..9a03714 100644 --- a/website/targetTemp.txt +++ b/website/targetTemp.txt @@ -1 +1 @@ -3 \ No newline at end of file +10 \ No newline at end of file diff --git a/website/tempData.txt b/website/tempData.txt index 03ac908..1182fc9 100644 --- a/website/tempData.txt +++ b/website/tempData.txt @@ -1 +1 @@ -17.75;28.625 \ No newline at end of file +19.437;33.125 \ No newline at end of file diff --git a/website/tempDataMain.txt b/website/tempDataMain.txt index b0dcfcd..68ac57e 100644 --- a/website/tempDataMain.txt +++ b/website/tempDataMain.txt @@ -1 +1 @@ -5.312 \ No newline at end of file +5.375 \ No newline at end of file diff --git a/website/tempRead.py b/website/tempRead.py index c5d70fa..68d05b4 100644 --- a/website/tempRead.py +++ b/website/tempRead.py @@ -35,9 +35,10 @@ def read_temp(): file.close() return(parsedTemp,f[:f.find(";")],f[f.find(";")+1:]) def get_temp(): + #print("OK") parsedTemp = parse_temp(temp_sensor0) f = open("tempDataMain.txt","w") f.write(str(parsedTemp)) f.close() - return parsedTemp -print(get_temp()) + return parsedTemp # parsedTemp +#print(get_temp()) diff --git a/website/tempRead.pyc b/website/tempRead.pyc index 9bd7954..801a2aa 100644 Binary files a/website/tempRead.pyc and b/website/tempRead.pyc differ diff --git a/website/templates/admin.html b/website/templates/admin.html index 527232e..d2c80aa 100755 --- a/website/templates/admin.html +++ b/website/templates/admin.html @@ -11,7 +11,7 @@
-

EcDrink    V2.0

+

EcBeer    V2.0

  Powered by

 AI


@@ -65,9 +65,8 @@

Cooler Control 13:05

- - - + +

@@ -339,14 +338,14 @@

Additional info

function changeCoolerStatus(status) { imgStatus = document.getElementById("coolerStatus").src; if (status == 0) { - if (imgStatus != "http://192.168.0.168/static/coolingOff.png") { - document.getElementById("coolerStatus").src = "http://192.168.0.168/static/coolingOff.png"; + if (imgStatus != "/static/coolingOff.png") { + document.getElementById("coolerStatus").src = "/static/coolingOff.png"; } } else { - if (imgStatus == "http://192.168.0.168/static/coolingOff.png") { - document.getElementById("coolerStatus").src = "http://192.168.0.168/static/coolingOn.png"; + if (imgStatus == "/static/coolingOff.png") { + document.getElementById("coolerStatus").src = "/static/coolingOn.png"; } } } @@ -370,9 +369,42 @@

Additional info

xhttp.send(); } - function lengthOfThing() { - alert(myChart.data.datasets[0].data.length); + function turnOff(){ + var xhttp = new XMLHttpRequest(); + alert("Turning Off"); + xhttp.onreadystatechange = function () { + + + if (this.responseText != null && this.responseText != "") { + + alert("Did not turn off"); + + } + + + }; +xhttp.open("GET", "http://{{ip}}:80/turnOff", true); + +xhttp.send(); } + function reboot(){ + var xhttp = new XMLHttpRequest(); + alert("Rebooting"); + xhttp.onreadystatechange = function () { + + + if (this.responseText != null && this.responseText != "") { + + alert("Did not turn off"); + + } + + + }; +xhttp.open("GET", "http://{{ip}}:80/reboot", true); + +xhttp.send(); + } \ No newline at end of file diff --git a/website/templates/age.html b/website/templates/age.html index 7b3abf8..c3ca4c9 100644 --- a/website/templates/age.html +++ b/website/templates/age.html @@ -12,7 +12,7 @@

Ambient temperature

-

The XMLHttpRequest Object

+

Could not load temps

@@ -192,6 +192,7 @@

Additional info

function updateTemp() { + var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function () { var idArr = ["beerTemp", "waterTemp", "airTemp"]; @@ -210,7 +211,7 @@

Additional info

} }; - xhttp.open("GET", "http://{{ip}}:80/temps", true); + xhttp.open("GET", "http://{{ip}}/temps", true); xhttp.send(); } @@ -344,9 +345,10 @@

Additional info

} function changeCoolerStatus(status) { imgStatus = document.getElementById("coolerStatus").src; - //alert(status); + /*alert(status); + alert(imgStatus);*/ if (status == 0) { - if (imgStatus != "http://{{ip}}/static/coolingOff.png") { + if (imgStatus != "http://{{ip}}static/coolingOff.png") { document.getElementById("coolerStatus").src = "http://{{ip}}/static/coolingOff.png"; } diff --git a/website/templates/images.html b/website/templates/images.html index bf2c22e..0cc092b 100755 --- a/website/templates/images.html +++ b/website/templates/images.html @@ -5,7 +5,7 @@
-

EcDrink    V2.0

+

EcBeer    V2.0

  Powered by

 AI


@@ -82,7 +82,7 @@

Additional info

image.classList.remove("loading"); }; - downloadingImage.src = "/static/pictures/"+image.id; + downloadingImage.src = "https://www.bjoerholm.dk/beer/images/"+image.id; } diff --git a/website/templates/info.html b/website/templates/info.html index 343a10c..5140e7c 100755 --- a/website/templates/info.html +++ b/website/templates/info.html @@ -12,7 +12,7 @@
-

EcDrink    V2.0

+

EcBeer    V2.0

  Powered by

 AI


@@ -25,18 +25,21 @@

Hvordan virker det?

- Hele Fadølsanlægget består overordnet set af to dele. Der er det vandbad der køler en jernspiral ned hvori øllet løber. - Og så er der den del der køler vandet i vandbadet. Vandbadet er omkring 17 liter, og jernspiralen er omkring 26 CM i diameter, - 11 cm høj uden 3D printede spacers, og tættere på 20 cm med dem. - Baddet ligger isoleret i en flamingo kasse.
For at køle vandet bliver det ledt igennem et vandkølingsystem, der bliver aktivt kølet på den ene side af peltier elementerne. - Peltier elementer er elektriske komponenter, der ved tilført strøm, flytter varme fra den ene side til den anden. - Den ene side vil derfor blive meget kold, og den anden side utrolig varm. -
Disse elementer sidder der 6 af. De trækker omkring 50 watt stykket, så omkring 300 watt bliver brugt alene på køling. - Vandet i bassinet løber så igennem 6 vandkølings-blokke, som kan ses på billedet nede for, på den kolde side. - Efter det har været igennem alle blokkene løber det tilbage til badet og køler øllen ned. Dette holder også bevægelse i vandet, og hjælper med at køle øllen hurtigt ned. - Men den varme side af elementerne skal også køles ned, ellers bliver de for varme og brænder af, eller så bliver varmen langsomt overført til den kolde side. - For at køle den varme side af elementerne af bliver der brugt endnu et vandkølings system. Dette system kører også igennem 6 blokke, men i stedet for at løbe ned - i et kar med vand, løber det ud i 2 radiatorer med 2 blæsere på hver især. + Hele Fadølsanlægget består overordnet set af to dele. Der er det vandbad der køler en jern spiral ned hvori øllet løber. + Og så er der den del der køler vandet i vandbadet. Vandbadet er omkring 17 liter, og jern spiralen er omkring 26 CM i diameter, + 11 cm høj uden 3D printede spacers, og tættere på 20 cm med dem. Badet ligger isoleret i en flamingokasse. + For at køle vandet bliver det ledt igennem et vandkølingssystem, der bliver aktivt kølet på den ene side af peltier elementerne. + Peltier elementer er elektriske komponenter, der ved tilført strøm, flytter varme fra den ene side til den anden. + Den ene side vil derfor blive meget kold, og den anden side utrolig varm. + Disse elementer sidder der 6 af. De trækker omkring 50 watt stykket, så omkring 300 watt bliver brugt alene på køling. + Vandet i bassinet løber så igennem 6 vandkølings-blokke, som kan ses på billedet nedenfor, på den kolde side. + Efter det har været igennem alle blokkene løber det tilbage til badet og køler øllen ned. + Dette holder også bevægelse i vandet, og hjælper med at køle øllen hurtigt ned. + Men den varme side af elementerne skal også køles ned, ellers bliver de for varme og brænder af, + eller så bliver varmen langsomt overført til den kolde side. For at køle den varme side af elementerne af + bliver der brugt endnu et vandkølingssystem. Dette system kører også igennem 6 blokke, men i stedet for at løbe ned i et kar med vand, + løber det ud i 2 radiatorer med 2 blæsere på hver især. + Til strøm styring sidder et Custom designed PCB, designet af Victor og Bo, der kan trække over 400 Watt.

Boardet bliver styret af en Arduino, som får kommandoer af en Raspberry Pi via en protokol designet af Victor.
coolerStatusHvordan virker det? Al styring af strøm og hele hostingen af hjemmesiden bliver kørt på en Raspberry Pi 3B+. Ovenpå den sidder et custom designed shield, med stik til thermometre og styring af op til 6 strømforsyninger.

Hele dette setup trækker rundt regnet omkring 360 watt. -
At ølanlægget EcCooler nu fungerer som det skal, betyder dog ikke at der ikke er store ændringer på vej. - EzDrink 2.5 er på færdig kodet. Dette nye kontrol system har nu en integreret kunstig intelligens der regner ud hvornår øllen er kold nok. -
Nye moduler er allerede tegnet og ved at blive testet der forhåbentlig gør dette setup endnu bedre. - Derudover vil der blive tilført omkring 50% ekstra kølekapacitet når de nye moduler bliver indført. +
At øl anlægget EcCooler nu fungerer som det skal, betyder dog ikke at der ikke er store ændringer på vej. + EzDrink 2.5 er på færdig kodet. Dette nye kontrolsystem har nu en integreret kunstig intelligens der regner ud hvornår øllen er kold nok. + +
Nye moduler er allerede tegnet og ved at blive testet der forhåbentlig gør dette setup endnu bedre. + Derudover vil der blive tilført omkring 50% ekstra kølekapacitet når de nye moduler bliver indført. + + +

@@ -59,7 +66,7 @@

Ideen

Hele ideen bag projektet stammer fra en sommerferie i kroatien 2019. Bo og Victor Bjørholm, tørstige efter en varm dag bestilte en Radler på en cafe. Victor så for første gang en Radler blive blandet, og kunne ikke vente med at prøve det selv. 1 del øl, 1 del Sprite var hvad der skulle til. Bo og Victor begyndte herefter hurtigt at diskutere hvordan man kunne lave en Radler mixer maskine til deres kendte "Sommerfest". Efter mange diskussioner blev projektet mere og mere avanceret. - Bare det at køle øllen ned viste sig at være en stor udfordring.
Det viste sig hurtigt at køle øl ikke var verdens nememste ting. + Bare det at køle øllen ned viste sig at være en stor udfordring.
Det viste sig hurtigt at køle øl ikke var verdens nemmeste ting. Specielt ikke hvis man nægter at bruge en kompressor. Med denne nye udfordring glemte Bo og Victor hurtigt alt om Radleren.
Victor introducerede Bo for Peltier elementer, som Victor dog heller ikke kendte meget til. Sammen begyndte de at tegne og regne ud hvor meget varme der skulle flyttes for at forsyne en fest med øl. @@ -75,16 +82,16 @@

Version 0.5 til 1.5

Efter nogle bump på vejen, Victor der flyttede tidligt hjemmefra, fik de endelig en prototype op at køre på Bo's kontor. Ingen bevægelige dele var brugt overhovedet, og prototypen kunne køle ned i omkring 3 sekunder. Derefter begyndte den dog hurtigt at overophede...
Efter utallige forsøg fandt de hurtigt ud af at passiv køling ikke var nok. eBay kurven blev hurtigt fyldt og inden længe havde de købt et helt vandkølings system. - De skulle dog også have en måde at styre strømmen på. Bo designede kredsløbende, hvorefter Victor kunne designe PCB filerne til fabrikation i Kina. + De skulle dog også have en måde at styre strømmen på. Bo designede kredsløbene, hvorefter Victor kunne designe PCB filerne til fabrikation i Kina.
Dette viste sig at være den rigtige metode. De var nu i stand til at køle længe nok til at fryse vand til is. coolerStatus
- En "færdig" prototype blev færdiggjort og testet dagen før deadline. Sommer fest 2020. - EcCooleren var velbesøgt, et fantastisk samtale emne. Dog fik anlæget en kommentar i sjov "Den er meget fed, men hvornår får den så WiFi?" + En "færdig" prototype blev færdiggjort og testet dagen før deadline. Sommerfest 2020. + EcCooleren var velbesøgt, et fantastisk samtale emne. Dog fik anlægget en kommentar i sjov "Den er meget fed, men hvornår får den så WiFi?" Denne kommentar blev ikke let glemt. Efter sommerfest 2020, hvor omkring 20 liter øl blev drukket, var det tydeligt at den ikke kølede godt nok. Dog var det godt nok til små selskaber. - Bo's fødseldagsfest 2020 beviste dog at dette heller ikke var sandt. Fadølsanlægget var værre end nogensinde. Det var begyndt at falde fra hinanden, grundet varmeændringer.
+ Bo's fødselsdagsfest 2020 beviste dog at dette heller ikke var sandt. Fadølsanlægget var værre end nogensinde. Det var begyndt at falde fra hinanden, grundet varmeændringer.
coolerStatus

@@ -95,17 +102,17 @@

Version 0.5 til 1.5

The big upgrade

- Nogle 3D design senere, havde Bo og Victor endelig den næste idé klar. To vandkølingsystemer der kører i parralel. + Nogle 3D design senere, havde Bo og Victor endelig den næste idé klar. To vandkølingssystemer der kører i parallel. En på hver side af peltier elementerne.
coolerStatus
- Dette fjernede behovet for at lime den kolde side af Peltier elementet fast på metalkarret, hvilket Bo's fødselsdag viste var en dårlig ide. + Dette fjernede behovet for at lime den kolde side af Peltier elementet fast på metal karret, hvilket Bo's fødselsdag viste var en dårlig ide.
Efter nogle vilde gæt og lidt beregninger, estimerede de det nye system til at være mellem 33 og 1000 procent bedre. Efter første test viste det sig at det rigtige tal lå tættest op af 1000%
coolerStatus
- Hele systemet, nu med 25% mindre køle elementer, kunne køle vandkarret ned til 2C på omkring 2,5 timer i modsætning det gamle som skulle tændes dagen før for at komme ned på 4 grader. + Hele systemet, nu med 25% mindre køleelementer, kunne køle vandkarret ned til 2C på omkring 2,5 timer i modsætning det gamle som skulle tændes dagen før for at komme ned på 4 grader.

Efter en brilliant håndtering af pandemien, var Bo og Victor klar til at fejre nytår bare familien og få venner. Mellem Bo's fødselsdag 2020 og Nytår havde de god tid til at lave en masse nyt. Nu havde anlægget WiFi! En komplet webapp kaldet EcDrink var lavet til at styre EcCooler. @@ -120,7 +127,7 @@

The big upgrade

EcDrink 2.0 og EcCooler 2.5

- Mens nytår 2020 var utrolig succefuld begyndte Bo og Victor hurtigt at arbejde på næste version. + Mens nytår 2020 var utrolig succesfuld begyndte Bo og Victor hurtigt at arbejde på næste version. Nu skulle den være mere effektiv og mindre end før. Et nyt design begyndte at tegne sig for dem. De kom sammen på en ny måde at sætte peltier elementerne op på. Tegningerne tydede på en reduktion af areal på over 66%, mens der blev tilføjet 50% køleevne.
Dog skulle en ny webapp laves til dette system, da det der ikke var brug for individuel styring af elementerne længere.