Sommario:

IOT123 - ASSIMILAZIONE HUB SENSORE: PERSONALIZZAZIONE WEBSEREVER ICOS10: 11 passaggi
IOT123 - ASSIMILAZIONE HUB SENSORE: PERSONALIZZAZIONE WEBSEREVER ICOS10: 11 passaggi

Video: IOT123 - ASSIMILAZIONE HUB SENSORE: PERSONALIZZAZIONE WEBSEREVER ICOS10: 11 passaggi

Video: IOT123 - ASSIMILAZIONE HUB SENSORE: PERSONALIZZAZIONE WEBSEREVER ICOS10: 11 passaggi
Video: Nuovi lettori accessi per hotel e B&B | S1E11 webinar Kblue Academy 2024, Novembre
Anonim
IOT123 - ASSIMILA SENSOR HUB: WEBSEREVER DI PERSONALIZZAZIONE ICOS10
IOT123 - ASSIMILA SENSOR HUB: WEBSEREVER DI PERSONALIZZAZIONE ICOS10
IOT123 - ASSIMILA SENSOR HUB: WEBSEREVER DI PERSONALIZZAZIONE ICOS10
IOT123 - ASSIMILA SENSOR HUB: WEBSEREVER DI PERSONALIZZAZIONE ICOS10
IOT123 - ASSIMILA SENSOR HUB: WEBSEREVER DI PERSONALIZZAZIONE ICOS10
IOT123 - ASSIMILA SENSOR HUB: WEBSEREVER DI PERSONALIZZAZIONE ICOS10

Gli slave ASSIMILA SENSOR/ACTOR incorporano i metadati utilizzati per le visualizzazioni di definizione in Crouton. Questa build aggiunge un server web al Master ESP8266, serve alcuni file di configurazione che possono essere modificati dall'utente, quindi utilizza quei file per ridefinire le visualizzazioni. Quindi i nomi delle schede dashboard e la maggior parte delle proprietà configurabili possono essere modificati. Questo era necessario ad es. il DHT11 pubblica le proprietà di Temperatura e Umidità: se un sito ha più nodi con sensori DHT11 separati non si possono chiamare tutti Temperatura (Garage Temp., Yard Temp…). La restrizione della lunghezza dei metadati impostata dal Bus I2C (16 caratteri) non esiste ed è possibile applicare valori più ricchi (fino a 64 caratteri).

L'autenticazione di base facoltativa è configurabile per la pagina Web di modifica, nonché un elenco di esclusione dall'autenticazione per altre risorse.

Su una scheda figlia esistente è stato sviluppato anche un interruttore low-side che spegne gli slave quando necessario.

Come nota tecnica, prima di iniziare questa build l'impronta di memoria era del 70% a causa di un grafico di oggetti metadati globali. L'ultima libreria AssimilateBus ha subito modifiche sostanziali che disaccoppiano la variabile globale in file JSON più piccoli salvati su SPIFFS. Ciò ha riportato l'impronta a ~50%, che è più sicura per tutta l'analisi/costruzione JSON. La libreria AssimilateBusSlave rimane la stessa (ASSIM_VERSION 2) durante queste modifiche.

CARATTERISTICHE E VISIONE

Attualmente gli Slave (sensori e attori) sono autonomi e si basano su messaggi I2C basati su convenzioni per leggere le proprietà o agire sui comandi. Il Master preleva i metadati e le proprietà dagli slave e li invia a un broker MQTT. Avvia anche un server web e serve file JSON che possono essere modificati per configurare il master e personalizzare i metadati/proprietà che alla fine vengono consumati da Crouton. I singoli sensori/attori vengono letti/comandati tramite Crouton senza che il master abbia alcuna conoscenza preliminare di ciò che fanno gli slave.

Uno degli obiettivi di ASSIMILATE IOT NETWORK è personalizzare Crouton in modo che gli editor di mashup serviti dai server web IOT NODE (come questa build), vengano aggiunti come componenti web che daranno il controllo completo di ciò che fa la cosa, cioè il master non è programmato, gli schiavi hanno set di funzionalità di base ma la dashboard di Crostino incorpora tutte le regole di business necessarie per eseguire la cosa!

La forcella Crouton è vista come un'opzione per il controllo/configurazione decentralizzata delle cose. In sostanza, qualsiasi combinazione client/GUI MQTT può amministrare le tue cose, poiché ogni funzione (sensori e attori) è esposta come endpoint MQTT.

