Archivi tag: development board

Seeeduino XIAO – Rilevamento Oggetti

Dopo aver configurato l’ambiente Arduino IDE per la scheda Seeeduino XIAO nell’articolo precedente

Seeeduino XIAO – Ambiente Arduino

in questo faremo un piccolo esempio con tale scheda.

Nel piccolo progetto vengono usati come componenti

  1. Sensore ad ultrasuoni HC-SR04
  2. Schermo Oled  0,96 pollici SSD1306 I2C

Come prima operazione occorre installare le librerie dei due componenti sopra elencati su Arduino.

Si accede al menù Sketch->Include Libreria->Gestione librerie

addlib-itPer HCSR04 scegliamo HCSR04 by Martin Sosic

hcsr04-itPer SSD1306 scegliamo ACROBOTIC SSD1306

SSD1306-itOra abbiamo tutti i compomenti per il progetto. Colleghiamo allo Seeeduino XIAO i componenti come elencato nella tabella seguente

PIN XIAOPIN SSD1306PIN HCSR04
3V3VDD
GNDGNDGND
5VVCC
D2ECHO
D1TRIG
D5SCK
D4SDA

Come si evince dalla tabella si utilizzano i pin I2C e digitali 1,2 dello XIAO

pinsexampleDi seguito lo schema dei collegamenti

xiaoconnectionsIl codice per il funzionamento dell’esempio è il seguente

Alla presenza del passaggio di un oggetto nel campo visivo del sensore, l’evento viene segnalato sullo schermo OLED con la misura registrata. All’interno del codice vi è la descrizione di tutte le operazioni eseguite.

Di seguito il link al file del codice

esempioXiao.ino

Seeeduino Xiao – Ambiente Arduino

Dopo aver elencato le caratteristiche principali della scheda Seeeduino XIAO

Scheda di sviluppo Seeeduino XIAO

in questo articolo prepariamo l’ambiente di sviluppo Arduino.

Come prima operazione si scarica l’ Arduino Ide

IDE Arduino

Nel nostro caso si è usata la versione 1.8.5.

Dopo aver scaricato l’IDE lo si avvia e si aggiunge il repository delle schede di Seeeduino XIAO accedendo a File->Impostazioni. Nel tab “Impostazioni” individuare il campo “URL Aggiuntive per il Gestore Schede” ed aggiungere il link

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

board-itSi preme OK per aggiornare le impostazioni.

Si accede ora a Strumenti->Schede->Gestore Schede e  si immette nella casella di ricerca “Seeeduino XIAO”.

xiao-it

Viene identificata la scheda “Seeed SAMD Boards”. Si installa con il pulsante “Installa”.

A questo punto su Linux la scheda è già visibile sulla porta USB, mentre su WIndows 7 sono stati installati i driver presenti al link

Driver Windows

Si impostano i seguenti parametri per la scheda Seeeduino XIAO dal menù Strumenti

  • Scheda:Seeeduino XIAO
  • USB Stack: Arduino
  • Porta: Porta cui è collegata la scheda. Visibile il riferimento (Seeeduino XIAO)

xiasetttings-itPer controllare che tutto l’ambiente è installato correttamente si esegue l’esempio di prova Blink di Arduino, accedibile in File->Esempi->01.Basics->Blink

blink-it

L’esempio non fa altro che spegnere ed accendere il Led giallo sul dispositivo.

Nel prossimo articolo faremo un piccolo esempio con dei dispositivi collegati ai pin del Seeeduino XIAO

Seeeduino XIAO – Rilevamento Oggetti

Scheda di sviluppo Seeeduino XIAO

In questo articolo viene descritta la scheda di sviluppo Seeeduino XIAO

Seeeduino XIAO

Seeeduino-XIAO-pinout

Le specifiche generali della scheda sono le seguenti

