Web Server con ESPertino

Web Server con ESPertino

ESPertino ha tra i suoi punti di forza la connettività, resa possibile grazie alla presenza del modulo Wroom32 integrato sulla scheda e capace di garantire la comunicazione wireless via WiFi e Bluetooth Low Energy. Nell’applicazione descritta nell’articolo (in pieno stile IoT), ESPertino implementerà un Web Server, a cui ci su potrà collegare tramite un comune browser per interrogare o comandare lo stato di led, relè, o altri sensori e attuatori collegati alla scheda.

Introduzione

La board ESPertino, visibile in Figura 1, rappresenta un’ottima soluzione per realizzare diversi tipi di applicazioni IoT. Tra le caratteristiche che la contraddistinguono, ricordiamo anzitutto la connettività wireless, con interfacce sia di tipo Bluetooth Low Energy (BLE), che WiFi. L’IoT (Internet of Things) immagina uno scenario in cui una moltitudine di dispositivi elettronici (con funzioni e caratteristiche differenti tra loro), sono tutti interconnessi a una rete, e in grado di scambiarsi informazioni in tempo reale.

Figura 1: la board di prototipazione rapida ESPertino, particolarmente indicata per le applicazioni IoT

Per supportare l’IoT, che a sua volta è stato prescelto come veicolo principale nel processo di attuazione dell’Industry 4.0, è quindi fondamentale e imprescindibile che il dispositivo sia dotato di un’interfaccia di comunicazione ad alta velocità, robusta, affidabile, e possibilmente dotata di un meccanismo di protezione (cifratura) per garantire la sicurezza dei dati trasmessi sulla rete. La board ESPertino possiede tutte queste caratteristiche, grazie alla presenza di un modulo integrato ESP32 (Figura 2).

Figura 2: il modulo ESP32-Wroom-32 integrato sulla board ESPertino

Il modulo ESP-32, progettato e prodotto da Espressif Systems, possiede delle caratteristiche hardware e funzionali di assoluto rilievo. Inoltre, il modulo possiede tutte le certificazioni necessarie alla sua operatività, per cui può immediatamente essere impiegato senza preoccuparsi di dover sottoporre il dispositivo a ulteriori test e verifiche di conformità. Ecco una breve sintesi delle caratteristiche tecniche del componente:

  • doppio microprocessore a basso assorbimento Xtensa® LX6 a 32 bit;
  • 448 Kb di memoria ROM per il boot e per le funzioni destinate al core;
  • 520 Kb di memoria SRAM integrata;
  • 8 Kb di memoria SRAM in RTC SLOW;
  • 8 Kb di memoria SRAM in RTC FAST;
  • 1 Kbit di memoria EFUSE, e 256 bit per il MAC;
  • interfaccia WiFi conforme a 802.11 b/g/n/d/e/i/k/r (802.11n fino a 150 Mbps);
  • interfaccia Bluetooth conforme alle specifiche v4.2 BR/EDR e BLE;
  • funzionamento Wi-Fi in modalità Station/softAP/SoftAP+station/P2P;
  • funzionalità per la sicurezza tramite WPA/WPA2/WPA2-Enterprise/WPS;
  • crittografia con algoritmi AES/RSA/ECC/SHA;
  • supporto ai protocolli IPv4, IPv6, SSL, TCP/UDP/HTTP/FTP/MQTT;
  • disponibilità di numerose interfacce e protocolli di comunicazione a livello hardware: scheda di memoria SD, UART, SPI, SDIO, I2C, PWM per pilotaggio di led, PWM per pilotaggio di motori, I2S, IR, GPIO, sensore touch capacitivo, ADC, DAC, sensore ad effetto Hall, sensore di temperatura;
  • temperatura operativa compresa tra -40 °C e +85 °C;
  • tensione operativa compresa tra 2,2 V e -3,6 V;
  • assorbimento: 80 mA (valore tipico);
  • dimensioni: 18 mm x 20 mm x 3 mm.

Oltre a queste caratteristiche tecniche di assoluto rispetto, il modulo presenta l’enorme vantaggio di essere programmabile utilizzando diversi linguaggi e ambienti di sviluppo integrati (Lua, Python, Arduino, ecc.). Sì, avete letto proprio bene, anche Arduino! Vista l’enorme diffusione e il successo riscontrati da Arduino (grazie anche alla sua semplicità di programmazione, che lo rende accessibili anche ai non “adepti”), alcuni appassionati hanno creato un plugin per l’IDE Arduino che permette di programmare il modulo Wroom-32 (e, di conseguenza, le board che lo integrano, come ESPertino). Per chi non avesse già installato questo plugin, ricordiamo che disponibile una descrizione esauriente sui passi da compiere.

L’applicazione oggetto di questo articolo prevede la creazione di un Web Server sulla board ESPertino, sfruttando le potenzialità messe a disposizione dal modulo Wroom-32. In particolare, vedremo come implementare un server a cui poter accedere via wireless (WiFi) da un dispositivo portatile (smartphone, tablet) o da un comune PC, utilizzando un comune browser di navigazione. Una volta collegati al web server, ESPertino ci invierà una pagina analoga a quella visualizzata in Figura 3.

