Archivi tag: ESP8266

Blynk IoT – il modo più semplice per creare progetti IoT – lezione 2

Durante questa seconda lezione vedremo:

  • Prima configurazione di blynk.cloud
  • Creazione di un template per un’applicazione IoT per il controllo dell’accensione di un LED

Collegarsi al servizio blynk.cloud

Collegarsi all’indirizzo: https://blynk.cloud/
procedere alla registrazione gratuita ed effettuare il primo accesso

Se no avete un account, clic su “Create new account”.

Il servizio gratuito limita il numero di dispositivi connessi ed alcune funzionalità, ma per realizzare il controllo della nostra serra didattica la versione gratuità è sufficiente, deciderete poi voi se sarà il caso di attivare un piano a pagamento. Le sperimentazioni che propongo sono state realizzate con un piano di abbonamento gratuito.

Accedere al servizio

Sarete reindirizzati su questa pagina

La prima operazione da eseguire è quella di creazione di un nuovo template (nuovo modello), ma attendete un istante prima di procedere

Cos’è un template?

Nella versione precedente di Blynk il progetto IoT che si realizzava era vincolato ad una specifica scheda di controllo, nella nuova interfaccia Blynk ciò cambia, viene aggiunto un livello di astrazione maggiore mediante i “template”, che permettono di disegnare un modello di applicazione IoT mediante i widget che la piattaforma ci mette a disposizione, indipendente dalle schede di controllo, dopo di che saremo noi in una fase successiva ad applicare il modello sulla tecnologia (scheda di controllo) che disponiamo.

Per chi già in passato ha utilizzato Blynk capirà che tutto ciò diventa estremanente comodo, in quanto possiamo disegnare più modelli di applicazione IoT e poi applicarli alla bisogna sulla specifica scheda che disponiamo, o ancora costruire un template specifico e poi applicarlo su schede di deiverso tipo, astrazione potente che vedremo durante lo svolgimento delle lezioni.

L’interfacci online può essere prsonalizzata in più parti, ma lascio a voi le personalizzazioni, nel caso lasciate richieste nei commenti o scrivetemi direttamente.

Per imparare ad utilizzare la nuova piattaforma iniziamo con un programma semplicissimo: l’accensione e lo spegnimento di un LED mediante app su smartphone e mediante interfaccia web.

Continua a leggere

MicroPython – Python per microcontrollori – usarlo su BBC micro:bit – lezione 1

Da diverso tempo mi sto occupando di didattica con BBC micro:bit, una splendida scheda elettronica progettata appositamente per fare Coding a scuola, ben si adatta per studenti di scuola elementare, media e primi anni delle superiori. Su questo sito come saprete ho raccolto in una sezione specifica lezioni e sperimentazioni. Recentemente è stato aggiunto a Scratch, come segnalato in qualche tempo fa, il supporto a micro:bit quindi a livello didattico si potrebbero implementare percorsi interessanti che partono da Scratch, passano per JavaScript Blocks Editor per poi giungere a MicroPython.

Dal mio punto di vista MicroPython è il trampolino di lancio che mi permetterà di aggiungere sperimentazioni di automazione con microcontrollori, un modo naturale per realizzare continuità dal secondo anno dell’ITIS al terzo/quarto anno poi. Ovviamente non solo MicroPython, tanto C anche con Arduino, ma è essenziale per me aggiungere anche questa competenza.

MicroPython è una reinterpretazione di Python 3 per microcontrollori e sistemi embedded, inoltre Python è uno dei linguaggi di programmazione più belli, ottimo per la didattica ed averlo anche su sistemi elettronici rende incredibilmente divertente ed efficiente lo sviluppo di sistemi di controllo.

Per seguire queste brevi lezioni non bisogna essere professionisti nella programmazione di Python (anche io non programmo spesso in questo linguaggio) il percorso parte da un livello 0. Il mio obiettivo è quello di fornire uno strumento che poi invogli alla sperimentazione.

La documentazione è pensata per studenti ed insegnanti di ogni ordine e grado.

MicroPython non vuol dire solo micro:bit ma anche PyBoard, ESP8266/ESP 32 e molto altro.

Pertanto ho pensato di realizzare, nel limite del tempo didattico che posso dedicare a queste piattaforme un corso introduttivo, didascalico e spero semplice. Ciò che scriverò sarà indirizzato all’uso di micro:bit, ma con qualche impostazione iniziale, tutto si adatta benissimo anche alle altre piattaforme.

Da dove incominciare?

Nei link indicati sopra trovate i riferimenti essenziali, ma un libro fondamentale è: Programming with MicroPython – by Nicholas Tollervey and pyboard lite il link rimanda ad amazon.it, l’acquisto può essere fatto anche con la 18app o con la carta del docente.