CaratteristicaValore
CPUARM Cortex-M0+ CPU(SAMD21G18) funzionante fino a 48MHz
Flash Memory256KB
SRAM32KB
Ingressi/Uscite Digitali11
Ingressi/Uscite Analogiche11
Interfacce I2C1
Interfacce SPI1
Interfaccia UART1
Led AlimentazioneVerde
Led di testGiallo
Led per Comunicazione Seriale in RicezioneBlu
Led per Comunicazione Seriale in TrasmissioneBlu
Porta di alimentazione e caricamento firmwareUSB Type C
Tensione Alimentazione3.3V/5V DC
Dimensioni20×17.5×3.5mm

Come si evince dalla tabella delle specifiche aspetti peculiari della scheda sono i seguenti

  • Ha una microcontroler SAMD21G18  ARM® Cortex®-M0+ 32bit 48MHz  con  256KB Flash,32KB SRAM.
  • Compatibile con IDE Arduino e CircuitPython.
  • Adatta per progettazione veloce con Breadboard.
  • Di piccole dimensione (20×17.5mm), per cui adatta per progetti di dispositivi indossabilli e piccoli progetti.
  • Molteplici interfacce a disposizione: 11  pin digitali/analogici, 10 Pin PWM, 1 uscita DAC , 1 interfaccia Pad SWD, 1 interfaccia I2C , 1 interfaccia UART, 1 interfaccia SPI.

Di seguito i link per i wiki di Seeedstudio per la configurazione con Arduino e CircuitPython

Seeeduino XIAO con IDE Arduino

Seeeeduino XIAO con CircuitPython

CircuitPython è un progetto derivato da Micropython semplificato per microcontrollori

CircuitPython 

La programmazione del dispositivo avviene mediante connessione USB Type C. Offre anche nella parte inferiore  pad per alimentazione  nonché l’interfaccia di debug SWD (Serial Wire Debug).

seeeduino-xiao-pinout-backLa scheda supporta il pin multiplexing ed uno stesso pin può essere utilizzato a seconda della funzione che lo richiama come pin analogico, digitale, ecc.

Sulla parte superiore della scheda sono presenti due pin per il reset della scheda stessa e per l’impostazione in modalità dfu per il caricamento di altro bootloader (per esempio CircuitPython).

Seeeduino-XIAO-resetPer eseguire il reset o caricare altro bootloader collegare la scheda tramite USB Type C e  resettare  cortocircuitando velocemente i pin di reset. Quando il led arancione incomicia a illuminarsi con sfarfallio la scheda è pronta per caricare il firmware. Usare questo metodo anche nel caso in cui la scheda non risulti più visibile sulla porta USB del PC.

La scheda è disponibile direttamente dal sito Seeed

Seeeduino XIAO

Nel prossimi articoli impostiamo l’IDE Arduino per un piccolo progetto con Seeeduino XIAO

Seeeduino XIAO – Ambiente Arduino

 

Informazioni su Seeed

Seeed è un abilitatore hardware IoT che fornisce servizi per oltre 10 anni che consentono ai produttori di realizzare i loro progetti e prodotti. Seeed offre una vasta gamma di piattaforme hardware e moduli sensore pronti per essere integrati con le piattaforme IoT esistenti e la produzione di PCB ed il servizio di assemblaggio PCB. Seeed Studio offre una vasta gamma di componenti elettronici tra cui Arduino Raspberry Pi ee altre diverse piattaforme per schede di sviluppo. Soprattutto il sistema Grove aiuta ingegneri e produttori ad evitare problemi con i ponticelli. Seeed Studio ha sviluppato oltre 280 moduli Grove che coprono una vasta gamma di applicazioni in grado di soddisfare una varietà di esigenze.

Monitoraggio Sensori – Configurazione Grafana

Dopo aver configurato nodered per inoltrare i dati ai database, si utilizzano dei sensori di temperatura ed umidità con ESP8266, come già visto negli articoli precedenti

Mqtt con Beaglebone ed ESP8266 – Lista Articoli

Di seguito il firmware utilizzato ed il codice per l’invio dei dati dei nodi ESP8266

Firmware ESP8266

Temperatura-Umidià ESP8266