Per questa applicazione (a cui ne seguiranno altre dello stesso tipo, ma più complesse e con l’utilizzo di ulteriori sensori ed attuatori), ci interessa verificare la funzionalità di web server utilizzando le risorse già disponibili sulla board, e più precisamente:

  • il led utente (user led), collegato al GPIO 5 del modulo. Per come è stato collegato sulla scheda ESPertino, questo led si accende quando l’uscita associata al pin 5 è bassa, e viceversa si spegne quando l’uscita associata al pin 5 è alta;
  • il relè 1, collegato al GPIO 12 del modulo. Per i relè, assumiamo che lo stato di uscita alta (HIGH) attivi il relè, mentre lo stato di uscita bassa (LOW) lo disattivi;
  • il relè 2, collegato al GPIO 14 del modulo. Valgono le stesse considerazioni fatte in pecedenza a proposito del relè 1.

La struttura della pagina web, visibile in Figura 3, ci permetterà di eseguire da remoto le seguenti operazioni:

  • modificare lo stato dell’uscita associata al GPIO 5, e quindi di accendere oppure spegnere il led utente;
  • monitorare lo stato (acceso oppure spento) del led utente;
  • modificare lo stato dell’uscita associata al GPIO 12, e quindi di attivare oppure disattivare il relè 1;
  • monitorare lo stato (attivato oppure disattivato) del relè 1;
  • modificare lo stato dell’uscita associata al GPIO 14, e quindi di attivare oppure disattivare il relè 2;
  • monitorare lo stato (attivato oppure disattivato) del relè 2.

Figura 3: struttura della pagina web attraverso cui interagire con il server residente su ESPertino

[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2679 parole ed è riservato agli abbonati MAKER. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e potrai fare il download (PDF) dell'EOS-Book del mese. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

54 Commenti

  1. Adriano Gandolfo 7 settembre 2017
  2. Giovanni Di Maria Giovanni Di Maria 7 settembre 2017
  3. Daniele Valanzuolo Daniele Valanzuolo 7 settembre 2017
  4. Riccardo Ventrella Riccardo Ventrella 7 settembre 2017
    • Davide Di Gesualdo Davide Di Gesualdo 7 settembre 2017
  5. Riccardo Ventrella Riccardo Ventrella 7 settembre 2017
    • Davide Di Gesualdo Davide Di Gesualdo 7 settembre 2017
  6. Riccardo Ventrella Riccardo Ventrella 7 settembre 2017
  7. Riccardo Ventrella Riccardo Ventrella 7 settembre 2017
  8. Stefano Lovati Stefano Lovati 7 settembre 2017
  9. Luca Giuliodori Luca Giuliodori 7 settembre 2017
    • Riccardo Ventrella Riccardo Ventrella 7 settembre 2017
  10. stefanovarano 11 settembre 2017
  11. BelMax 15 settembre 2017
    • Stefano Lovati Stefano Lovati 16 settembre 2017
  12. lorenzo55 18 settembre 2017
    • Stefano Lovati Stefano Lovati 18 settembre 2017
      • lorenzo55 18 settembre 2017
      • lorenzo55 19 settembre 2017
        • Stefano Lovati Stefano Lovati 19 settembre 2017
  13. Tito Cavuto cavutotito 19 settembre 2017
  14. Tito Cavuto Tito Cavuto 20 settembre 2017
    • Stefano Lovati Stefano Lovati 20 settembre 2017
      • Riccardo Ventrella Riccardo Ventrella 21 settembre 2017
        • Stefano Lovati Stefano Lovati 21 settembre 2017
          • Riccardo Ventrella Riccardo Ventrella 21 settembre 2017
  15. ZioTo73 5 ottobre 2017
    • Stefano Lovati Stefano Lovati 5 ottobre 2017
  16. claudio51 12 ottobre 2017
  17. Stefano Lovati Stefano Lovati 12 ottobre 2017
    • Riccardo Ventrella Riccardo Ventrella 12 ottobre 2017
      • Riccardo Ventrella Riccardo Ventrella 12 ottobre 2017
  18. Stefano Lovati Stefano Lovati 12 ottobre 2017
  19. Riccardo Ventrella Riccardo Ventrella 12 ottobre 2017
    • Riccardo Ventrella Riccardo Ventrella 12 ottobre 2017
  20. claudio51 12 ottobre 2017
    • Stefano Lovati Stefano Lovati 12 ottobre 2017
  21. Stefano Lovati Stefano Lovati 12 ottobre 2017
    • Riccardo Ventrella Riccardo Ventrella 12 ottobre 2017
      • Stefano Lovati Stefano Lovati 12 ottobre 2017
        • Riccardo Ventrella Riccardo Ventrella 12 ottobre 2017
  22. claudio51 13 ottobre 2017
    • Stefano Lovati Stefano Lovati 13 ottobre 2017
      • Stefano Lovati Stefano Lovati 13 ottobre 2017
  23. ZioTo73 13 ottobre 2017
  24. claudio51 14 ottobre 2017
    • Riccardo Ventrella Riccardo Ventrella 14 ottobre 2017
    • Riccardo Ventrella Riccardo Ventrella 14 ottobre 2017
    • Stefano Lovati Stefano Lovati 21 ottobre 2017
  25. claudio51 22 ottobre 2017
    • Stefano Lovati Stefano Lovati 29 ottobre 2017
  26. ZioTo73 23 ottobre 2017
  27. claudio51 29 ottobre 2017
  28. claudio51 7 novembre 2017

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *