Files
picapikap/PicaPiKAP.py
2022-08-24 20:15:39 +00:00

50 lines
2.2 KiB
Python

import csv
import time
import gpsd
import board
import digitalio
from time import sleep
from picamera import PiCamera
from datetime import datetime, timedelta
from adafruit_bme280 import basic as adafruit_bme280
spi = board.SPI()
bme_cs = digitalio.DigitalInOut(board.D5)
bme280 = adafruit_bme280.Adafruit_BME280_SPI(spi, bme_cs)
bme280.sea_level_pressure = 1013.25
gpsd.connect()
camera = PiCamera()
camera.resolution = (3280, 2464)
#camera.led = False
with open("/home/pi/PicaPiKAP/datalog.csv", "a") as log:
while True:
tiempo = (time.strftime("%y%b%d_%H:%M:%S_"))
packet = gpsd.get_current()
tiempogps = str(packet.time)
longitud = str("%0.5f_" % packet.lon)
latitud = str("%0.5f_" % packet.lat)
altitudgps = str("%0.1fm_" % packet.alt)
temperatura = str("%0.1fC_" % bme280.temperature)
humedad = str("%0.1f%%_" % bme280.relative_humidity)
presion = str("%0.1fhPa" % bme280.pressure)
altitud = str("%0.1fm_" % bme280.altitude)
log.write("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}\n".format(time.strftime("%y%b%d_%H:%M:%S"),str(packet.time),str(packet.sats),str("%0.5f" % packet.lon),str("%0.5f" % packet.lat),str("%0.1f_" % packet.alt),str("%0.1f" % bme280.altitude),str("%0.1f" % packet.climb),str("%0.1f" % bme280.temperature),str("%0.1f" % bme280.relative_humidity),str("%0.1f" % bme280.pressure)))
camera.capture("/home/pi/PicaPiKAP/media/" + tiempogps + latitud + longitud + altitudgps + temperatura + humedad + presion + ".jpg")
print("Datos del GPS")
print("Satelites: " + str(packet.sats))
print("Latitud:" + str("%0.5f" % packet.lat))
print("Longitud:" + str("%0.5f" % packet.lon))
print("Altitud GPS:" + str("%0.1f" % packet.alt))
print("\nDatos del BME280")
print("Temperatura: %0.1f C" % bme280.temperature)
print("Humedad relativa: %0.1f %%" % bme280.relative_humidity)
print("Presion: %0.1f hPa" % bme280.pressure)
print("Altitud = %0.1f metros" % bme280.altitude)
print("-----")
time.sleep(5)