2024-07-22 -
This commit is contained in:
parent
51ff47cdee
commit
fddcb5ad31
@ -110,6 +110,7 @@ if not os.path.exists(csv_filename):
|
||||
|
||||
try:
|
||||
get_gps_position()
|
||||
time.sleep(10)
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
finally:
|
||||
|
1
gps_data.csv
Normal file
1
gps_data.csv
Normal file
@ -0,0 +1 @@
|
||||
Timestamp,Latitude,Longitude
|
|
File diff suppressed because it is too large
Load Diff
52
gps_new.py
Normal file
52
gps_new.py
Normal file
@ -0,0 +1,52 @@
|
||||
import serial
|
||||
import csv
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
# Configure the serial port
|
||||
ser = serial.Serial('/dev/ttyS0', baudrate=9600, timeout=1)
|
||||
|
||||
# Open the CSV file for writing
|
||||
csv_filename = 'gps_data.csv'
|
||||
csv_file = open(csv_filename, 'w', newline='')
|
||||
csv_writer = csv.writer(csv_file)
|
||||
|
||||
# Write the header row
|
||||
csv_writer.writerow(['Timestamp', 'Latitude', 'Longitude'])
|
||||
|
||||
try:
|
||||
while True:
|
||||
# Read a line from the GPS device
|
||||
line = ser.readline().decode('ascii', errors='replace').strip()
|
||||
|
||||
# Check if it's a GPRMC sentence (which contains coordinate data)
|
||||
if line.startswith('$GPRMC'):
|
||||
parts = line.split(',')
|
||||
if len(parts) >= 7 and parts[2] == 'A': # 'A' means data is valid
|
||||
# Extract latitude and longitude
|
||||
lat = float(parts[3][:2]) + float(parts[3][2:]) / 60
|
||||
if parts[4] == 'S':
|
||||
lat = -lat
|
||||
lon = float(parts[5][:3]) + float(parts[5][3:]) / 60
|
||||
if parts[6] == 'W':
|
||||
lon = -lon
|
||||
|
||||
# Get current timestamp
|
||||
timestamp = datetime.now().isoformat()
|
||||
|
||||
# Write to CSV
|
||||
csv_writer.writerow([timestamp, lat, lon])
|
||||
csv_file.flush() # Ensure data is written to file
|
||||
|
||||
print(f"Recorded: {timestamp}, Lat: {lat}, Lon: {lon}")
|
||||
|
||||
time.sleep(1) # Wait for 1 second before reading next line
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("Script terminated by user")
|
||||
|
||||
finally:
|
||||
# Close the serial port and CSV file
|
||||
ser.close()
|
||||
csv_file.close()
|
||||
print(f"Data saved to {csv_filename}")
|
@ -12,9 +12,15 @@ myhost = os.uname()[1]
|
||||
client = mqtt.Client(myhost)
|
||||
client.connect(mqttBroker, 1883)
|
||||
|
||||
preferred_device = '/dev/ttyUSB5'
|
||||
fallback_device = '/dev/ttyUSB0'
|
||||
|
||||
device_path = preferred_device if os.path.exists(preferred_device) else fallback_device
|
||||
|
||||
|
||||
# Modbus configuration
|
||||
mb_address = 1 # Modbus address
|
||||
sensy_boi = minimalmodbus.Instrument('/dev/ttyUSB0', mb_address)
|
||||
sensy_boi = minimalmodbus.Instrument(device_path, mb_address)
|
||||
sensy_boi.serial.baudrate = 9600
|
||||
sensy_boi.serial.bytesize = 8
|
||||
sensy_boi.serial.parity = minimalmodbus.serial.PARITY_NONE
|
||||
@ -78,7 +84,7 @@ try:
|
||||
GPIO.output(LuzPuerta, GPIO.LOW)
|
||||
GPIO.output(LuzEncendido, GPIO.HIGH)
|
||||
|
||||
time.sleep(5)
|
||||
time.sleep(15)
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error: {str(e)}")
|
||||
|
Loading…
Reference in New Issue
Block a user