Tutto il percorso si basa sull’ottimo lavoro realizzato da Mike Rowbitt con First Steps with MicroPython ne ho fatto in parte una traduzione ed in parte ho aggiunto altri argomenti ed esercizi.

Per essere informati sulle nuove versioni del manuale in lingua inglese sviluppato da Mike Rowbitt potete iscrivervi alla mailing list: microbit@python.org
(https://mail.python.org/mailman/listinfo/microbit).

Le mie lezioni sono in costruzione, conto di pubblicare almeno un paio di guide alla settimana in modo che per chi vorrà potrà prendere questi appunti reinterpretarli secondo le proprie necessità e realizzare un percorso nella seconda parte dell’anno scolastico.

I progetti e gli esercizi sviluppati in MicroPython su BBC micro:bit fanno uso di:

Mu – un semplice editor di codice, credo che sia il modo più semplice per incominciare a programmare in MicroPython su BBC micro:bit.

Vi invito quindi a scaricare l’editor “mu” per poter lavorare con le lezioni proposte.

Tutte le istruzioni per il download e l’installazione potete trovarle sul sito di riferimento, sono ben fatte e di facile comprensione.

Mu funziona con Windows, OSX and Linux (anche Raspberry Pi).

L’ultima versione di Mu vi permette di selezionare mediante il pulsante “Modes” la modalità di programmazione in funzione della piattaforma: Adafruit CircuitPython, BBC micro:bit, Pygame Zero, Python 3.

Una volta installato Mu selezionate il modo micro:bit, collegate il vostro micro:bit al computer tramite un cavo USB.

Il processo di scrittura è upload su micro:bit richiede pochi passaggi:

  • scrivete il vostro script nella finestra dell’editor
  • fate click sul pulsante “Flash” per trasferire il programma sul micro:bit.
  • se il trasferimento non avviene, assicurati che il vostro micro:bit appaia come periferica USB nel vostro file system.

Faremo queste operazioni tra breve scrivendo un semplicissimo programma.

Prima di andare oltre un richiamo sulle caratteristiche del micro:bit riprese dal corso introduttivo che trovate su questo sito.

La scheda BBC micro:bit è costituita da:

  • 25 LED rossi che possono essere utilizzati per comporre un testo o una icona stilizzata.
  • Due pulsanti programmabili (A e B) che possono essere utilizzati per dire a micro:bit quando si avvia o si interrompe un’operazione.
  • Un sensore di temperatura per rilevare la temperatura ambiente.
  • Un sensore di luce per rilevare le variazioni di luminosità ambientale.
  • Un accelerometro per rilevare un movimento.
  • Un magnetometro per rilevare la direzione del campo magnetico.
  • Connessione Radio e Bluetooth Low Energy per interagire con altri device.

Il primo programma – “Hello World!”

E’ possibile pensare al Coding con micro:bit come ad un ciclo costituito fa 4 fasi:

Il modo tradizionale per iniziare a programmare in una nuova lingua di programmazione è quello di far dire al computer “Hello, World!”.

Fare questo è semplice in MicroPython:

from microbit import *
display.scroll("Hello, World!")

Analizziamo le due linee di codice.

La prima linea:

from microbit import *

Nella prima riga viene richiesto a MicroPython tutto il materiale (codice) necessario per lavorare con micro:bit. Il codice richiesto è un modulo chiamato microbit  (un modulo è una libreria di codice preesistente). Quando fate l’import  (importate qualcosa), state dicendo a MicroPython che volete usarlo, “*” è il modo in cui Python dice tutto.
Quindi from microbit import *  significa, in inglese, “Voglio poter usare tutto ciò che è disponibile dalla libreria di codici microbit”.

Seconda linea:

display.scroll(“Hello, World!”)

dice a MicroPython di usare il display per far scorrere la stringa di caratteri.

La parte di codice display  permette la visualizzazione del testo Hello, World!  .

display  è un oggetto dal modulo microbit che rappresenta la visualizzazione fisica del testo “Hello, World!” sul dispositivo.

La parte di codice indicata con display  è un object (oggetto) del modulo microbit  che rappresenta il display fisico. Possiamo dire al display di eseguire l’operazione indicata fino al .  dopo il .  è presente qualcosa di molto simile ad un comando (che chiameremo metodo). In questo caso stiamo usando il metodo scroll  (scorrimento). Poiché scroll  ha necessità di sapere quali caratteri far scorrere sul display fisico, questi saranno specificati tra doppie virgolette () tra parentesi ( (  e )  ). Tutto ciò che è tra parentesi e tra le virgolette prende il nome di argomento. Quindi, display.scroll(“Hello, World!”)   significa, in inglese, “Voglio che tu usi il display per far scorrere il testo ‘Hello, World!'”. Se un metodo non ha bisogno di argomenti non inseriremo nulla tra parentesi: ()  .

Copiate all’interno dell’editor il codice “Hello, World!” ed eseguite l’upload sul vostro BBC micro:bit.

Siete in grado di capire come cambiare messaggio?

Potete farlo salutare? Ad esempio, potreste far dire “Ciao, Michele!”.
Suggerimento: è necessario modificare l’argomento del metodo di scroll. 🙂

Avvertimento

Potrebbe non funzionare 🙂

Nel caso in cui venga commesso un errore MicroPython ci viene in aiuto, in questo caso scorrerà sul display del micro:bit un messaggio di errore, sempre sul display apparirà il numero della linea di codice in cui è presente l’errore.

Python si aspetta che voi digitiate ESATTAMENTE il codice. Quindi, ad esempio l’istanza, Microbit  , microbit  e microBit  sono tutte cose diverse per Python. Se MicroPython restituisce un errore NameError  , probabilmente avete digitato qualcosa in modo non corretto.

Se MicroPython restituisce un SyntaxError  probabilmente avete scritto qualcosa che MicroPython non riesce a capire. Verificate che non manchino ad esempio i caratteri speciali   o :  .

Usiamo Mu

Colleghiamo il micro:bit al computer:

Utilizziamo Mu per codificare:

Un click sul pulsante Repl per estendere la finiestra di editing e visualizzare l’area in cui vengono mostrati i messaggi inviati dal micro:bit

Per trasferire il programma sul micro:bit click sul pulsante “Flash”:

Durante la fase di trasferimento del programma il led giallo di stato incomincia a lampeggiare al termine il micro:bit verrà disconnesso dal computer ed immediatamente il programma incomincerà a funzionare:

Nel caso in cui nel vostro programma sia presente un errore, nella parte bassa della finestra di editing vi verrà restituito un messaggio che indica il tipo di errore. Usando il comando help() potrete consultare una guida che vi aiuterà a risolvere il problema.

Nel caso di errore sul display del micro:bit apparirà il messaggio di errore.

Buon Coding a tutti 🙂

IoT a basso costo con un ESP 01 – una veloce introduzione per i miei studenti

Sto svolgendo in queste settimane un corso Arduino per i miei allievi di II’, ma gli impegni dei consigli di classe e le attività di vicepresidenza mi hanno portato a spostare un paio di lezioni e per farmi perdonare ho deciso di implementare velocemente una breve lezioni che generi l’effetto “waooo” 🙂 spero possa funzionareL’idea è quella di comandare la marcia e l’arresto di motori asincroni trifase (380 Vac) remotamente attraverso comandi dati da cellulare utilizzando tecnologia a basso costo.

Aggiungere funzionalità di controllo remoto via WiFi ai propri progetti Arduino è ormai diventato relativamente semplice e molto economico. E’ da qualche tempo che sto utilizzando i noti ESP8266 nella versione più economica ESP01 per effettuare esperimenti di domotica a basso costo. ESP8266 è un microcontrollore programmabile in una modalità molto simile a quanto viene fatto per Arduino è costituito da un circuito SoC (System on Chip) dalle dimensioni ridottissime (5 x 5 mm) e la scheda che lo ospita integra un’antenna WiFi.

05

Esistono diversi modelli di ESP che includono l’ESP8266 ad essi è stato assegnato un nome che ha la seguente struttura ESP-XX dove XX è un numero che in questo momento va da 01 a 13 e che sicuramente nei prossimi mesi sarà destinato ad aumentare. In generale numeri più alti indicano funzionalità e performance più elevate, ma sicuramente ad oggi la versione più diffusa per semplicità di utilizzo e costi resta ancora l’ESP01.

I modelli ESP differiscono uno dall’altro per le seguenti caratteristiche:

  • dimensioni del modulo;
  • memoria flash, esterna al chip e varia da 512 KByte fino a 4MByte;
  • numero di pin;
  • antenna WiFi stampata su scheda o su apposito connettore a cui collegare un’antenna

Nell’immagine che segue un elenco dei più diffusi moduli ESP disponibili:

famiglia-esp

In questa breve trattazione utilizzerò l’ESP01.

Continua a leggere

IoT con WeMos D1 Mini usando Arduino IDE e Blynk

Durante le mie attività di formazione più volte mi è giunta la richiesta da persone non professioniste del settore elettronico o informatico, la realizzazione di progetti elettronici in grado di interagire via WiFi. Svolgere tale attività può richiedere competenze di livello più elevato che ovviamente tutti possono acquisire, ma per non aggiungere scoraggiamento nella fase iniziale di apprendimento ed invogliare sempre di più a sperimentare progetti sempre più complessi è forse bene partire da qualcosa di semplice che sono sicuro farà “esplodere” la vostra fantasia 🙂

Per questa breve introduzione utilizzerò: Arduino IDE, Blynk con scheda WeMos D1 Mini

Blynk

Avevo fatto una breve segnalazione tempo fa. Blynk è un’applicazione (per dirla in informatiche meglio parlare di freamework) che consente mediante dispositivi mobili (iOS e Android) utilizzando un sistema completamente grafico la realizzazione dei propri widget per comandare ad esempio l’azionamento via WiFi di dispositivi di automazione industriale o implementare progetti di domotica, ma anche di rilevare grandezze fisiche esterne e visualizzarle direttamente sul vostro dispositivo mobile.
Blynk può interagire con Arduino o Raspberry Pi se connessi ad una WiFi o a moltissimi dispositivi basati su ESP8266, modulo WiFi dotato di Input/Output General Purpose e processore ARM. Attualmente sono disponibili una grande quantità di board basate su ESP identificate tutti da un ID da ESP-01 a ESP-13 e la differenza tra una scheda e l’altra dipende dalla quantità di memoria disponibile, il numero di GPIO e il tipo di antenna WiFi.

Wemos D1 Mini

Per darvi un’idea di cosa è la Wemos D1 Mini si potrebbe fare la seguente analogia (non me ne vogliano i puristi mi serve solo per dare l’idea per chi incomincia), immaginate un Arduino micro dotato di una connessione WiFi ad un costo di non più di € 5 che potrà essere programmato in modo grafico con Blynk oppure attraverso l’IDE Arduino o ancora con NodeMCU (vedremo più avanti).
Wemos D1 Mini ospita un ESP-12F, dispone di 11 pin I/O digitali, 1 ingresso analogico, tutti i pin I/O gestiscono interrupt, pwm, I2C e ISP e tutti i pin I/O funzionano con una tensione di alimentazione di 3,3V e dispone di una memoria di 4MB.

01

02

Nell’immagine sopra riportata noterete che il nome usato sulla scheda è diverso da quello utilizzato nell’IDE di Arduino, fate riferimento ai numeri scritti in verde in fase di programmazione.

06

07

Come si evince dalle immagini sopra inserite la scheda è dotata di un connettore micro USB che vi permette di caricare gli sketch, ciò non accade per altre tipologie di schede che necessitano di un debugger per il caricamento di programmi.

On-line potete trovare su diversi store una serie di shield (per un elenco completo seguire il link) che possono esser impilati su questa piccolissima scheda.

03La scheda in genere viene venduta con diverse tipologie di pin header non saldati: maschio, femmina, femmina impilabile e ciò vi permette di adattarla ad ogni tipologia di circuito.

04

E’ presente un pulsante di reset

05

Sul pin analogico è possibile leggere tensioni fino a 3,2 V.

La conversione USB a UART viene realizzata dal chip CH340G (ben visibile nell’immagine sopra), presente su moltissimi cloni Arduino cinesi tra cui gli economicissimi Arduino nano. Gli utenti windows potranno procedere tranquillamente scaricando i driver dal seguente link su cui trovate anche i driver per MacOS X, però se avete l’ultima versione di MacOS X  Sierra  (10.12.x) utilizzate la procedura ben dettagliata a questo link. Sempre per gli utenti Mac, nel caso abbiate installato una precedente versione del driver seguite la procedura che trovate al seguente link.

Vedremo nei successivi passaggi l’utilizzo di WeMos D1 con l’Arduino IDE e con Blynk. Continua a leggere

Blynk – liberi di creare applicazioni per i vostri progetti con Arduino, Raspberry Pi, ESP8266 e molto altro

blynk01

S proprio cos Blynk, come afferma il titolo di questo post, semplicit assoluta nel creare applicazioni e “governare l’elettronica” con estrema semplicit attraverso i vostri dispositivi mobili. I test che sto conducendo questa giornata mi confermano l’utilit del sistema ed aggiungono un mattoncino in pi a quanto insegno ai miei allievi. Grazie a Rossano M. che mi ha inviato la segnalazione e che mi chiede di risolvere alcuni dubbi sul suo utilizzo, cercher di rispondere in prossimi post.

blynk02

Blynknasce come progettofinanziato mediante Kickstarter e vi consente di controllare i vostri progetti elettronici attraverso dispositivi iOS e Android mediante apposite app per il controllo di Arduino, Raspberry Pi e altri dispositivi.

In estrema sintesi l’app dispone di una dashboard dove potrete costruire un’interfaccia per il vostro progetto semplicemente trascinando e rilasciando i widget.

Come affermato sul sito, confermo perch sperimentato, in 5 minuti sarete in grado di operare e in 5 minuti potrete capire cosa vuol dire Internet Of Your Things.

Partite dal Getting started dopo di che passate seguite i tutorial del sito di riferimento, sono ben fatti.

Buona sperimentazione a tutti.