Passaggio 1: crostino

Crostino
Crostino
Crostino
Crostino

Crostino. https://crouton.mybluemix.net/ Crouton è una dashboard che ti consente di visualizzare e controllare i tuoi dispositivi IOT con una configurazione minima. In sostanza, è la dashboard più semplice da configurare per qualsiasi appassionato di hardware IOT utilizzando solo MQTT e JSON.

Gli ASSIMILATE SLAVES (sensori e attori) hanno metadati e proprietà incorporati che il master usa per costruire il pacchetto json deviceInfo che Crouton usa per costruire il dashboard. L'intermediario tra ASSIMILATE NODES e Crouton è un broker MQTT compatibile con i websockets: Mosquito viene utilizzato per la demo.

Quando ASSIMILATE MASTER (questa build) richiede proprietà, formatta i valori di risposta nel formato richiesto per gli aggiornamenti di Crostino.

Passaggio 2: il server web/editor

Il Webserver / Editor
Il Webserver / Editor
Il Webserver / Editor
Il Webserver / Editor

All'avvio del Master (questa build) viene avviato un server Web incorporato. L'indirizzo IP viene inviato alla console seriale; eventualmente questo verrà pubblicato nella dashboard di Crostino.

Quando si accede all'URL indicato, verrà caricato l'EDITOR ACE:

Ace è un editor di codice integrabile scritto in JavaScript. Corrisponde alle caratteristiche e alle prestazioni di editor nativi come Sublime, Vim e TextMate.

Ace è popolare tra i server Web incorporati e offre una buona interfaccia per la modifica e il salvataggio dei file JSON.

Facendo clic su un nome di file a sinistra si leggerà il file da SPIFFS su ESP8266 e si caricherà il contenuto per la modifica a destra. Il file può essere salvato dalla barra degli strumenti in alto.

Per caricare un file:

  1. Scegli File dal tuo file system locale.
  2. Inserisci un percorso della cartella (se necessario) nella casella di testo.
  3. Fare clic su Carica.
  4. Ricarica la pagina.

Passaggio 3: personalizzazione del dispositivo

Personalizzazione del dispositivo
Personalizzazione del dispositivo

La configurazione del dispositivo (ESP8266) viene eseguita tramite il file device.json.

Alcune di queste voci (wifi_ssid, wifi_key) dovranno essere modificate prima di caricare i dati su SPIFFS (ESP8266 Sketch Data Upload).

