Sommario:
- Passaggio 1: crostino
- Passaggio 2: il server web/editor
- Passaggio 3: personalizzazione del dispositivo
- Passaggio 4: personalizzazione della proprietà
- Passaggio 5: personalizzazione dei metadati
- Passaggio 6: materiali e strumenti
- Passaggio 7: preparazione dell'MCU
- Passaggio 8: preparazione dell'alloggiamento MCU
- Passaggio 9: creazione della scheda figlia dell'interruttore lato inferiore/RESET degli slave
- Passaggio 10: assemblaggio dei componenti principali
- Passaggio 11: passaggi successivi
Video: IOT123 - ASSIMILAZIONE HUB SENSORE: PERSONALIZZAZIONE WEBSEREVER ICOS10: 11 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
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. 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
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:
- Scegli File dal tuo file system locale.
- Inserisci un percorso della cartella (se necessario) nella casella di testo.
- Fare clic su Carica.
- Ricarica la pagina.
Passaggio 3: 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à
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
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
Distinta materiali Shell ICOS10 (IDC)
- D1M BLOCK Pin Jig (1)
- D1M BLOCK base e custodia (1)
- Wemos D1 Mini (1)
- Scudo Wemos D1 Mini Protoboard (1)
- Intestazioni femmina 40P (8P, 8P, 9P, 9P)
- Testata maschio 90º (3P, 3P, 3P, 2P, 1P, 2P)
- Scheda prototipi bifacciale da 1" (2)
- 2N7000 NFET (1)
- Connettore maschio IDC schermato a 6 pin (1)
- Cavo di collegamento (~10)
- Filo stagnato da 0,5 mm (~4)
- Viti autofilettanti a testa bombata 4G x 15 mm (2)
- Viti a testa svasata autofilettanti 4G x 6mm (~20)
- Saldare e Ferro (1)
Passaggio 7: preparazione dell'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.
- Stampa/ottieni un PIN JIG da questa pagina.
- Inserisci i pin dell'intestazione attraverso la parte inferiore della scheda (TX destra-sinistra) e nella maschera di saldatura.
- Premere i perni verso il basso su una superficie piana e dura.
- Premi con decisione la tavola sul jig.
- Saldare i 4 perni angolari.
- Riscaldare e riposizionare la scheda/i piedini se necessario (scheda o piedini non allineati o a piombo).
- 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:
- Modifica il valore di wifi_ssid con il tuo SSID WiFi.
- Modifica il valore di wifi_key con la tua chiave WiFi.
- Modifica il valore di mqtt_device_name con il tuo Device Identification preferito (nessuna unione necessaria).
- Modifica il valore di mqtt_device_description con la tua Device Description preferita (in Crostino).
- Salva device.json.
- Carica i file di dati su SPIFFS.
Passaggio 8: 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:
- Pin per il D1M WIFI BLOCK/D1 Mini a cui connettersi.
- 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.
- 4 Breakout dei pin specifici utilizzati dalle schede figlie.
Per aggiungere i contatti D1M all'INTESTAZIONE DELL'HOUSING:
- Guarda il video SALDARE UTILIZZANDO LA DIMA A PRESA.
- Fai passare i pin dell'intestazione attraverso la parte inferiore della scheda (TX in alto a sinistra sul lato superiore).
- Inserire la maschera sulla testata in plastica e livellare entrambe le superfici.
- Capovolgere la maschera e il gruppo e premere saldamente la testata su una superficie piana e dura.
- Premi con decisione la tavola sul jig.
- Saldare i 4 pin angolari usando una saldatura minima (solo allineamento temporaneo dei pin).
- Riscaldare e riposizionare la scheda/i piedini se necessario (scheda o piedini non allineati o a piombo).
- Saldare il resto dei pin.
- Rimuovere la maschera.
- Tagliare i pin sopra le saldature.
Per aggiungere i breakout della scheda figlia:
- Tagliare 4 intestazioni femminili 9P.
- Nella parte superiore, inserire le intestazioni 9P come mostrato e saldare in basso.
Per aggiungere i breakout diretti:
- Tagliare 2 intestazioni femminili 8P.
- 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:
- Traccia e salda dal pin RST su 4 pin.
- Traccia e salda dal pin A0 su 4 pin.
- Traccia e salda dal pin D1 su 4 pin.
- Traccia e salda dal pin D2 su 4 pin.
- Traccia e salda dal pin D0 verso il basso di 2 file e attraverso 4 pin.
- Traccia e salda dal pin D7 su 4 pin.
- Traccia e salda dal pin GND su 4 pin.
- Traccia e salda dal pin 5V su 4 pin.
- 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.
- 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.
- Inserire l'MCU sui CONTATTI MCU durante il fissaggio per garantire il corretto allineamento.
- Posizionare il TELAIO DELL'INTESTAZIONE sulla parte superiore dei dispositivi di montaggio e fissarlo con 2 viti da 4G x 16 mm.
- 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
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
- All'interno, inserire i connettori maschio 90° 9P (1), il collettore maschio 90° 1P (2), il 2N7000 (3) e saldare all'esterno.
- All'interno, traccia un filo giallo da GIALLO1 a GIALLO2 e salda.
- All'interno, traccia un filo nudo da SILVER1 a SILVER2 e salda.
- All'interno, traccia un filo nudo da SILVER3 a SILVER4 e salda.
Passaggio 10: assemblaggio dei componenti principali
- Assicurarsi che SHELL sia stato costruito e che il circuito sia stato testato (cavo e prese).
- Sostituisci l'intestazione 2P maschio sulla scheda FIGLIA 3V3 I2C con un'intestazione maschio 2P 90º 1P.
- Inserire la SCHEDA FIGLIA 3V3 I2C, con il pin 3V3 sull'estremità frastagliata delle intestazioni (vedi foto).
- Inserire la SCHEDA FIGLIA INTERRUTTORE/RESET BASSO, con il cavo verso l'interno (vedi foto).
- Traccia un vantaggio Dupont tra l'intestazione maschio 90º 1P sulla SCHEDA FIGLIA RESET alla SCHEDA FIGLIA 3V3 I2C.
- Inserire la presa IDC dal CAVO SHELL nell'intestazione IDC sulla SCHEDA FIGLIA 3V3 I2C.
- Inserire con cautela le PAVIMENTI/CUSTODIA FIGLIE tra i cavi della SCOCCA e allineare i fori della base.
- Fissare il GRUPPO BASE allo SCOCCA con le viti 4G x 6mm.
- Collega tutti i SENSORI ASSIMILA che hai creato.
Passaggio 11: passaggi successivi
- Punta il tuo browser su
- Assicurati che il broker sia test.mosquitto.org.
- Fare clic su Connetti.
- Immettere l'input del nome del dispositivo come mqtt_device_name nel file /config/device.json.
- Fare clic su Aggiungi dispositivo.
- Fare clic su Connessione automatica.
- Accendi il tuo ICOS10 (5V MicroUSB).
- Verifica tramite la dashboard di Crostino.
Consigliato:
Sensore del respiro fai-da-te con Arduino (sensore elastico conduttivo a maglia): 7 passaggi (con immagini)
Sensore del respiro fai-da-te con Arduino (sensore elastico a maglia conduttiva): questo sensore fai-da-te assumerà la forma di un sensore elastico a maglia conduttiva. Si avvolgerà attorno al tuo torace/stomaco e quando il tuo torace/stomaco si espande e si contrae, anche il sensore e, di conseguenza, i dati di input che vengono inviati ad Arduino. Così
Personalizzazione del visualizzatore PulseSensor per attivare l'evento (monitoraggio anti-produttività): 8 passaggi
Personalizzazione di PulseSensor Visualizer per attivare un evento (monitoraggio anti-produttività): in questo tutorial imparerai come modificare il programma PulseSensor Visualizer per attivare un evento in un browser web. Chiamo questo progetto l'Anti Productivity Monitor perché mentre abbiamo molti strumenti che ci aiutano a monitorare i nostri parametri vitali
IOT123 - HUB SENSORE ASSIMILA: ICOS10 GENERIC SHELL (HOOKUP WIRE) Assemblaggio: 4 passaggi
IOT123 - HUB SENSORE ASSIMILA: ICOS10 GENERIC SHELL (HOOKUP WIRE) Assemblaggio: AGGIORNAMENTO Si consiglia di utilizzare il circuito IDC (non HOOKUP) per una maggiore affidabilità. Questo assieme HOOKUP va bene per operazioni non mission-critical se hai tempo per verificare il circuito. Ho trovato alcuni fili (strato superiore dei pannelli: rosso/giallo) non abbastanza lunghi
Personalizzazione e miglioramento di una tastiera rotta: 4 passaggi
Personalizzazione e miglioramento di una tastiera rotta: quindi molte persone conoscono i videogiochi e alcuni giocano con una tastiera e un mouse, quello che ho deciso di fare è creare una tastiera retroilluminata perché ho visto questa tastiera davvero fantastica con le luci su di essi. Userò anche dei lego e
Facile personalizzazione della cancelleria Apple Mail: 10 passaggi (con immagini)
Facile personalizzazione della cancelleria Apple Mail: in questo Instructable, dimostrerò un processo per de-gender la cancelleria per l'annuncio della nascita aggiungendovi versioni rosa e gialle. Avrai bisogno di Photoshop o di un editor simile per apportare le modifiche grafiche. Sarebbe anche opportuno che io