All’interno dello zip del firmware è presente lo script per eseguire l’upload del firmware sulla porta COMX (da modificare nella propria porta COM) su windows.

Nel codice LUA invece occorre inserire i dati del proprio router wireless, l’ip del server mqtt, le impostazione della stanza, sostituendo roomx, con room1, room2,ecc.

Si può quindi impostare Grafana, accedendo alla Dashboard, aggiungendo come sorgenti dati Mysql ed InfluxDB

grafanaSourceCon Add data source si accede alla schermata dei Data Source, da cui si scelgono InfluxDB e MySql

grafanaAddSourceDi seguito le impostazioni eseguite per InfluxDB e MySql

InfluxDBInfluxDBESPMySqlMySqlESPLe due connessioni sono presenti nella configurazione dei datasource

AllDataSource

Di seguito l’export delle due Dashboard usate nell’articolo da importare sul proprio sistema con il pulsante Import

importDashboards

Dashboards

Ecco la schermata della Dashboard ESPRealtime con i dati reperiti su InfluxDB

RealTimeGrafanaPer visualizzare lo storico dei dati, si utilizza MySql con la Dashboard ESPHistory

HistoryGrafana

 

Monitoraggio Sensori – Configurazione Nodered

A questo punto impostiamo nodered per leggere i messaggi su Mosquitto ed inserire i dati in InfluxDB e MySql.

Di seguito il file json da importare in nodered

Json Nodered

Tale flusso è funzionale alla spiegazione del funzionamento della architettura nel complesso; il flusso deve essere ottimizzato programmando nodered in modo da generare automaticamente le informazioni dei nodi da cui arrivano i dati senza ricorrere a diversi nodi per ciascun sensore.

Per eseguire l’import procedere come segue, dopo aver acceduto a nodered

http://dashboardora.local/nodered

e dopo aver cliccato sul menù a destra, scegliere di importare il json da clipboard

importFlowsAlla schermata successiva, scegliere di importare il file json in un nuovo flusso

flowUna volta importato, impostare le credenziali per accedere a MySql ed InfluxDB, selezionando dal menu a destra Configuration nodes ed impostando utenza e password

configureNodesVengono mostrate le connessioni ai db e mosquitto

configureNodesDBDi seguito l’impostazione di MySql, accedibile cliccando con il mouse due volte su ESPMYSQL

MySqlSetting

Con Update si aggiorna il nodo.

Per rendere operativi i flussi cliccare su Deploy

deployOra con nodered prendiamo il contenuto dei vari topic mqtt e li inseriamo all’interno di MySql e di InfluxDB.

Nel prossimo articolo visualizziamo tali dati in Grafana

Monitoraggio Sensori – Configurazione Grafana

 

Monitoraggio Sensori – Configurazione InfluxDB

Dopo aver creato le tabelle su MySql

Monitoraggio Sensori – Configurazione MySql

si procede alla creazione di un database  su InfluxDB.

Come prima operazione si attiva un utente amministrativo sul sistema, come descritto al link

Autenticazione ed autorizzazione

Si accede al db dal client locale eseguendo da una shell il comando influx

Si esegue

Si imposta nel file /etc/infuxdb/influxdb.conf, con l’utenza root di Debian o mediante sudo, il parametro auth-enabled  da false a true

Si fa ripartire InfluxDB

Si accede in una shell su Debian e si crea il database DATAESP con il seguente comando

Inserire le credenziali di admin al comando auth e procedere alla creazione del database

Di seguito il risultato dei comandi sopra elencati

datainfluxdb

Per la gestione del database Influxdb, è possibile installare Chronograph

Chronograph

Il download di Chronograph è disponibile al link

Chronograph Download

L’installazione può essere eseguita in due modalità.

Avvio applicazione

Accedere con l’utenza monitor ed eseguire in una shell

Avviare l’applicazione chronograf

 

Avvio Servizio

Accedere sempre con l’utenza monitor; eseguire in una shell

Nella cartella /opt/chronograf/usr/lib/chronograf/scripts esistono gli scripts per l’avvio automatico di chronograf.

