• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
componente h 4g hat problema quot crontab tra sim7600g e

Problema tra crontab e componente "SIM7600G-H 4G HAT"
#1
Buongiorno a tutti,

sono alle prese con un problema che sta bloccando un intero progetto, ho fatto molti test ma non riesco a trovare una soluzione Undecided .

Si tratta di un comando che se avviato “a mano” in una shell di linux funziona correttamente, mentre non funziona con crontab. Questo script consente di effettuare una chiamata telefonica utilizzando un componente hardware chiamato “Hat SIM7600G-H” attaccato al mio Raspberry Pi Zero.

Il componente in questione è un modulo che si collega al Raspberry tramite USB, questo modulo contiene una sim e consente di collegarsi a internet (dalla sim), mandare SMS o fare telefonate (nel mio caso deve “fare uno squillo”). Questi sono due link sul sito di acquisto e un tutorial di youtube.

https://www.melopero.com/shop/raspberry-...obal-band/

https://www.youtube.com/watch?v=ABnwz-IYzqA (il modello è leggermente diverso)

Il file di crontab contiene un solo comando che serve a lanciare lo script di funzionamento:
* * * * * minicom -D /dev/ttyUSB2 -S /home/pizero/esempio/call.txt

Il comando minicom, se lanciato senza crontab, apre una shell in cui inserire i comandi AT (comandi testuali per indicare le operazioni che deve svolgere questo componente). Il file call.txt contiene queste quattro righe
AT+CPIN=1234
AT+CSCS=”GSM”
AT+CMGF=1
ATD+39123456789;

Praticamente il file contiene i comandi che potrei inserire io a mano nella shell di minicom ma che in questo caso vengono presi dal file call.txt . Si tratta di comandi per inserire il pin della sim e effettuare una chiamata al numero dell’ultima riga che è il destinatario (ho coperto pin e telefono Wink ).

Veniamo al dunque: crontab dovrebbe fare ogni minuto uno squillo al numero indicato (cosa che non succede), mentre se eseguo lo stesso comando (uguale senza asterischi) dalla shell linux parte istantaneamente una telefonata (quindi il componente funziona).

Sono certo che non è un problema di crontab: per altri comandi funziona correttamente e anche dai log di sistema vedo che viene eseguito. Mentre inserendo il comando minicom in crontab non succede assolutamente nulla.

Ho provato anche a inserire il comando minicom in un file .sh e da crontab richiamare quel file, senza nessun miglioramento.

Qualcuno potrebbe aiutarmi
Molte grazie Heart
Risposta
#2
Premetto che non ho l'hardware, ma qualcosa di molto simile l'ho realizzato qualche anno fa.
Quando utilizzi minicom avendolo configurato per comunicare con il modem, dopo il comando "AT....." premi sulla tastiera il return (o altro) che invierà il comando digitato. In risposta, potresti avere una risposta del tipo "OK ....." o anche no se trattasi di configurare il modem (?). Cosa, comunque, risponde il modem all'invio dei comandi " AT....." da minicom?
In un file questa simulazione del "return" non è praticabile, il che comporta che i caratteri del file di testo vengano interpretati semplicemente come caratteri, uno dopo l'altro. Il modem non riceve/interpreta i comandi.
La soluzione, a mio avviso, è di realizzare un programmino in phiton che risolve il problema configurando correttamente la velocità, i bit di start e stop, ecc. per la comunicazione tra Pi e modem. Questo potrà essere richiamato da crontab e/o girare in background
Risposta
#3
(02/11/2022, 21:40)ippogrifo Ha scritto: Premetto che non ho l'hardware, ma qualcosa di molto simile l'ho realizzato qualche anno fa.
Quando utilizzi minicom avendolo configurato per comunicare con il modem, dopo il comando "AT....." premi sulla tastiera il return (o altro) che invierà il comando digitato. In risposta, potresti avere una risposta del tipo "OK ....." o anche no se trattasi di configurare il modem (?). Cosa, comunque, risponde il modem all'invio dei comandi " AT....." da minicom?
In un file questa simulazione del "return" non è praticabile, il che comporta che i caratteri del file di testo vengano interpretati semplicemente come caratteri, uno dopo l'altro. Il modem non riceve/interpreta i comandi.
La soluzione, a mio avviso, è di realizzare un programmino in phiton che risolve il problema configurando correttamente la velocità, i bit di start e stop, ecc. per la comunicazione tra Pi e modem. Questo potrà essere richiamato da crontab e/o girare in background

oppure più banalmente potrebbe editare il file "call.txt" con notepad++ e convertire il carattere di fine riga in CR (carriage return)
Smile
Risposta
#4
Che in esadecimale, codice ASCII, è 0X0D. Il tutto rimane un semplice file di testo che crontab non sa come gestire mancando i comandi idonei (che manderebbe in esecuzione al momento stabilito). Ma affinchè il file fosse trasferito sequenzialmente ed interpretato correttamente dal modem, il canale seriale del Pi dovrà essere stato preventivamente configurato.
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect