Inviare dati a Beebotte, piattaforma cloud fornita come servizio

  1. Home
  2. Knowledge Base
  3. PLC SlimLine/NetSyst Cortex M7/ARM7
  4. Programmazione LogicLab
  5. Applicazioni
  6. Inviare dati a Beebotte, piattaforma cloud fornita come servizio

Beebotte è una piattaforma cloud per Internet of Things che permette lo sviluppo di applicazioni connesse in tempo reale, ecco la nostra dashboard di prova in cui i dati sono aggiornati in tempo reale da un sistema SlimLine. Beebotte semplifica lo sviluppo fornendo API e componenti per raccolta, archiviazione e gestione dei dati con la possibilità di creare dashboard personalizzate per la visualizzazione. Beebotte supporta REST, Websockets e MQTT per connettere qualsiasi dispositivo in tempo reale.

Utilizzando il FB MQTTClient inviare dati al servizio Beebotte utilizzando il protocollo MQTT è molto semplice con i nostri dispositivi programmabili. E' possibile pubblicare sul servizio qualsiasi tipo di dato sia esso numerico temperature, umidità, pressione, corrente, ecc che alfanumerico stringhe di log, allarmi, ecc. L'iscrizione al servizio è gratuita, ed il piano prevede un numero illimitato di canali e di dashboards con un limite di 1,5 milioni di messaggi al mese, è garantita l'archiviazione storica dei dati per 90 giorni. Esistono poi piani a pagamento che estendono il tempo di memorizzazione ed il numero di messaggi gestiti. Vediamo come utilizzare il servizio, dopo l'iscrizione è possibile accedere alla creazione dei canali.

Come si vede ad ogni canale è associato un token che serve per l'autenticazione dei dati sull'invio da MQTT. All'interno di un canale posso aggiungere tutte le risorse che desidero, ogni risorsa è una variabile di cui il sistema terrà automaticamente la storia e che sarà possibile visulizzare sulla dashboard. Di fianco ad ogni risorsa viene visualizzato il tempo in cui è avvenuta l'ultima ricezione del valore. Dal menù Dashboard è possibile aggiungere nuove dashboard, sia i canali che le dashboards possono essere private o pubbliche, se private per accedervi occorre eseguire il login, mentre se pubbliche è possibile accedere liberamente.

Esempi

Come utilizzare gli esempi
Per permettere di verificare praticamente la semplicità di pubblicazione dei dati sul servizio Beebotte ho creato il canale pubblico UsersTest in cui ho allocato 2 risorse, REALValue di tipo numerico e STRINGValue di tipo stringa. Accedendo alla Dashboard è possibile visualizzare i dati inviati. Tutti i programmi di esempio inviano dati al canale permettendo così di verificarne l'effettivo invio visualizzando il valore nella dashboard.

ABCBeebotte: Esempio molto semplice di come sia possibile inviare un dato numerico REAL utilizzando il FB MQTTClient. Attivando da debug la variabile Publish verrà eseguita la connessione al server Beebootte e pubblicato il valore della variabile Value che è incrementata ad ogni pubblicazione.

FBD_MQTTBeebotte: Nella libreria eLLabCloudSvLib sono presenti FB appositi per la pubblicazione e la sottoscrizione di topics su Beebotte, il FB MQTTBeebotte (Manuale) appoggiandosi ad altri FB gestisce autonomamente le operazioni di sottoscrizione e pubblicazione di risorse. Tramite il FB TSBeebotte è possibile definire la sottoscrizione alle risorse (Nel programma è definita un'unica risorsa UsersTest/REALValue, ma si può creare un array di FBs uno per ogni risorsa da definire). Tramite il FB TPBeebotte è possibile definire la pubblicazione delle risorse (Nel programma è definita un'unica risorsa UsersTest/REALValue, ma si può creare un array di FBs uno per ogni risorsa da definire).

LogicLab (Ptp167)
PROGRAM FBD_MQTTBeebotte
VAR
    Enable : BOOL := TRUE; (* Management enable *)
    Publish : BOOL; (* Publish command (Automatically rest after publish) *)
    RXVALUE : REAL; (* Value received fron Beebotte *)
    TXVALUE : REAL; (* Value to be send to Beebotte *)
    MQTT : MQTTClient; (* MQTT client management *)
    JENCODE : JSONEncode_v1; (* JSON encode *)
    JDECODE : JSONDecode_v2; (* JSON decode *)
    Beebotte : MQTTBeebotte; (* Bebotte service management *)
    TPUBLISH : TPBeebotte; (* Topic publish *)
    TSUBSCRIBE : TSBeebotte; (* Topic subscribe *)
END_VAR

LogicLab (Ptp167)

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 29 Dicembre 2020