ADB and micro USB for data communication

ADB stands for “Android Debug Bridge” and it basically just allows you to send commands to your device Ltouch.

Download SDK Platform Tools ADB is a small tool bundled in the Android SDK as part of the “Platform Tools.”

ADB stands for “Android Debug Bridge” and it basically just allows you to send commands to your device.

Users used to be required to download the entire SDK (which is very large) just to use ADB, but Google now allows users to download only the Platform Tools.

  • Download the SDK Platform Tools for Windows, Mac, or Linux from https://developer.android.com/studio/releases/platform-tools.html
  • Extract the ZIP file somewhere easily accessible (like C:\platform-tools) We’ve got ADB downloaded on your computer and your Android device is ready to receive instructions.
  • Now it’s time to put it all together and run your first ADB command.
  • Connect your Ltouch to the computer with a USB cable
  • The USB mode must be PTP in order for ADB to work. You can usually change this from the notification shade
  • Make sure to allow USB debugging if a pop-up appears
  • Open the platform-tools folder on your computer
  • Shift+Right Click and select Open command prompt here
  • Type adb devices and hit Enter

That’s all, good work

Nuovo pannello touch HMI 4,3 ” Android Ltouch43

Siamo orgogliosi di annunciare che un nuovo prodotto sarà presto rilasciato. E’ un pannello touch Android per progetti HMI di automazione industriale e domotica.

Si caratterizza di un display multi touch resisttivo da 4,3″ con un processore ancora più performante Samsung S5P6818 64-bit Octa-Core  frequenza scalabile 8*Cortex -A53  da 400MHz a 1.4 MHz dotato di uscite a relè e interfaccia di comunicazione RS485. Dispone di una memoria RAM di 2GB 32bit DDR3 ed una memoria interna eMMC da 16GB con uno slot MICROSD per memorie sopra i 128GB.

Pieno supporto a Ethernet come anche a reti wifi WAN 802.11 b/g/n. dotato di antenna interna mod. porcelain ipx interfacee bluetooth 4.0 dual mode.

Il prodotto è disponibile con cornice frontale in acciaio inox finitura a specchio con una cover posteriore sempre in acciaio inox 10/10 finitura 2B.razie a questi layer di protezione e ad un particolare processo di assemblaggio, il prodotto raggiunge un livello di protezione IP54 nella parte frontale (acqua e polvere).

Nuove librerie ancora più veloci e performanti sviluppate dal nostro staff tecnico, scaricabili dalla nostra area download,  per disporre un massimo controllo e comando della periferica RS485 modbus e ingressi / uscite digitali (GPIO), 4 uscite a relè con contatto di scambio 5 A .

AUDIO e VIDEO : Microfono a bordo e jack audio 3.5mm e uscita aggiuntiva in HMI Type-A 1-1.4A

La periferica RS485 è completamente optoisolata con possibilità in modalità MASTER di polarizzare la linea tramite un

semplice dip-switch posto sul retro e attivare la resistenza di terminazione linea di 120 ohm.

Alimentazione a 24 Vdc con riconoscimento intelligente della tensione di linea, se al di sopra o di sotto del 20% il nostro Ltouch4_3 si spegne.

Display capacitivo 4,3 ” con risoluzione 480 X 800 dimensioni 55 x 93 mm

Sarà presto disponibile nel nostro wiki tutto il supporto tecnico per la realizzazione dei Vostri progetti domotici ed industriali.

Salviamo dei dati nella memoria interna Android (variabili ritentive)

Capita alle volte di voler salvare dei dati così da non perdere il loro valore in un secondo momento.
Android dispone di un comando molto semplice per scrivere dei valori in formato testo nella memoria interna del dispositivo, in questo caso all’interno dei nostri pannelli Ltouch e pLtouch e successivamente recuperarli.

Premetto che questa procedura rende i dati che andiamo a salvare privati, ciò vuol dire che solamente la nostra app potrà accedervi e nessun’altra e nel momento in cui la disinstalleremo tutti i dati verranno persi.

Troverete molto utile questo Tutorial

Android dispone delle classi openFileInput e openFileOutput per scambiare dei pacchetti alla memoria interna.

  •  openFileOutput : è il metodo per creare e salvare un file
FileOutputStream fOut = openFileOutput("file name",Context.MODE_PRIVATE);

Il metodo restituisce un’istanza FileOutputStream, così è possibile richiamarla e scrivere i dati sul file:

String str = "test data";
fOut.write(str.getBytes());
fOut.close();
  • openFileInput () : Questo metodo viene utilizzato per aprire un file e leggerlo. Tale restituisce un’istanza di FileInputStream.
FileInputStream fin = openFileInput(file)

Dopodichè chiamamiamo quest’isanza per leggere un carattere alla volta e rappresentarlo:

int c;
String temp="";
while( (c = fin.read()) != -1){
temp = temp + Character.toString((char)c);
}
fin.close();

Vediamo ora un esempio pratico:

Supponiamo che si voglia salvare un dato e renderlo nel gergo tecnico dei plc ” ritentivo “, in poche parole che al riavvio della nostra app il dato non si perda, ma che si possa recuperarlo.
Salviamo il dato alla pressione di un bottone:

@Override
	public void onClick(View v) {
             if (v.getId()==R.id.btnWrite){
                 // add-write text into file
        try {
            FileOutputStream fileout=openFileOutput("BieMmeItalia.txt", MODE_PRIVATE);
            OutputStreamWriter outputWriter=new OutputStreamWriter(fileout);
            outputWriter.write("250");
            outputWriter.close();

            //display file saved message
            Toast.makeText(getBaseContext(), "File saved successfully!",
                    Toast.LENGTH_SHORT).show();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

All’avvio dell’app andiamo a leggere il valore nel file di testo allocato nella memoria del dispostivo e poi lo rappresentiamo a video tramite una texView:

	@Override
    protected void onCreate(Bundle savedInstanceState) {
			    requestWindowFeature(Window.FEATURE_NO_TITLE);
			super.onCreate(savedInstanceState);
			setContentView(R.layout.activity_main);

			TextView valreadtoMemory = (TextView)findViewById(R.id.editText1);
		try {
	            FileInputStream fileIn=openFileInput("BieMmeItalia.txt");
	            InputStreamReader InputRead= new InputStreamReader(fileIn);

	            char[] inputBuffer= new char[READ_BLOCK_SIZE];
	            String s1="";
	            int charRead;

	            while ((charRead=InputRead.read(inputBuffer))>0) {
	                // char to string conversion
	                String readstring=String.copyValueOf(inputBuffer,0,charRead);
	                s1 +=readstring;
	           }
	            InputRead.close();
	            valreadtoMemory.setText(s1);

	        } catch (Exception e) {
	            e.printStackTrace();
	        }

    }

Per maggior informazioni troverete del materiale anche nel nostro WiKi

Android app e Modbus RTU

Abbiamo realizzato una piccola e semplice applicazione per i nostri pannelli LtouchF così da permettere agli utenti di configurare e successivamente comunicare con tutti i dispositivi modbus RTU.

BieMmeConfig, verrà installata di serie su tutti i nostri LtouchF, così renderà più semplice la configurazione dei dispositivi Modbus RTU.

In alcuni semplici passi possiamo scrivere e leggere utilizzando le funzioni 03 e 16 Modbus RTU.

Prepariamo la comunicazione; colleghiamo tramite un cavo a tre fili il dispositivo modbus ed il Ltouch.

La porta RS485 Modbus del Ltouch è posizionata nel lato su un connettore DB9 ed il bus è nel dettaglio nei pin:

  • 2 – A
  • 3 – B
  • 5 – GND

Impostiamo la velocità di comunicazioni (grazie alla nostra Libreria la app supporta la velocità fino a 115200) ed il tempo di timeout.

La funzione 03:
Node Id: corrisponde all’indirizzo dello slave in cui vado a leggere.

Start Register : corrisponde al primo registro per la lettura modbus

Number Registers: Corrisponde a quanti registri consecutivi voglio leggere

Una volta configurato questi tre campi possiamo, tramite i tre bottoni, eseguire la richiesta di lettura.

Singola lettura: Ltouch eseguirà una sola lettura e rappresenterà a video i valori letti.

Lettura a ciclo continuo: Ltouch eseguirà delle letture ad intervallo di un secondo in modalità ciclica. I valori letti verranno rappresentati a video.

La funzione 16:

Grazie a questa funzione possiamo scrivere dei valori interi; anche qui dobbiamo configurare alcuni campi come:

Node ID: Corrisponde all’indirizzo dello slave in cui vado a scrivere

Start Register: Rappresenta il primo registro in cui vado a scrivere

Number Registers: Rappresenta il numero di registri consecutivi nel quale scriverò il valore.

Value: Rappresenta il valore che scriverò.

Per chiudere l’applicazione basta premere sopra il logo BieMme

Automazione Industriale con Android: un’introduzione al Pltouch

Pltouch processors schemaI progetti di automazione industriale e domotica utilizzano un ampio spettro di prodotti, come per esempio sensori, pannelli touch screen, moduli esterni, PLC, moduli HMI per risolvere problemi specifici e gestire vincoli stringenti in termini di affidabilità e precisione. Il panorama attuale mostra una netta distinzione tra i componenti che gestiscono la logica e quelli che si preoccupano dell’interfaccia utente, molto spesso utilizzando un bus comune per la comunicazione e l’aggionamento di stato. 

Sulla base di questo stato dell’arte, il nostro research and development lab, ha creato e sviluppato un nuovo prodotto con l’intento di unire alcuni dei prodotti di cui sopra, con il fine di ridurre la complessità finale, proporre un’interfaccia utente avanzata ma soprattuto diminuire il costo. 

Continue reading

Automazione Industriale con Android: Acquisizione di 6 sonde pt100

Il video che vi vogliamo presentare in questo post riguarda un esempio di Automazione Industriale con Android. In particolare, vi faremo vedere un progetto che abbiamo realizzato in cui un touch HMI AndroidLtouch F, equipaggiato di un microprocessore Cortex A8 a 1Ghz controlla un’espansione RS485 analogica, nello specifico ho usato un modulo espansione bm6PTI.

Dall’interfaccia touch screen Android è possibile:

Acquisire distintamente 6 sonde di temperatura mod. PT100 classe B attraverso un’ espansione in RS485 utilizzando una comunicazione modbus ad una velocità di 19200 bps

Volendo è possibile estendere l’applicazione aggiungendo altri moduli di espansione fino ad un totale di 250 bm6PTI con un’ acquisizione di 1500 sonde di temperatura.

Continue reading