Naviga fino alla radice del server web (mostrato nell'output della console come

LA MODIFICA

Nell'EDITOR ACE scegli config/device.json.

Le voci sono:

  • www_auth_username: nome utente di autorizzazione per i file del server web (vuoto per non autorizzazione).
  • www_auth_password: password di autorizzazione per i file del server web (se definito come nome utente).
  • www_auth_exclude_files: elenco delimitato da punto e virgola dei percorsi dei file da escludere dai controlli di autorizzazione (se definito come nome utente).
  • sensor_interval: i millisecondi tra le pubblicazioni dei dati al Broker MQTT.
  • ntp_server_name: il nome del server orario da utilizzare.
  • time_zone: l'offset in ore per la tua ora locale.
  • wifi_ssid: l'SSID del tuo punto di accesso locale.
  • wifi_key: la chiave da utilizzare per l'SSID.
  • mqtt_broker: l'indirizzo del broker MQTT.
  • mqtt_username: il nome utente da utilizzare per il broker MQTT (vuoto perché non è necessario alcun account).
  • mqtt_password: la password da utilizzare dal nome utente MQTT.
  • mqtt_port: la porta del broker MQTT.
  • mqtt_device_name: il nome da utilizzare per gli argomenti MQTT e l'identificazione del crostino.
  • mqtt_device_description: la descrizione del dispositivo mostrato in Crouton.
  • viz_color: il colore per identificare le carte dispositivo in Crostino (nella versione fork)

Passaggio 4: personalizzazione della proprietà

Personalizzazione della proprietà
Personalizzazione della proprietà
Personalizzazione della proprietà
Personalizzazione della proprietà
Personalizzazione della proprietà
Personalizzazione della proprietà

Ciascuno degli Slave ha un array di strutture nvc definito nel file definitions.h:

//--------------------------------------- PROPRIETÀ PUBBLICATE

nvc props[2] ={ {"Umidità", "", vero}, {"Temperatura", "", falso} }; //--------------------------------------- FINE PROPRIETÀ PUBBLICATE

Ciascuna delle voci ha un indice con il primo 0 (zero).

La personalizzazione del nome della proprietà viene eseguita tramite il file user_props.json.

Naviga fino alla radice del server web (mostrato nell'output della console come

LA MODIFICA

Nell'EDITOR ACE scegli config/user_props.json (o caricane uno).

La struttura è:

La prima chiave è l'Indirizzo dello Slave nel file definitions.h identificato da:

#define ADDRESS_SLAVE XX

  • Il livello di chiavi successivo è l'indice della proprietà.
  • Il valore di quella chiave è il Nome proprietà da utilizzare in Crostino invece del Nome proprietà definito nel file delle definizioni.

Passaggio 5: personalizzazione dei metadati

Personalizzazione dei metadati
Personalizzazione dei metadati
Personalizzazione dei metadati
Personalizzazione dei metadati
Personalizzazione dei metadati
Personalizzazione dei metadati
Personalizzazione dei metadati
Personalizzazione dei metadati

A causa della quantità di personalizzazioni possibili, ogni slave ha il proprio file di modifica dei metadati. I file devono essere nel formato user_metas_.json.

L'indirizzo dello slave si trova nel file definitions.h negli sketch ATTINY85:

#define ADDRESS_SLAVE XX

I metadati sono definiti nello stesso file in questo modo:

const static char viz1 PROGMEM = "VIZ_CARD_TYPE";

const static char viz2 PROGMEM = "2:chart-donut"; const static char viz3 PROGMEM = "1";

La prima riga è il nome dell'elemento di metadati.

La seconda riga è il valore. Generalmente ha un suffisso indice di proprietà.

La terza riga è il flag di continuazione. 1 - continua, 0 - fine dei metadati (VCC_MV).

Naviga fino alla radice del server web (mostrato nell'output della console come

LA MODIFICA

Nell'EDITOR ACE scegli config/user_metas_SLAVE_ADDRESS.json (o caricane uno). La struttura è:

  • Un array di coppie nome/valore.
  • Nome è il nome dell'elemento di metadati da modificare.
  • Il valore è il cambiamento. Il suffisso dell'indice viene controllato per la sostituzione.

Passaggio 6: materiali e strumenti

Materiali e strumenti
Materiali e strumenti
Materiali e strumenti
Materiali e strumenti
Materiali e strumenti
Materiali e strumenti

Distinta materiali Shell ICOS10 (IDC)

  1. D1M BLOCK Pin Jig (1)
  2. D1M BLOCK base e custodia (1)
  3. Wemos D1 Mini (1)
  4. Scudo Wemos D1 Mini Protoboard (1)
  5. Intestazioni femmina 40P (8P, 8P, 9P, 9P)
  6. Testata maschio 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. Scheda prototipi bifacciale da 1" (2)
  8. 2N7000 NFET (1)
  9. Connettore maschio IDC schermato a 6 pin (1)
  10. Cavo di collegamento (~10)
  11. Filo stagnato da 0,5 mm (~4)
  12. Viti autofilettanti a testa bombata 4G x 15 mm (2)
  13. Viti a testa svasata autofilettanti 4G x 6mm (~20)
  14. Saldare e Ferro (1)

Passaggio 7: preparazione dell'MCU

Image
Image
Preparazione MCU
Preparazione MCU

In questa build utilizziamo il Wemos D1 Mini. Se hai già creato un BLOCCO WIFI D1M, puoi utilizzarlo per il componente hardware modulare. In caso contrario, come minimo seguire la sezione successiva.

SALDARE I PIN DELL'INTESTAZIONE SULL'MCU (usando il PIN JIG)Se non puoi stampare un PIN JIG basta seguire le istruzioni e improvvisare: l'altezza (offset) del PIN JIG è di 6,5 mm.

  1. Stampa/ottieni un PIN JIG da questa pagina.
  2. Inserisci i pin dell'intestazione attraverso la parte inferiore della scheda (TX destra-sinistra) e nella maschera di saldatura.
  3. Premere i perni verso il basso su una superficie piana e dura.
  4. Premi con decisione la tavola sul jig.
  5. Saldare i 4 perni angolari.
  6. Riscaldare e riposizionare la scheda/i piedini se necessario (scheda o piedini non allineati o a piombo).
  7. Saldare il resto dei pin.

CARICAMENTO DEL FIRMWARE

Il repository del codice può essere trovato qui (istantanea).

Uno ZIP della biblioteca può essere trovato qui (istantanea).

Istruzioni per "Importare una libreria ZIP" qui.

Una volta installata la libreria è possibile aprire l'esempio "mqtt_crouton_esp8266_customization_webserver".

Istruzioni per configurare Arduino per Wemos D1 Mini qui.

Dipendenze: ArduinoJson, TimeLib, PubSubClient, NeoTimer (vedere gli allegati se si verificano modifiche ai repository).

CARICA SU SPIFFS

Una volta che il codice è stato caricato nell'IDE Arduino, apri device.json nella cartella data/config:

  1. Modifica il valore di wifi_ssid con il tuo SSID WiFi.
  2. Modifica il valore di wifi_key con la tua chiave WiFi.
  3. Modifica il valore di mqtt_device_name con il tuo Device Identification preferito (nessuna unione necessaria).
  4. Modifica il valore di mqtt_device_description con la tua Device Description preferita (in Crostino).
  5. Salva device.json.
  6. Carica i file di dati su SPIFFS.

Passaggio 8: preparazione dell'alloggiamento MCU

Image
Image
Preparazione dell'alloggiamento MCU
Preparazione dell'alloggiamento MCU
Preparazione dell'alloggiamento MCU
Preparazione dell'alloggiamento MCU

L'alloggiamento dell'MCU espone le intestazioni per il collegamento del D1 Mini e le intestazioni per le schede figlie che comunicano con il circuito Socket (sensori e attori).

HOUSING HEADERS Si basa su una Mini Protoboard D1 e presenta questi pin:

  1. Pin per il D1M WIFI BLOCK/D1 Mini a cui connettersi.
  2. Sblocchi diretti delle 2 file di contatti del D1M WIFI BLOCK/D1 Mini. Questi sono disponibili solo per comodità durante la prototipazione. Si prevede che le schede figlie bloccheranno tutti gli accessi a queste intestazioni.
  3. 4 Breakout dei pin specifici utilizzati dalle schede figlie.

Per aggiungere i contatti D1M all'INTESTAZIONE DELL'HOUSING:

  1. Guarda il video SALDARE UTILIZZANDO LA DIMA A PRESA.
  2. Fai passare i pin dell'intestazione attraverso la parte inferiore della scheda (TX in alto a sinistra sul lato superiore).
  3. Inserire la maschera sulla testata in plastica e livellare entrambe le superfici.
  4. Capovolgere la maschera e il gruppo e premere saldamente la testata su una superficie piana e dura.
  5. Premi con decisione la tavola sul jig.
  6. Saldare i 4 pin angolari usando una saldatura minima (solo allineamento temporaneo dei pin).
  7. Riscaldare e riposizionare la scheda/i piedini se necessario (scheda o piedini non allineati o a piombo).
  8. Saldare il resto dei pin.
  9. Rimuovere la maschera.
  10. Tagliare i pin sopra le saldature.

Per aggiungere i breakout della scheda figlia:

  1. Tagliare 4 intestazioni femminili 9P.
  2. Nella parte superiore, inserire le intestazioni 9P come mostrato e saldare in basso.

Per aggiungere i breakout diretti:

  1. Tagliare 2 intestazioni femminili 8P.
  2. Nella parte superiore, inserire le intestazioni 8P come mostrato e saldare in basso.

Per collegare le intestazioni, in basso con il pin TX rivolto verso l'alto:

  1. Traccia e salda dal pin RST su 4 pin.
  2. Traccia e salda dal pin A0 su 4 pin.
  3. Traccia e salda dal pin D1 su 4 pin.
  4. Traccia e salda dal pin D2 su 4 pin.
  5. Traccia e salda dal pin D0 verso il basso di 2 file e attraverso 4 pin.
  6. Traccia e salda dal pin D7 su 4 pin.
  7. Traccia e salda dal pin GND su 4 pin.
  8. Traccia e salda dal pin 5V su 4 pin.
  9. Traccia e salda dal pin 3V3 verso il basso di 45° su 4 pin.

MONTAGGIO DELL'APPARECCHIO

L'HOUSING HEADERS è fissato all'HOUSING MCU e questo è fissato alla PIASTRA DI BASE.

  1. Con il lato lungo delle INTESTAZIONI DELL'ALLOGGIAMENTO puntato verso il foro, inserire i CONTATTI D1M nelle aperture dell'ALLOGGIAMENTO MCU e spingere verso il basso a filo.
  2. Inserire l'MCU sui CONTATTI MCU durante il fissaggio per garantire il corretto allineamento.
  3. Posizionare il TELAIO DELL'INTESTAZIONE sulla parte superiore dei dispositivi di montaggio e fissarlo con 2 viti da 4G x 16 mm.
  4. Posizionare gli apparecchi assemblati con il foro rivolto verso il lato corto e fissarli con le viti 4G x 6 mm.

Passaggio 9: creazione della scheda figlia dell'interruttore lato inferiore/RESET degli slave

Costruire la scheda figlia dell'interruttore low-side/RESET degli slave
Costruire la scheda figlia dell'interruttore low-side/RESET degli slave
Costruire la scheda figlia dell'interruttore low-side/RESET degli slave
Costruire la scheda figlia dell'interruttore low-side/RESET degli slave
Costruire la scheda figlia dell'interruttore low-side/RESET degli slave
Costruire la scheda figlia dell'interruttore low-side/RESET degli slave

Questo è un miglioramento dell'ultima build sviluppata dalla scheda figlia REST. Questo aggiunge un interruttore low-side che collega gli slave a GROUND. Se il master viene resettato, anche gli slave lo faranno e l'inizializzazione che propaga i metadati ricomincerà.

MONTAGGIO

  1. All'interno, inserire i connettori maschio 90° 9P (1), il collettore maschio 90° 1P (2), il 2N7000 (3) e saldare all'esterno.
  2. All'interno, traccia un filo giallo da GIALLO1 a GIALLO2 e salda.
  3. All'interno, traccia un filo nudo da SILVER1 a SILVER2 e salda.
  4. All'interno, traccia un filo nudo da SILVER3 a SILVER4 e salda.

Passaggio 10: assemblaggio dei componenti principali

Assemblaggio dei componenti principali
Assemblaggio dei componenti principali
Assemblaggio dei componenti principali
Assemblaggio dei componenti principali
Assemblaggio dei componenti principali
Assemblaggio dei componenti principali
Assemblaggio dei componenti principali
Assemblaggio dei componenti principali
  1. Assicurarsi che SHELL sia stato costruito e che il circuito sia stato testato (cavo e prese).
  2. Sostituisci l'intestazione 2P maschio sulla scheda FIGLIA 3V3 I2C con un'intestazione maschio 2P 90º 1P.
  3. Inserire la SCHEDA FIGLIA 3V3 I2C, con il pin 3V3 sull'estremità frastagliata delle intestazioni (vedi foto).
  4. Inserire la SCHEDA FIGLIA INTERRUTTORE/RESET BASSO, con il cavo verso l'interno (vedi foto).
  5. Traccia un vantaggio Dupont tra l'intestazione maschio 90º 1P sulla SCHEDA FIGLIA RESET alla SCHEDA FIGLIA 3V3 I2C.
  6. Inserire la presa IDC dal CAVO SHELL nell'intestazione IDC sulla SCHEDA FIGLIA 3V3 I2C.
  7. Inserire con cautela le PAVIMENTI/CUSTODIA FIGLIE tra i cavi della SCOCCA e allineare i fori della base.
  8. Fissare il GRUPPO BASE allo SCOCCA con le viti 4G x 6mm.
  9. Collega tutti i SENSORI ASSIMILA che hai creato.

Passaggio 11: passaggi successivi

Image
Image
Prossimi passi
Prossimi passi
Prossimi passi
Prossimi passi
  1. Punta il tuo browser su
  2. Assicurati che il broker sia test.mosquitto.org.
  3. Fare clic su Connetti.
  4. Immettere l'input del nome del dispositivo come mqtt_device_name nel file /config/device.json.
  5. Fare clic su Aggiungi dispositivo.
  6. Fare clic su Connessione automatica.
  7. Accendi il tuo ICOS10 (5V MicroUSB).
  8. Verifica tramite la dashboard di Crostino.

Consigliato: