init
This commit is contained in:
128
Time_Lapse_NoConnection.py
Normal file
128
Time_Lapse_NoConnection.py
Normal file
@@ -0,0 +1,128 @@
|
||||
import time
|
||||
from datetime import datetime
|
||||
import picamera2 as pc
|
||||
import smbus2
|
||||
import os
|
||||
import json
|
||||
import shutil
|
||||
import requests
|
||||
|
||||
class TimeLapse:
|
||||
def __init__(self):
|
||||
self.url = "https://timelapse.kerboul.me/api/uploadmeasurement"
|
||||
self.headers = {
|
||||
'accept': 'application/json'
|
||||
}
|
||||
self.data = {
|
||||
"timestamp": "",
|
||||
"temperature": "",
|
||||
'humidity': "",
|
||||
}
|
||||
self.project_path = "//home//timelapse//Documents//Time_Lapse//PROJECT//"
|
||||
|
||||
def create_Folder(self):
|
||||
filename = self.data["timestamp"]
|
||||
os.mkdir(self.project_path + filename)
|
||||
|
||||
def create_Json(self):
|
||||
filename = self.project_path + self.data["timestamp"] + "//" + self.data["timestamp"] + ".json"
|
||||
with open(filename, "w") as file:
|
||||
json.dump(self.get_Alldic(), file)
|
||||
|
||||
def get_Alldic(self):
|
||||
return self.data
|
||||
|
||||
def get_Hygrodata(self):
|
||||
bus = smbus2.SMBus(1)
|
||||
ans = bus.write_byte(0x44, 0xFD)
|
||||
time.sleep(0.1)
|
||||
ans=smbus2.i2c_msg.read(0x44,6)
|
||||
bus.i2c_rdwr(ans)
|
||||
data = list(ans)
|
||||
t_ticks = data[0]*256 + data[1] #Pas de CRC utilisé
|
||||
rh_ticks = data[3]*256 + data[4] #Pas de CRC utilisé
|
||||
self.data["temperature"] = (175*t_ticks)/65535. -45
|
||||
self.data["humidity"] = (125*rh_ticks)/65535. -6
|
||||
return self.data
|
||||
|
||||
def get_humidity(self):
|
||||
return self.data["humidity"]
|
||||
|
||||
def get_temperature(self):
|
||||
return self.data["temperature"]
|
||||
|
||||
def get_TimeStamp(self): #ATTENTION AU NOMMAGE DES FICHIERS !!! PAS DE : ET ESPACES
|
||||
now = datetime.now()
|
||||
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
|
||||
print("date and time =", str(dt_string))
|
||||
self.data["timestamp"]= str(dt_string)
|
||||
return str(dt_string)
|
||||
|
||||
def pick_Picture(self):
|
||||
cam = pc.Picamera2()
|
||||
conf = cam.create_preview_configuration(main={"size":(800, 600)})
|
||||
cam.configure(conf)
|
||||
cam.start_preview(pc.Preview.QTGL)
|
||||
cam.start()
|
||||
time.sleep(0.1)
|
||||
timestamp = self.get_TimeStamp()
|
||||
path = self.project_path + timestamp + "//" + timestamp+".jpg"
|
||||
self.create_Folder()
|
||||
image = cam.capture_file(path)
|
||||
cam.close()
|
||||
|
||||
def del_Folder(self, name):
|
||||
shutil.rmtree(self.project_path + name)
|
||||
|
||||
def Singleroutin(self):
|
||||
TL.get_Hygrodata()
|
||||
TL.pick_Picture()
|
||||
TL.create_Json()
|
||||
timestamp = str(TL.data["timestamp"])
|
||||
path_file = self.project_path +timestamp+ "//" + timestamp + ".jpg"
|
||||
#answer_from_server = TL.upload_measurement( path_file, 1, timestamp, TL.get_temperature(), TL.get_humidity())
|
||||
#print(answer_from_server)
|
||||
#TL.del_Folder("PROJECT//" +timestamp)
|
||||
|
||||
def upload_measurement(self, image_path, project_id, timestamp, temperature, humidity):
|
||||
data = {
|
||||
'projectId': project_id,
|
||||
'timestamp': timestamp,
|
||||
'temperature': temperature,
|
||||
'humidity': humidity
|
||||
}
|
||||
files = {
|
||||
'image': (image_path, open(image_path, 'rb'), 'image/jpeg')
|
||||
}
|
||||
try:
|
||||
response = requests.post(self.url, headers=self.headers, data=data, files=files)
|
||||
response.raise_for_status()
|
||||
response_data = response.json()
|
||||
return response_data
|
||||
except requests.exceptions.HTTPError as http_err:
|
||||
print(f"HTTP error occurred: {http_err}")
|
||||
except Exception as err:
|
||||
print(f"Other error occurred: {err}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("FICHIER TIMELAPSE")
|
||||
TL = TimeLapse()
|
||||
for i in range (0,3):
|
||||
TL.Singleroutin()
|
||||
time.sleep(1)
|
||||
""" FONCTIONNEL
|
||||
TL.get_Hygrodata()
|
||||
TL.pick_Picture()
|
||||
TL.create_Json()
|
||||
"""
|
||||
try:
|
||||
TL.del_Folder("13_03_2025_12_07_56")
|
||||
except:
|
||||
pass
|
||||
|
||||
# print(TL.get_data())
|
||||
# TL.get_Picture()
|
||||
# print("Temperature is : ", TL.get_temperature())
|
||||
# print("Humidity is : ", TL.get_humidity())
|
||||
# datas = TL.get_Alldic()
|
||||
# print(datas)
|
||||
Reference in New Issue
Block a user