From d070254e2a02d1fc7f7aed6bf680a3e735b42e03 Mon Sep 17 00:00:00 2001 From: Adolfo Delorenzo Date: Thu, 11 Jul 2024 14:29:27 -0600 Subject: [PATCH] 2024-07-11 - --- gps2.py | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 gps2.py diff --git a/gps2.py b/gps2.py new file mode 100644 index 0000000..39bd672 --- /dev/null +++ b/gps2.py @@ -0,0 +1,97 @@ +#!/usr/bin/python +# -*- coding:utf-8 -*- +import RPi.GPIO as GPIO +import paho.mqtt.client as mqtt +import serial +import time, os + +# MQTT Broker settings + +mqttBroker ="65.108.199.212" +myhost = os.uname()[1] +client = mqtt.Client(myhost) +client.connect(mqttBroker, 1883) + +ser = serial.Serial('/dev/ttyS0',115200) +ser.flushInput() + + +rec_buff = '' +rec_buff2 = '' +time_count = 0 + +def send_at(command,back,timeout): + rec_buff = '' + ser.write((command+'\r\n').encode()) + time.sleep(timeout) + if ser.inWaiting(): + time.sleep(0.01 ) + rec_buff = ser.read(ser.inWaiting()) + if rec_buff != '': + if back not in rec_buff.decode(): + print(command + ' ERROR') + print(command + ' back:\t' + rec_buff.decode()) + return 0 + else: + print(rec_buff.decode()) + return 1 + else: + print('GPS no está listo') + return 0 + +def get_gps_position(): + rec_null = True + answer = 0 + print('Iniciando GPS') + rec_buff = '' + send_at('AT+CGPS=1,1','OK',1) + time.sleep(2) + while rec_null: + answer = send_at('AT+CGPSINFO','+CGPSINFO: ',1) + if 1 == answer: + answer = 0 + if ',,,,,,' in rec_buff: + print('GPS no está listo') + rec_null = False + time.sleep(1) + else: + print('error %d'%answer) + rec_buff = '' + send_at('AT+CGPS=0','OK',1) + return False + time.sleep(1.5) + + +def power_on(power_key): + print('SIM7600X is starting:') + GPIO.setmode(GPIO.BCM) + GPIO.setwarnings(False) + GPIO.setup(power_key,GPIO.OUT) + time.sleep(0.1) + GPIO.output(power_key,GPIO.HIGH) + time.sleep(2) + GPIO.output(power_key,GPIO.LOW) + time.sleep(20) + ser.flushInput() + print('SIM7600X is ready') + +def power_down(power_key): + print('SIM7600X is loging off:') + GPIO.output(power_key,GPIO.HIGH) + time.sleep(3) + GPIO.output(power_key,GPIO.LOW) + time.sleep(18) + print('Good bye') + +try: + #power_on(power_key) + get_gps_position() + #power_down(power_key) +except: + if ser != None: + ser.close() + #power_down(power_key) + GPIO.cleanup() +if ser != None: + ser.close() + GPIO.cleanup()