Lib & firmware update + cleaner directories structure
This commit is contained in:
parent
7953969dff
commit
bb2a2f2665
BIN
circuitpython/code/lib/adafruit_bme280.mpy
Normal file
BIN
circuitpython/code/lib/adafruit_bme280.mpy
Normal file
Binary file not shown.
BIN
circuitpython/code/lib/adafruit_bus_device/i2c_device.mpy
Normal file
BIN
circuitpython/code/lib/adafruit_bus_device/i2c_device.mpy
Normal file
Binary file not shown.
BIN
circuitpython/code/lib/adafruit_bus_device/spi_device.mpy
Normal file
BIN
circuitpython/code/lib/adafruit_bus_device/spi_device.mpy
Normal file
Binary file not shown.
BIN
circuitpython/code/lib/adafruit_gps.mpy
Normal file
BIN
circuitpython/code/lib/adafruit_gps.mpy
Normal file
Binary file not shown.
BIN
circuitpython/code/lib/neopixel.mpy
Normal file
BIN
circuitpython/code/lib/neopixel.mpy
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
circuitpython/tools/mpy-cross
Executable file
BIN
circuitpython/tools/mpy-cross
Executable file
Binary file not shown.
103
raspberry/python/picam_mqtt.py
Normal file
103
raspberry/python/picam_mqtt.py
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
# -*- coding: UTF8 -*-
|
||||||
|
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
"""
|
||||||
|
Take a picture with the Pi Camera module and publish the path
|
||||||
|
and name of the file on a MQTT broker
|
||||||
|
|
||||||
|
@author: arofarn
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
from time import sleep
|
||||||
|
from datetime import datetime
|
||||||
|
import picamera
|
||||||
|
import paho.mqtt.publish as mqtt
|
||||||
|
from cameteo_conf import CONFIG_MQTT, CONFIG_PI_CAMERA, PICTURES_EXTENSIONS
|
||||||
|
|
||||||
|
MQTT_CLIENT_ID = "picamera"
|
||||||
|
NOW = datetime.utcNOW()
|
||||||
|
|
||||||
|
########
|
||||||
|
# Main #
|
||||||
|
########
|
||||||
|
|
||||||
|
if not os.path.exists(CONFIG_PI_CAMERA['PICT_DIR']):
|
||||||
|
print("Create photos directory : " + CONFIG_PI_CAMERA['PICT_DIR'])
|
||||||
|
os.mkdir(CONFIG_PI_CAMERA['PICT_DIR'])
|
||||||
|
|
||||||
|
FILE_NAME = os.path.extsep.join((datetime.strftime(NOW, CONFIG_PI_CAMERA['PICT_NAME']),
|
||||||
|
PICTURES_EXTENSIONS[CONFIG_PI_CAMERA['PICT_FORMAT']]))
|
||||||
|
FILE_PATH = os.path.join(CONFIG_PI_CAMERA['PICT_DIR'], FILE_NAME)
|
||||||
|
|
||||||
|
print("Shooting " + FILE_PATH)
|
||||||
|
|
||||||
|
# Taking a photo
|
||||||
|
#################
|
||||||
|
|
||||||
|
# Tell the MQTT that we start shooting
|
||||||
|
mqtt.single(CONFIG_PI_CAMERA['MQTT_TOPIC'] + "/shooting",
|
||||||
|
payload=1,
|
||||||
|
qos=1,
|
||||||
|
retain=True,
|
||||||
|
hostname=CONFIG_MQTT['HOST'],
|
||||||
|
port=CONFIG_MQTT['PORT'],
|
||||||
|
client_id=MQTT_CLIENT_ID,
|
||||||
|
auth=CONFIG_MQTT['AUTH'])
|
||||||
|
|
||||||
|
# Camera settings
|
||||||
|
cam = picamera.PiCamera(resolution=CONFIG_PI_CAMERA['RESOLUTION'])
|
||||||
|
cam.iso = CONFIG_PI_CAMERA['ISO']
|
||||||
|
cam.awb_mode = CONFIG_PI_CAMERA['AWB']
|
||||||
|
cam.rotation = CONFIG_PI_CAMERA['ROTATION']
|
||||||
|
cam.contrast = CONFIG_PI_CAMERA['CONSTRAST']
|
||||||
|
cam.exposure_mode = CONFIG_PI_CAMERA['EXPO_MODE']
|
||||||
|
cam.image_effect = 'none'
|
||||||
|
|
||||||
|
#Add some EXIF tags
|
||||||
|
cam.exif_tags['EXIF.UserComment'] = 'Cameteo !'
|
||||||
|
|
||||||
|
# Warm-up
|
||||||
|
cam.start_preview()
|
||||||
|
sleep(CONFIG_PI_CAMERA['WARMUP_TIME'])
|
||||||
|
|
||||||
|
cam.capture(FILE_PATH, format=CONFIG_PI_CAMERA['PICT_FORMAT'],
|
||||||
|
quality=95, thumbnail=None)
|
||||||
|
|
||||||
|
cam.close()
|
||||||
|
|
||||||
|
# MQTT publication
|
||||||
|
###################
|
||||||
|
|
||||||
|
MQTT_DATA = [{'topic': CONFIG_PI_CAMERA['MQTT_TOPIC'] + "/shooting",
|
||||||
|
'payload': 0,
|
||||||
|
'qos': 2,
|
||||||
|
'retain': True},
|
||||||
|
{'topic': CONFIG_PI_CAMERA['MQTT_TOPIC'] + "/photos_path",
|
||||||
|
'payload': CONFIG_PI_CAMERA['PICT_DIR'],
|
||||||
|
'qos': 2,
|
||||||
|
'retain': True},
|
||||||
|
{'topic': CONFIG_PI_CAMERA['MQTT_TOPIC'] + "/last_photo",
|
||||||
|
'payload': CONFIG_PI_CAMERA['PICT_NAME'],
|
||||||
|
'qos': 2,
|
||||||
|
'retain': True},
|
||||||
|
]
|
||||||
|
|
||||||
|
mqtt.multiple(MQTT_DATA,
|
||||||
|
hostname=CONFIG_MQTT['HOST'],
|
||||||
|
port=CONFIG_MQTT['PORT'],
|
||||||
|
client_id=MQTT_CLIENT_ID,
|
||||||
|
auth=CONFIG_MQTT['AUTH'])
|
Loading…
Reference in New Issue
Block a user