commit
6a6df5cb89
@ -0,0 +1,14 @@
|
||||
[[source]]
|
||||
name = "pypi"
|
||||
url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
|
||||
[dev-packages]
|
||||
|
||||
[packages]
|
||||
requests = "*"
|
||||
picamera = "*"
|
||||
gpiozero = "*"
|
||||
|
||||
[requires]
|
||||
python_version = "3.8"
|
@ -0,0 +1,79 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "f3d3cd97be07a1db357fe38ddf60c7adb2bed644eb15c1fc939a776ffd97cf11"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
"python_version": "3.8"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
"sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3",
|
||||
"sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f"
|
||||
],
|
||||
"version": "==2019.11.28"
|
||||
},
|
||||
"chardet": {
|
||||
"hashes": [
|
||||
"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
|
||||
"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
|
||||
],
|
||||
"version": "==3.0.4"
|
||||
},
|
||||
"colorzero": {
|
||||
"hashes": [
|
||||
"sha256:acba47119b5d8555680d3cda9afe6ccc5481385ccc3c00084dd973f7aa184599",
|
||||
"sha256:e3c36d15b293de2b2f77ff54a5bd243fffac941ed0a5332d0697a6612a26a0a3"
|
||||
],
|
||||
"version": "==1.1"
|
||||
},
|
||||
"gpiozero": {
|
||||
"hashes": [
|
||||
"sha256:101044038e71cec8be2fa841d4cea9e50e7962e9fb0287f465298b59e3f06594",
|
||||
"sha256:ae1a8dc4e6e793ffd8f900968f3290d218052c46347fa0c0503c65fabe422e4d"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.5.1"
|
||||
},
|
||||
"idna": {
|
||||
"hashes": [
|
||||
"sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb",
|
||||
"sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"
|
||||
],
|
||||
"version": "==2.9"
|
||||
},
|
||||
"picamera": {
|
||||
"hashes": [
|
||||
"sha256:890815aa01e4d855a6a95dd3ad0953b872a6b954982106407df0c5a31a163e50"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.13"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
"sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee",
|
||||
"sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.23.0"
|
||||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc",
|
||||
"sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc"
|
||||
],
|
||||
"version": "==1.25.8"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
import requests
|
||||
from gpiozero import Button, LED
|
||||
from picamera import PiCamera
|
||||
from time import sleep, strftime
|
||||
|
||||
url = 'http://192.168.1.108:3000/upload-photo'
|
||||
|
||||
camera = PiCamera()
|
||||
camera.resolution = (2560, 1920)
|
||||
|
||||
greenLed = LED(16)
|
||||
greenLed.on()
|
||||
redLed = LED(20)
|
||||
redLed.off()
|
||||
|
||||
button = Button(21)
|
||||
buttonLastState = False
|
||||
|
||||
def errorBlink():
|
||||
greenLed.off()
|
||||
redLed.on()
|
||||
sleep(1)
|
||||
redLed.off()
|
||||
sleep(1)
|
||||
redLed.on()
|
||||
sleep(1)
|
||||
redLed.off()
|
||||
sleep(1)
|
||||
greenLed.on()
|
||||
|
||||
def successBlink():
|
||||
greenLed.on()
|
||||
redLed.off()
|
||||
sleep(1)
|
||||
greenLed.off()
|
||||
sleep(1)
|
||||
greenLed.on()
|
||||
sleep(1)
|
||||
greenLed.off()
|
||||
sleep(1)
|
||||
greenLed.on()
|
||||
|
||||
def takePhotoAndUpload():
|
||||
time = strftime("%H-%M-%S")
|
||||
filename = f"{time}.jpg"
|
||||
|
||||
camera.capture(filename)
|
||||
|
||||
files = {'photo': open(filename, 'rb')}
|
||||
|
||||
try :
|
||||
r = requests.post(url, files=files, timeout=30)
|
||||
|
||||
print(r.status_code)
|
||||
|
||||
if (r.status_code == 200):
|
||||
errorSuccess()
|
||||
else:
|
||||
errorBlink()
|
||||
except:
|
||||
errorBlink()
|
||||
|
||||
while True:
|
||||
if(buttonLastState != button.is_pressed):
|
||||
if button.is_pressed:
|
||||
buttonLastState = True
|
||||
takePhotoAndUpload()
|
||||
else:
|
||||
buttonLastState = False
|
Loading…
Reference in new issue