Di esguito le operazioni eseguite nel nostro sistema:

  • Copiare /opt/chronograf/usr/lib/chronograf/scripts/init.sh in /etc/init.d/chronograf ed assegnare i permessi di esecuzione

  • Copiare /opt/chronograf/usr/lib/chronograf/scripts/chronogaf.service  in /etc/systemd/system/chronograf.service

Cambiare in entrambi i file l’utenza ed i path dei vari componenti di chronograf, ossia l’utenza in monitor ed i path che puntano a /opt/chronograf

Di seguito il link ai file modificati

Avvio Automatico Chronograf

Dopo la modifica eseguire

Per abilitarlo all’avvio ed avviarlo eseguire

Dopo aver avviato chronograf in una delle modalità descritte sopra è possibile accedervi  mediante browser e porta 8888

http://dashboardora.local:8888

ChronografPremere Get Started ed impostare la connessione e le credenziali dell’utenza admin con relativa password definito prima

Chronograf2conImpostare la dashboard di Influxdb

ChronografDashboardNon impostare la componente Kapacitor

Chronograf3Completare la configurazione e cliccando su View All Connections

Chronograf4si accede alla connessione appena creata

ChronografConnections

Tale componente potrà essere utile in seguito per gestire e monitorare InfluxDB.

Nel prossimo articolo si inseriscono su nodered le regole per popolare i database MySql ed InfluxDB con i dati inviati dai sensori

Monitoraggio Sensori – Configurazione Nodered

 

Monitoraggio Sensori – Configurazione MySql

Dopo aver installato il software su Orange Pi PC procediamo alla configurazione degli stessi

Monitoraggio Sensori – Preparazione Ambiente 2

Creazione Tabelle su MySql

Su MySql sono state create 3 tabelle contententi i valori di temperatura, umidità e pressione dei sensori.

Di seguito il modello

Modello MySql

da importare in MySql Workbench

ESPModelloUna volta importato si accede al menù Database->Forward Engineering e si importano le tabelle sul proprio sistema MySql presente sull’Orange Pi PC, immettendo l’utenza root di MySql e relativa password

ESPImport

Alla schermata successiva si utilizza la connessione creata su MySql Workbench per connettersi al database

ESPImport1

Lasciare tutto di default ed inserire la password di root quando richiesto.

Le tabelle ora sono presenti sul database

ESPTablesNel prossimo articolo si configura InfluxDb per la ricezione dei dati in tempo reale dai sensori

Monitoraggio Sensori – Configurazione InfluxDB

 

Monitoraggio Sensori – Preparazione Ambiente 2

Dopo aver installato parte dei componenti software nel precedente articolo

Monitoraggio Sensori – Preparazione Ambiente

continuamo tale operazione con il presente articolo.

Infludb

Si procede alla installazione di Influxdb secondo quanto indicato al link

Influxdb

Per Debian 9 si esegue

Controllare che il tutto funzioni correttamente eseguendo la connessione con il client

infux

Nodered

Si procede alla installazione di node.js

Si installa quindi nodered, come indicato al link

Installazione nodered

Per eseguire all’avvio di Armbian nodered si utilizza lo script presente al seguente link

Autostart nodered

Non abbiamo eseguito lo script automatizzato, ma eseguiti i seguenti passi

Editare /etc/init.d/nodered e modificare l’utente da pi a monitor, ossia cambiare il parametro

in

Eseguire

Avviare nodered

Controllare che nodered risponda accedendo con il browser al link

http://dashboardora.local:1880

noderedRiavviare il sistema e controllare che nodered si avvii automaticamente.

Procedere alla installazione dei moduli aggiuntivi di nodered

Grafana

Si procede al download alla versione per arm

Grafana per ARM

Abilitare e far partire Grafana

Accedere al sistema mediante l’url

http://dashboardora.local:3000

collegarsi con l’utenza admin e password admin; procedere al cambio della password

GrafanaUna volta impostata la nuova password si accede alla interfaccia di impostazione

