#!/usr/bin/python3 # Take a picture with the Pi Camera module and publish the path # and name of the file on a MQTT broker import picamera import paho.mqtt.publish as mqtt from time import sleep import datetime # Camera settings camera_resolution=(2592, 1944) camera_warmup_time=2 #in seconds #camera_iso=800 # MQTT settings mqtt_server = 'localhost' mqtt_port= 1883 mqtt_auth= {'username':'cameteo', 'password':'CaMeteo'} mqtt_client_id= 'picamera2mqtt' mqtt_qos=2 # Photo parameters photo_path = '/home/pi/photos/' photo_format = 'jpg' photo_mqtt_topic = 'pi/picamera/' ######## # Main # ######## file_date = datetime.datetime.now().replace(microsecond=0).isoformat() file_name = file_date + "." + photo_format # Taking a photo ################# cam = picamera.PiCamera(resolution = camera_resolution) # Warm-up cam.start_preview() sleep(camera_warmup_time) print(photo_path+file_name) cam.capture(photo_path+file_name) # MQTT publication ################### mqtt_data = [{'topic':photo_mqtt_topic+"path", 'payload':photo_path, 'qos':mqtt_qos, 'retain':False}, {'topic':photo_mqtt_topic+"last_photo_name", 'payload':file_name, 'qos':mqtt_qos, 'retain':False}, {'topic':photo_mqtt_topic+"last_photo_date", 'payload':file_date, 'qos':mqtt_qos, 'retain':False}] mqtt.multiple(mqtt_data, hostname= mqtt_server , port= mqtt_port , client_id= mqtt_client_id , auth= mqtt_auth )