2024-07-24 -
This commit is contained in:
parent
fddcb5ad31
commit
483bd83feb
BIN
.modbus_door.py.swp
Normal file
BIN
.modbus_door.py.swp
Normal file
Binary file not shown.
@ -53,7 +53,7 @@ def write_to_csv(lat, lon):
|
|||||||
with open(csv_filename, mode='a', newline='') as file:
|
with open(csv_filename, mode='a', newline='') as file:
|
||||||
writer = csv.writer(file)
|
writer = csv.writer(file)
|
||||||
writer.writerow([timestamp, lat, lon])
|
writer.writerow([timestamp, lat, lon])
|
||||||
|
time.sleep(12)
|
||||||
|
|
||||||
def send_at(command, back, timeout):
|
def send_at(command, back, timeout):
|
||||||
rec_buff = ''
|
rec_buff = ''
|
||||||
@ -100,7 +100,7 @@ def get_gps_position():
|
|||||||
rec_buff = ''
|
rec_buff = ''
|
||||||
send_at('AT+CGPS=0', 'OK', 1)
|
send_at('AT+CGPS=0', 'OK', 1)
|
||||||
return False
|
return False
|
||||||
time.sleep(1.5)
|
time.sleep(2)
|
||||||
|
|
||||||
# Create CSV file with headers if it doesn't exist
|
# Create CSV file with headers if it doesn't exist
|
||||||
if not os.path.exists(csv_filename):
|
if not os.path.exists(csv_filename):
|
||||||
@ -110,7 +110,6 @@ if not os.path.exists(csv_filename):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
get_gps_position()
|
get_gps_position()
|
||||||
time.sleep(10)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error: {e}")
|
print(f"Error: {e}")
|
||||||
finally:
|
finally:
|
||||||
|
File diff suppressed because it is too large
Load Diff
49
gps_nx.py
Normal file
49
gps_nx.py
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import serial
|
||||||
|
import pynmea2
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
GPS_PORT = '/dev/ttyS0' # change this if your GPS device is on a different port
|
||||||
|
MQTT_BROKER = '65.108.199.212'
|
||||||
|
MQTT_PORT = 1883
|
||||||
|
TOPIC = 'iiot/coordinates'
|
||||||
|
|
||||||
|
def on_connect(client, userdata, flags, rc):
|
||||||
|
"""Callback for when the client connects to the broker."""
|
||||||
|
print(f"Connected with result code {rc}")
|
||||||
|
client.subscribe(TOPIC)
|
||||||
|
|
||||||
|
def on_message(client, userdata, msg):
|
||||||
|
"""Callback for when a message is received from the broker."""
|
||||||
|
print(f"Received message: {msg.payload.decode('utf-8')}")
|
||||||
|
|
||||||
|
# Create MQTT client
|
||||||
|
client = mqtt.Client()
|
||||||
|
|
||||||
|
# Connect to MQTT broker
|
||||||
|
client.on_connect = on_connect
|
||||||
|
client.on_message = on_message
|
||||||
|
try:
|
||||||
|
client.connect(MQTT_BROKER, MQTT_PORT)
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error connecting to MQTT broker: {e}")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
# Open GPS device serial port
|
||||||
|
try:
|
||||||
|
gps_dev = serial.Serial(GPS_PORT, 9600, timeout=1) # change baudrate and timeout if needed
|
||||||
|
except serial.SerialException as e:
|
||||||
|
print(f"Error opening GPS device serial port: {e}")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
line = gps_dev.readline().decode('utf-8')
|
||||||
|
if line.startswith('$GPGGA'):
|
||||||
|
msg = pynmea2.parse(line)
|
||||||
|
latitude = msg.latitude
|
||||||
|
longitude = msg.longitude
|
||||||
|
print(f"Latitude: {latitude}, Longitude: {longitude}")
|
||||||
|
client.publish(TOPIC, f"{latitude},{longitude}")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error parsing GPS data or publishing to MQTT broker: {e}")
|
@ -12,8 +12,8 @@ myhost = os.uname()[1]
|
|||||||
client = mqtt.Client(myhost)
|
client = mqtt.Client(myhost)
|
||||||
client.connect(mqttBroker, 1883)
|
client.connect(mqttBroker, 1883)
|
||||||
|
|
||||||
preferred_device = '/dev/ttyUSB5'
|
preferred_device = '/dev/ttyUSB0'
|
||||||
fallback_device = '/dev/ttyUSB0'
|
fallback_device = '/dev/ttyUSB5'
|
||||||
|
|
||||||
device_path = preferred_device if os.path.exists(preferred_device) else fallback_device
|
device_path = preferred_device if os.path.exists(preferred_device) else fallback_device
|
||||||
|
|
||||||
@ -54,7 +54,6 @@ try:
|
|||||||
status_17 = GPIO.input(PIN_17)
|
status_17 = GPIO.input(PIN_17)
|
||||||
if GPIO.input(23) == GPIO.HIGH:
|
if GPIO.input(23) == GPIO.HIGH:
|
||||||
print("Adquiriendo datos...")
|
print("Adquiriendo datos...")
|
||||||
# subprocess.run(['python3', '/home/pi/jdz/gps001.py'])
|
|
||||||
# Read data from multiple registers
|
# Read data from multiple registers
|
||||||
data = sensy_boi.read_registers(0, 2, 3)
|
data = sensy_boi.read_registers(0, 2, 3)
|
||||||
|
|
||||||
@ -76,15 +75,15 @@ try:
|
|||||||
print("-------------------------------------")
|
print("-------------------------------------")
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
#time.sleep(5)
|
time.sleep(15)
|
||||||
|
|
||||||
if GPIO.input(PIN_17) == GPIO.LOW:
|
if GPIO.input(PIN_17) == GPIO.LOW:
|
||||||
GPIO.output(LuzPuerta, GPIO.HIGH) # Luz Roja encendida
|
GPIO.output(LuzPuerta, GPIO.HIGH) # Luz Roja encendida
|
||||||
else:
|
else:
|
||||||
GPIO.output(LuzPuerta, GPIO.LOW)
|
GPIO.output(LuzPuerta, GPIO.LOW)
|
||||||
GPIO.output(LuzEncendido, GPIO.HIGH)
|
GPIO.output(LuzEncendido, GPIO.HIGH)
|
||||||
|
|
||||||
time.sleep(15)
|
#time.sleep(1)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error: {str(e)}")
|
print(f"Error: {str(e)}")
|
||||||
|
Loading…
Reference in New Issue
Block a user