Benutzer-Werkzeuge

Webseiten-Werkzeuge


playground:picam:schaltesendefoto
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# sendet ein Bild an den Server per URL http://blmgeotest.synology.me/uploads/picam.php'
# erstellt am 08.04.2022 geändert 25.06.2022
# von Stefan +4915170379199
# sudo crontab -e # in console Zeiten der Ausführung festlegen
# 0,5,10,15,20,25,30,35,40,45,50,55 * * * * python /home/pi/schalte_sendeFoto.py
import socket
host_name ="noName"
host_ip   ="noIP"
try:
    host_name=socket.gethostname()
    host_ip  =socket.gethostbyname(host_name)
    print("RaspbeeryPi-name:",host_name,host_ip)
except:
    print("RaspberryPI Name und IP konnte nicht ermittelt werden.")
 
import sys
from PIL import Image
import picamera
from time import sleep
import requests
 
import time
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
pins = {
    6 : {'name' : 'GPIO  6', 'state' : 1},
    5 : {'name' : 'GPIO  5', 'state' : 1},
   13 : {'name' : 'GPIO 13', 'state' : 1},
   12 : {'name' : 'GPIO 12', 'state' : 1}
   }
# Set each pin as an output and make it low:
for pin in pins:
   GPIO.setup(pin, GPIO.OUT)
   GPIO.output(pin, 1)
 
# Voreinstellungen Bildgroesse:
WIDTH=320
HEIGHT=240
# Kamera initialisieren:
camera = picamera.PiCamera()
camera.resolution = (WIDTH,HEIGHT)
# Dateiname fuer Bild:
localpicname = 'BildPiCam.jpg'
# 2 Sek. Pause, damit Kamera alles einstellen kann:
sleep (2)
 
GPIO.output(6, GPIO.LOW)
time.sleep(3)
GPIO.output(6, GPIO.HIGH)
time.sleep(3)
GPIO.output(5, GPIO.LOW)
 
# Ein Bild aufnehmen:
camera.capture(localpicname)
camera.close()
 
GPIO.output(5, GPIO.HIGH)
try:
  bild = Image.open(localpicname)
# neuesbild = bild.rotate(90)
  bild.save(localpicname)
except IOError:
  print ("Fehler: kann %s nicht bearbeiten." % dateiname)
 
 
GPIO.output(12, GPIO.LOW)
 
# Ein Bild auf den Webspace hochladen:
# Webservice Aufruf URL festlegen:
url = 'http://blmgeotest.synology.me/uploads/picam.php'
files = {'file': open(localpicname, 'rb')}
GPIO.output(13, GPIO.LOW)
 
kopf  = {'Content-type': 'multipart/form-data'}
daten = {'name': host_name, 'ip': host_ip}
 
#r = requests.post(url, files=files)-
r = requests.post(url, files=files,data=daten) #, headers=kopf)
# Zur Kontrolle Rueckgabe ausgeben
 
# Set each pin low:
for pin in pins:
   GPIO.output(pin, 1)
print(r)
print(r.text)
/volume1/web/dokuwiki/data/pages/playground/picam/schaltesendefoto.txt · Zuletzt geändert: 2022/06/25 01:00 (Externe Bearbeitung)