CENTRODIGRAVITA.it
Con Raspberry-Pi pilotare le stampe su Nicelabel Automation
Il software Nicelabel Automation opportunamente configurato permette di mandare in stampa un'etichetta semplicemente con una richiesta HTTP, TCP-IP o con il deploy di un file.
Questo è il pannello del software Nicelabel in attesa di richieste per la stampa:
La modalità più semplice per richiedere la stampa utilizzando un Raspberry è quella di effettuare una richiesta Http a seguito di un cambio di stato di un PIN o più semplicemente aprendo una pagina web o ancora con un Click su un pulsante della pagina WEB.
Analizziamo la possibilità di invio di una richiesta Http JSON dove la struttura della richiesta deve seguire questo tracciato:
{
"LABEL":{
"HEADER":{
"PRINTER_NAME": "SATO CL4NX Plus 203dpi",
"QUANTITY": "1"
},
"DATA":{
"SUPPLIER_CODE": "123456",
"DOCNO": "123456",
"DOCVERSIONNO": 5,
"DATESTAMP": "20231020",
"PREFIX": "ABC",
"SUFFIX": "123",
"USER": "User1"
}}}
Questo è un possibile tracciato che viene accettato in ingresso dal software ed è personalizzabile quando si crea il Trigger con Nicelabel Automation.
Innanzitutto dobbiamo avere a disposizione un Raspberry funzionante con installato il sistema operativo linux Raspberry-Pi.
INSTALLAZIONE E PREPARAZIONE Raspberry con S.O. Raspberry-Pi
Dall'acquisto del Raspberry al suo utilizzo i passaggi necessari da eseguire sono i seguenti:
- Utilizzare un pc per installare il sistema operativo di base (https://www.raspberrypi.com/software/) sulla Micro SD che andrà inserita nel Raspberry. Si può utilizzare il software Win32DiskImager (https://raspberry-projects.com/pi/pi-operating-systems/win32diskimager)
- Inserire la memoria nel Raspberry, collegarlo e avviarlo seguendo le istruzioni a schermo per l'avvio.
- Attivare l'accesso SSH o VNC se usati (da interfaccia grafica o da console)
- Fissare l'indirizzo IP Statico modificano il file con il comando: sudo nano /etc/dhcpcd.conf
abilitando e modificando le righe: interface eth0 static ip_address=192.168.100.100/24
static routers=192.168.100.254
effettuare poi un riavvio del sistema: reboot
- Installiamo i pacchetti necessari per l'interfaccia WEB eseguendo i comandi:
sudo apt-get update
sudo apt-get install apache2
sudo apt-get install php
Ora sul Raspberry abbiamo a disposizione il server WEB e il linguaggio di programmazione PHP.
RICHIESTA HTTP CON L'APERTURA DI UNA PAGINA PHP (su Raspberry)
Se vogliamo inviare al server Nicelabel Automation la richiesta semplicemente aprendo una pagina web,
possiamo creare questo file (con diritti root semplicemente lanciando il comando: sudo su):
/var/www/html/invioRichiestaHttp.php
in cui inseriamo il seguente codice PHP:
<?php
$str = "sudo python /var/www/html/printlabel.py";
$result=exec($str);
echo " STAMPATO :";
echo $result; #Viene stampato a video il risultato dell'operazione che Nicelabel Automation invia
?>
Creiamo il file "/var/www/html/printlabel.py" dove inseriremo il codice PYTHON che andrà ad effettuare la richiesta:
#!/bin/bashimport
requestsimport json
url = "http://192.168.100.101:56429/Print" #INDIRIZZO IP DEL PC DOVE è INSTALLATO IL SOFTWARE Nicelabel Automation
headers = {"Content-Type": "application/json; charset=utf-8"}
stringjson='{"LABEL": {"HEADER":{"PRINTER_NAME": "SATO CL4NX Plus 203dpi","QUANTITY": "1"},"DATA":{"SUPPLIER_CODE": "123456","DOCNO": "123456","DOCVERSIONNO": 1,"DATESTAMP": "20231020","PREFIX": "ABC","SUFFIX": "123","USER": "User1"}}}'
response = requests.post(url, headers=headers, data=stringjson )
print("JSON Response: ", response.json()) #Viene inviato al codice PHP il risultato dell'operazione che Nicelabel Automation invia
Ora aprendo in un Browser la pagina web:
http://192.168.100.100/invioRichiestaHttp.php
verrà inviata una richiesta Http al software Nicelabel Automation e poi nella pagina web apparirà il messaggio di risposta:
RICHIESTA HTTP CON UN CLICK SU UN PULSANTE SU UNA PAGINA WEB (su Raspberry)
Se vogliamo implementare una pagina con un pulsante che invii la richiesta, possiamo creare il file:
/var/www/html/index.php
inserendo il seguente codice PHP e HTML:
<!DOCTYPE html>
<html>
<head>
<title>Pannello RPi-WEB</title>
</head>
<body>
<form method="POST" action="">
<input type="submit" name="PrintLA" value="PrintLabel">
<?php if ( isset( $_POST["PrintLA"] ) ) {
$str = "sudo python /var/www/html/printlabel.py";
exec($str);
echo " STAMPATO.";
endif ?>
</body>
</html>
Questa pagina WEB richiama il file printlabel.py (precedentemente creato) quando viene premuto il pulsante.
Se non vogliamo utilizzare il linguaggio PHP è possibile inserire nel <body> solo linguaggio Html richiamando con un HRef la pagina PHP precedentemente creata:
<a href="http://192.168.100.100/invioRichiestaHttp.php">printlabel</a>
Tutto il materiale (testo, grafica e immagini) presente in questo sito è di proprietà di CENTRODIGRAVITA.it, pubblicato su concessione degli autori. Ne è vietata la riproduzione, anche parziale, senza il consenso scritto da parte dello staff CENTRODIGRAVITA.it. Eventuale materiale erroneamente pubblicato e soggetto a copyright verrà immediatamente rimosso su segnalazione del titolare dei diritti. CENTRODIGRAVITA.it non si assume nessuna responsabilità per danni che derivino dall'utilizzo delle informazioni, consigli e file scaricati dal sito. Per info o problemi cliccate qui per contattarci. o qui per accedere all'informativa sui cookie