Grafana2Nei prossimi articoli eseguiremo le impostazioni per poter visualizzare i dati dei sensori.

Installazione reverse proxy

Per poter accedere al sistema attraverso la porta 80 del server http si può utilizzare nginx come reverse proxy

nginx

Se si utilizza nginx come proxy si disabilita apache

Si procede alla installazione di nginx

Si configura il tutto per accedere ai due sistemi mediante i seguenti link

http://dashboardora.local/nodered per nodered

http://dashboardora.local/grafana per grafana

Per grafana si segue la documentazione ufficiale

Grafana proxy

Si procede quindi a modificare il file /etc/grafana/grafana.ini modificando i parametri domain e root_url; nel nostro caso si modifica tale sezione come segue

Si configura quindi nginx, creando nella cartella /etc/nginx/sites-available  il file servizi con il seguente contenuto

Di seguito la configurazione di nginx

Configurazione nginx

Si esegue il seguente comando

e si fanno ripartire i servizi grafana e nginx

A questo punto è possibile accedere ai due servizi mediante il link

http://dashboardora.local/nodered

nodered-nginx

http://dashboardora.local/grafana

grafana-nginxNel prossimo articolo si inizia la configurazione dei vari moduli necessari per la gestione del sistema

Monitoraggio Sensori – Configurazione MySql

Monitoraggio Sensori – Preparazione Ambiente

Nella impostazione della infrastruttura per il monitoraggio dei sensori costituiti da dispositivi ESP8266 in articoli pubblicati in precedenza

Mqtt con Beaglebone ed ESP8266 – Freeboard

si era impostato Freeboard per la visualizzazione dei dati provenienti dai sensori.

In questa nuova serie di articoli, si intende impostare Grafana

Grafana Dashboard

come ambiente per visualizzare i dati dei vari sensori.

L’ambiente in questo caso lo implementiamo su una scheda Orange Pi PC, ma può essere utilizzato altro sistema arm o pc.

Di seguito l’architettura utilizzata in questa serie di articoli

archGrafana

Nel corso di questi articoli si useranno utenze con il massimo delle autorizzazioni per ciascun ambiente, non si useranno autorizzazioni su mosquitto e non vengono utilizzare connessioni cifrate. In un ambiente di test tale impostazione va bene, ma in un ambiente di esercizio occorre impostare le corrette autorizzazioni e possibilmente le cifrature nelle connessioni in tutti gli ambienti.

Abbiamo installato una versione da noi compilata di Debian 9 Stretch per Orange PI PC. L’immagine usata è la seguente

Download Immagine

E’ stato creato l’utente monitor, mentre l’hostname è stata rinominato in dashboardora. Se non installato procedere ad installare il demone avahi

In tale modo i servizi sono accessibili tramite la pubblicazione dell’hostname, utilizzando dashboardora.local.

Utilizzando la utility armbian disabilitare ip6 sul sistema; per eseguire tale impostazione lanciare armbian-config

ipv6Disable1Procedere alla disabilitazione dell’ip6

ipv6Disable2

Come primo passo installiamo il broker mqtt mosquitto

Installare i servizi http ed i database Mysql e MySqlWorkbench

Apache2

e vari prerequisiti

Avviare apache

e controllare che il server risponde all’indirizzo web, che nel nostro caso corrisponde a http://dashboardora.local

apache

MySql

Con Debian 9 si installa MariaDB; bisogna impostare la password dell’utenza di amministrazione root del database con il seguente comando

Impostiamo la password di root e la possibilità di accesso da altri host come root

mariadb-secure

Il resto delle opzioni scelte sono elencate di seguito

mariadb-secure2

Installiamo  phpmyadmin per la gestione del database

Alla schermata successiva scegliere apache2

phpmyadmin

Infine  scegliere NO

phpmyadmin1

Eseguire i comandi di seguito elencati

Controllare che il sistema funzioni correttamente accedendo tramite web browser aggiungendo all’indirizzo di apache phpmyadmin, nel nostro caso

http://dashboardora.local/phpmyadmin

phpmyadmin2

