Moin moin zusammen!
Ich habe einen "Raspberry Pi Zero W Rev 1.1". Diesen möchte ich gerne zusammen mit dem "Waveshare SIM7000E NB-IoT HAT" und einem 12V->5V3A Auto-Adapter in einen in's Auto eingebauten GPS Tracker verwandeln. Der Code dazu ist kein großes Problem - ich habe bereits damit begonnen diesen selbst zu schreiben und kann per USB-Schnittstelle des Modules problemlos darauf zugreifen.
Nun möchte ich aber gerne die GPIO-Leiste hierfür nutzen - und hierbei habe ich Probleme, bzw. weiß nicht, wie ich dieses konfigurieren muss. Gerade beim Zero W gibt es da wohl einige Abhängigkeiten mit dem BlueTooth Modul und je nach Konfig ist es mal /dev/ttyS0, mal /dev/ttyAMA0, ... dann darf irgendwie diese UART-Konsole nicht aktiviert sein, ... ich blicke da ehrlich gesagt nicht ganz durch, in welcher Kombination ich da Konfigurationen am Pi vornehmen muss, damit das klappt. Oder: Ob man da erstmal irgendetwas initalisieren muss, oder mit welcher baud-rate die Schnittstelle läuft, oder, oder, oder.
Könnte mir hier bitte jemand eine Starthilfe geben?
In meiner Vorstellung müsste der folgende Python-Code "SUCCESS" ausgeben:
import serial
from serial import SerialBase
import time
DEVICE='/dev/ttyUSB3'
def send_at(
command: str,
serial_dev: SerialBase,
exp_return: (str, None) = None,
timeout: float = 0.3,
no_newline: bool = False,
) -> (str, ValueError, RuntimeError):
rec_buff = ""
# Expect non-chained, extended syntax
if not command.startswith("AT+"):
command = f"AT+{command}"
if not command.endswith("\r"):
command = f"{command}\r"
if not command.endswith("\r") and not no_newline:
command = f"{command}\n"
serial_dev.write(command.encode())
time.sleep(timeout)
if serial_dev.inWaiting():
time.sleep(0.01)
rec_buff = serial_dev.read(serial_dev.inWaiting())
if rec_buff != "":
if exp_return is not None:
if exp_return not in rec_buff.decode():
return ValueError(
f"Expected return '{exp_return}' not received from device: {rec_buff}"
)
else:
return 'OK'
# Success
else:
return rec_buff
else:
return RuntimeError("No response received from device.")
ser_dev = serial.Serial(port=DEVICE, baudrate=115200)
ser_dev.flushInput()
if 'OK' in send_at('CGMI', ser_dev, 'SIMCOM_Ltd'):
print("Success")
else:
print("Fail")
Display More
Verbinde ich das HAT mit dem Pi Zero W per USB Kabel, klappt das auch!
Verbinde ich das HAT jedoch per GPIO-Leiste und setze "DEVICE" auf entweder "/dev/ttyS0" oder "/dev/ttyAMA0", kann das Gerät nicht angesprochen werden.
Was muss ich also machen, damit diese Kommunikation klappt?
Sollte nicht weiter wichtig sein, daher nur am Rande erwähnt: Ich nutze DietPi auf dem System.
Vielen Dank schonmal für's lesen