Collegarsi con le credenziali di root del database.

Per poter accedere dall’esterno occorre abilitare mariadb ad accettare connessioni da altri host. Per tale scopo accedere in

ed editare come root il file 50-server.cnf, modificando l’impostazione

in

Per consentire all’utente root del database di poter accedere da un client esterno, occorre accedere su mariadb localmente con il suo client ed abilitare tale opzione; si esegue pertanto quanto segue

 

Installazione su PC di Mysql Workbench

Accedere al link

MySql Workbench

e scaricare la versione per il proprio sistema operativo per poi procedere alla installazione.

Sulle distribuzioni Linux è presente anche nei repository.

Dopo aver configurato la connessione si accede alla schermata di controllo del systema MySql

MySQLWorkbenchNel prossimo articolo continueremo la installazione degli altri componenti per il monitoraggio  dei sensori

Monitoraggio Sensori – Preparazione Ambiente 2

ESP32 – IDF Sdk con IDE Eclipse

Dopo aver configurato l’ambiente di sviluppo IDF nell’articolo precedente

ESP32 – IDF Sdk

vediamo ora come utilizzare Eclipe come IDE per lo sviluppo del codice. Le istruzioni sono disponibili al link

Configurazione Eclipse

Scaricare Eclipse per C/C++ per Linux

Download Eclipse

Scompattare il file e spostarlo su /opt/

Eseguire ecplise

Impostare il workspace per eclipse

eclipse-workspaceUna volta aperto l’IDE selezionare File–>Import–>C/C++- -> Existing Code as Makefile Project

eclipse-importPremere Next; alla schermata successiva selezionare la cartella contenente il Makefile di un progetto di esempio ne campo “Existing Code Location” e scegliere come “Toolchain for indexer settings” CrossGcc come ad esempio indicato di seguito

eclipse-import2Una volta caricato il progetto con il tasto destro sul nome del progetto si sceglie l’opzione properties

eclipse-project-propertiesSotto C/C++ Build–>Envinronment aggiungere la variabile

eclipse-batchAggiungere sempre nella medesima sezione la variabile IDF_PATH che punta all’SDK IDF scaricato

eclipse-idf-pathEditare la variabile PATH ed aggiungere il path ai bin del cross compilatore /home/sviluppo/Esp32/espressif/esp/xtensa-esp32-elf/bin

eclipse-pathAccedere sempre in “C/C++ General”–> “Preprocessor Include Paths”; scelgliere il tab Providers e cliccare su “CDT Cross GCC Built-in Compiler Settings”

eclipse-cross-cdtSostituire ${COMMAND}

eclipse-cross-cdt1con xtensa-esp32-elf-gcc

eclipse-cross-cdt2Accedere ora nei providers e scegliere “CDT GCC Build Output Parser”

eclipse-cross-cdt3ed inserire all’inizio del Compiler command pattern xtensa-esp32-elf-

eclipse-cross-cdt4Salvare le configurazioni.

Le impostazioni del progetto vanno fatte sempre da make menuconfig nella shell unix. Accedere nella shell ed impostare come GPIO del led da spegnere ed accendere il valore 2; questo perché nel nostro caso la scheda è una doit il cui design è illustrato nel presente documento

SchematicsforESP32

Accedere a Example configuration

blink-configurationed impostare il valore del gpio a 2

blink-gpioSalvare la configurazione. Riandare su Eclipse e procedere alla pulizia con

eclipse-clean-blinke successiva compilazione con Project–> Build

eclipse-build-blinkPer eseguire il flash del firmware da eclipse, selezionare il progetto e con il tasto destro scegliere Build Targets -> Create…

eclipse-create-targetInserire nel campo target il valore flash, lasciando di default tutto il resto

eclipse-create-target-flashA questo punto si procede al caricamento dell’immagine cliccando due volte sulla nuova voce flash all’interno dei target del progetto

eclipse-run-flash Le impostazioni per eseguire il flash devono essere impostate con make menuconfig, come visto nell’articolo precedente

ESP32 – Idf Sdk