Sommario:

AtmoScan: 7 passaggi (con immagini)
AtmoScan: 7 passaggi (con immagini)

Video: AtmoScan: 7 passaggi (con immagini)

Video: AtmoScan: 7 passaggi (con immagini)
Video: Плетение сиденья из тростника методом 7 шагов 2024, Settembre
Anonim
Image
Image
Sensori
Sensori

**********************************************************************************************

NOTIZIA

Vai al mio GitHub per:

- Alcune piccole modifiche hardware migliorano il design, inclusa la possibilità di spegnersi dal software, rimediando a uno dei maggiori inconvenienti del design: come gestire la batteria scarica.

- Un progetto PCB v2 è ora pubblicato insieme a una guida per applicare facilmente la modifica alle schede V1.0.

- File CAD per la custodia completa

La nuova custodia assomiglia alla foto sopra… beh, senza l'elastico

****************************************************************************************

ATMOSCAN è un dispositivo multisensore finalizzato al monitoraggio della qualità dell'aria interna. Sebbene siano stati pubblicati molti progetti con scopi simili, questo è un sistema completo in un pacchetto compatto e autonomo che li riassume tutti. Ha un display LCD a colori, è sensibile all'ora e alla posizione, è controllato dai gesti e pubblica su ThingSpeak (o altri) tramite MQTT, ma può gestire correttamente le operazioni disconnesse e la riconnessione. Con la sua batteria ricaricabile incorporata, dura un giorno intero quando è scollegato dall'alimentazione.

Utilizza un framework cooperativo multitasking ed è molto reattivo all'input dell'utente durante il campionamento dei sensori, la gestione dell'interfaccia utente, la pubblicazione su MQTT. In effetti, spreme un po 'dal minuscolo ESP8266. Lo fa integrando una serie di librerie open source e sfruttando i servizi web di Internet.

I crediti per le biblioteche vanno a un certo numero di contributori, vedi più avanti.

La musica in video può essere trovata QUI

Passaggio 1: sensori

Atmoscan misura una serie di variabili:

  • Temperatura
  • Umidità
  • Pressione
  • CO2
  • CO
  • NO2
  • VOC (Composti organici volatili, un indicatore della qualità dell'aria)
  • PM 01
  • PM25
  • PM10
  • Radiazione

Per fare ciò integra una serie di sensori discreti

  • BME280 (es. Link)
  • PMS7003 (es. collegamento)
  • MH-Z19 (es. Link)
  • HDC1080 (ad es. Collegamento)
  • MiCS6814 (collegamento)
  • MP503 (collegamento)
  • LND-712 Tubo Geiger (Link, l'ho trovato in Europa qui Link o qui Link) con modulo ad alta tensione (Link)

Le schede tecniche sono QUI.

Passaggio 2: elettronica

Elettronica
Elettronica
Elettronica
Elettronica
Elettronica
Elettronica

Atmoscan può essere facilmente costruito con un NodeMCU o qualsiasi altra scheda ESP8266 e alcuni componenti prontamente disponibili, come traslatori di livello e regolatori di tensione, se si rinuncia al caricabatterie integrato.

Mentre ho realizzato prototipi con componenti separati, per la versione finale ho progettato una scheda specifica che integra tutte le funzioni e fornisce connettori ordinati per i sensori, LED per lo stato (Blu = alimentazione collegata; Rosso = in carica).

File PCB Eagle disponibili QUI.

Nello specifico, il consiglio integra:

  • Circuito di ricarica basato su MAX8903A (Link)
  • Logica di accensione/spegnimento a un pulsante
  • Modulo ESP12E
  • Logica di programmazione
  • Cambio di livello
  • Driver per retroilluminazione LCD
  • Regolatore di tensione step-up/step-down da 3,3 V basato su Pololu S7V8F3 (Link)
  • Regolatore di tensione step-up 5V basato su Pololu U1V10F5 (Link)
  • Indicatore carburante LiPo basato su SparkFun TOL10617 (Link)

Il display è un TFT da 2,8 320x240 basato su un chip ILI9341 (Link).

Il sensore di gesti è basato sul chip PAJ7620U2 (Link), molto meglio dell'economico APDS9960 che genera interruzioni continue e non può funzionare attraverso il plexiglas.

I sensori sono piuttosto affamati di energia, quindi per garantire almeno 24h di autonomia ho realizzato un pacco con 3 batterie LiPo 105575 da 5000mAh (Link). In effetti ne potevano bastare 2. Il caricabatterie MAX8903 fatica a caricare il risultante pacco da 15.000 mAh.

NOTE - COME DA FOTO:

  • Vengono mostrate le posizioni dei connettori
  • Lo slot per schede SD deve essere dissaldato dal display se si desidera che si adatti alla custodia
  • Devi fare una piccola tacca nel PCB per non interferire con la ventola (le tacche sono di moda dopo iPhone X). Corretto in PCB V2

Le abbreviazioni dei connettori sul PCB sono le seguenti:

  • PRS: Sensore di pressione barometrica (basato su BME280) NOTA: da montare direttamente sul PCB
  • VOC: Grove - Sensore di qualità dell'aria v1.3 (basato su MP503)
  • TMP: sensore digitale di umidità e temperatura ad alta precisione (basato su HDC1080)
  • PMS: PMS7003 Sensore di concentrazione di particelle digitale
  • GAS: Grove - Sensore di gas multicanale (basato su MiCS6814)
  • GES: Grove – Sensore di gesti (basato su PAJ7620U2)
  • RAD: tubo Geiger (tramite modulo di alimentazione driver sonda Geiger ad alta tensione 400 V / 500 V con uscita a impulsi digitalizzata TTL)
  • CO2: sensore di gas CO2 a infrarossi MH-Z19
  • U1V10F: Regolatore di tensione step-up 5V basato su Pololu
  • U1V10F5 S7V8V3: Regolatore di tensione step-up/step-down da 3,3 V basato su Pololu S7V8F3
  • TOL10617: Indicatore carburante LiPo Sparkfun
  • LCD: display ILI9341

Passaggio 3: allegato

Allegato
Allegato
Allegato
Allegato
Allegato
Allegato

La custodia è ricavata da un cubo contenitore in plexiglas 10x10x10 cm che ho acquistato su ebay ed era pensato per un utilizzo completamente diverso. Aveva delle belle fessure di ventilazione che erano esattamente ciò di cui avevamo bisogno. Il volume era in linea di massima sufficiente per confezionare l'intero set, solo che non è stato facile… alcuni primi tentativi basati su mockup di cartone sono falliti miseramente quindi ho rinunciato e ho perso alcune ore con un CAD 3D e ho fatto tagliare al laser i supporti interni. Lo spazio interno è suddiviso in scomparti in modo che il sensore di temperatura sia il più lontano possibile da fonti di calore interne. Mentre l'involucro esterno è realizzato in materiale da 3 mm, la parte superiore è composta da fogli da 2+1 mm. Questo trucco ha permesso di avere il sensore dei gesti coperto con solo 1 mm di acrilico e questo è sufficiente per farlo funzionare.

Alcune modifiche dovevano essere fatte con strumenti manuali sulla custodia originale, come la ventola, l'interruttore e i fori USB. Il risultato è stato comunque discreto!

I file CAD sono QUI.

Passaggio 4: assemblaggio meccanico

Assemblaggio meccanico
Assemblaggio meccanico
Assemblaggio meccanico
Assemblaggio meccanico
Assemblaggio meccanico
Assemblaggio meccanico

La confezione è molto densa ma grazie al design cad 3D ho avuto poche sorprese nel montarla.

La circolazione dell'aria (dall'alto verso il basso) è assicurata da un piccolo ventilatore. Dopo aver acquistato un discreto numero su Aliexpress / eBay, mi sono reso conto che il rumore delle ventole economiche era insopportabile per un dispositivo da interno. Ho finito per acquistare un Papst 255M (Link) piuttosto costoso e a rotazione lenta e l'ho alimentato con meno di 5V tramite un paio di diodi. Il risultato è piuttosto buono ed è abbastanza silenzioso da passare inosservato (è persino approvato dalla moglie, la certificazione più difficile).

Passaggio 5: software

Software
Software
Software
Software
Software
Software
Software
Software

L'architettura software si basa su un framework Object Oriented che esegue più processi (cooperativi) che gestiscono UI, sensori e MQTT. È sensibile alla posizione e al tempo, ma può gestire la disconnessione/riconnessione al WiFI.

Il framework è aperto e può gestire un numero qualsiasi di schermate, purché il loro codice e le risorse si adattino alla memoria Flash. Il framework dell'applicazione gestisce i gesti e li trasmette alle schermate, per un'ulteriore gestione o cancellazione, se necessario. I gesti gestiti dal framework sono:

  • Scorri verso sinistra/destra - Cambia schermata
  • (Dito) Vortice in senso orario - Gira lo schermo
  • (dito) Vortice in senso antiorario - Richiama la schermata di configurazione
  • (Manuale) Da lontano a vicino - Spegni il display

Le schermate ereditano da una classe base e sono gestite tramite il seguente modello di eventi:

  • attivare - sparato una volta, quando lo schermo viene creato
  • update - chiamato periodicamente per aggiornare lo schermo
  • disattivare - chiamato una volta, prima che lo schermo venga chiuso
  • onUserEvent: chiamato quando viene attivato il sensore di movimento. Consente di rispondere e anche di sovrascrivere la gestione degli eventi predefinita, ad es. interrompere lo scorrimento per cambiare schermata

Ogni schermata dichiara le proprie capacità fornendo le seguenti informazioni:

  • getRefreshPeriod: la frequenza con cui lo schermo deve essere aggiornato
  • getRefreshWithScreenOff - se lo schermo vuole essere aggiornato anche quando la retroilluminazione è disattivata. per esempio. per i grafici
  • getScreenName - nome dello schermo
  • isFullScreen: prendi il pieno controllo del display o consenti la barra in alto con data/ora/posizione/indicatore batteria/indicatore Wi-Fi

Il framework è in grado di istanziare e deallocare gli schermi tramite una class factory dichiarativa. L'allocazione dinamica consente di risparmiare RAM e rende il dispositivo facilmente espandibile. Il framework generale dell'applicazione è riutilizzabile anche per altri progetti.

Gli schermi attualmente implementati in Atmoscan sono:

  • Valori dei sensori
  • Misuratore Geiger / grafico semilog
  • Stato del sistema
  • Registro errori
  • Stazione metereologica
  • Avvistatore di aerei
  • Impostare
  • Batteria scarica

Le schermate di configurazione consentono di impostare le credenziali Wi-Fi, i canali MQTT, il server Syslog.

NOVITÀ nella v2.0: tutte le chiavi dei servizi web sono ora configurabili tramite il portale di configurazione. L'unico valore ancora hardcoded è la password OTA (maiuscolo ATMOSCAN).

NOTA 1: La prima programmazione deve essere eseguita con un cavo USB-Seriale collegato al connettore di programmazione. Poiché la porta seriale è occupata da un sensore, il debug e la programmazione in questo modo non sono pratici dopo l'assemblaggio poiché richiederebbero lo scollegamento del sensore. Pertanto il software supporta il debug SYSLOG e gli aggiornamenti OTA.

NOTA 2: Il binario ATMOSCAN è superiore a 700Kb e ArduinoOTA richiede che lo spazio del programma sia almeno il doppio della dimensione dell'immagine, il che esclude l'opzione "4M (3M SPIFFS)". Tuttavia, anche l'opzione standard "4M (1M SPIFFS)" non è adatta in quanto la partizione SPIFFS sarebbe insufficiente per le risorse grafiche relative alla stazione meteorologica, all'aeroplano e al file di configurazione. Pertanto è stata creata una configurazione personalizzata "4M (2M SPIFFS)" per risolvere il problema. Spiegazione qui.

La documentazione e il codice sorgente completo sono disponibili qui.

CREDITIINCLUDE CODICE E LIBRERIE DA

  • Adafruit
  • Arcao
  • Bblanchon
  • Bodmer
  • ChiusoCubo
  • Gmag11
  • Knolleary
  • Lucadentella
  • seme
  • Squix78
  • Tzapu
  • mago97

INTEGRA I SERVIZI WEB DA

  • Adsbexchange.com
  • GeoNames.org
  • Google.com
  • Mylnikov.org
  • Timezonedb.com
  • Wunderground.com

Passaggio 6: miglioralo

Rendilo migliore!
Rendilo migliore!

Il risultato non è affatto male! Il software sembra buono ed è affidabile, mentre potrebbe essere ampliato con nuove funzionalità e forse ripulito un po' per rendere il framework dell'applicazione veramente riutilizzabile per altri progetti. La calibrazione di alcuni sensori non è eccezionale, ma sarebbe necessaria l'attrezzatura di laboratorio di prova. Il tempo è prezioso e non ho molto, quindi i progressi sono stati lenti. Quando ho finito, è diventato disponibile un supporto decente per ESP32. Se lo avviassi ora, lo userei e integrerei sensori esterni tramite bluetooth.

Chiunque?

NOTA: ho ancora una manciata di PCB quindi se qualcuno è interessato sono disponibili al prezzo nominale/affrancatura.

Passaggio 7: domande e risposte

domande e risposte
domande e risposte
domande e risposte
domande e risposte

Prima di tutto, GRAZIE per i tuoi commenti estremamente positivi. Sinceramente non mi aspettavo così tanto interesse.

Ho ricevuto una serie di domande o tramite commenti o messaggi privati, quindi ho pensato di raccogliere le risposte qui. Se dovessero venire di più, aggiungerò.

Ho trovato in fondo a un cassetto gli 8 PCB disponibili - e stanno andando in Belgio, Germania, India, USA, Canada, Regno Unito, Australia. Wow, 3 continenti! Sorprendente.

Cosa devo inserire nella pagina di configurazione di ATMOSCAN?

La pagina di configurazione di Atmoscan richiede i seguenti parametri:

  • SSID e password della rete WiFi a cui vuoi connetterti
  • server MQTT che utilizzi. Ad esempio, io uso mqtt.thingspeak.com
  • Stringa di connessione per gli argomenti MQTT utilizzati. Ad esempio, gli argomenti MQTT di Thingspeak sono nel formato: channel/CHANNEL-ID/publish/WRITE-API (ESEMPIO: channel/123456/publish/567890)
  • Syslog server: l'IP del server syslog utilizzato per la registrazione
  • Chiave Google per l'API statica di Maps. Ottieni una chiave da https://console.cloud.google.com/apis/dashboard. Creare un progetto; L'API utilizzata da Atmoscan è https://maps.googleapis.com/maps/api/staticmap. Crea una chiave per questa API sul progetto google che hai appena creato, usala qui
  • Tasto meteo sotterraneo. Crea un account su www.wunderground.com, vai su WEATHER API (link in fondo alla home page, vai su KEY SETTINGS, genera una chiave, usala qui
  • Conto geonomi. Crea un account su https://www.geonames.org/ abilitalo all'utilizzo dei servizi web gratuiti e inserisci qui il nome utente
  • chiave TimeZoneDB. Crea un account su https://timezonedb.com/, crea una chiave, mettila qui

Come configuro Thingspeak?

Hai bisogno di 3 canali Thingspeak. I campi vengono utilizzati come segue:

Campi CANALE 1

  1. TEMPERATURA
  2. UMIDITÀ
  3. PRESSIONE
  4. PM01
  5. PM2.5
  6. PM10
  7. CPM
  8. RADIAZIONE

CANALE 2 campi

  1. CO
  2. CO2
  3. NO2
  4. VOC

CANALE 3 campi (canale di sistema)

  1. UPTIME IN MINUTI
  2. HEAP GRATUITO IN BYTE
  3. WIFI RSSI (SEGNALE IN DBM)
  4. VOLTAGGIO BATTERIA
  5. SOC LINEARE (% STATO DI CARICA BATTERIA - calcolo lineare, proporzionale alla tensione)
  6. NATIVE SOC (BATTERY STATE OF CHARGE % - come riportato dall'indicatore. come letto dall'indicatore. NOTA: l'indicatore dice 0% quando si raggiunge 3.6v mentre le batterie possono essere scaricate un po' di più, diciamo sopra 3v. Il limite inferiore, al quale ATMOSCAN si spegne, è un file #define in globaldefinitions.h)
  7. TEMPERATURA IMPIANTO (dal bme280, montato direttamente sulla scheda)
  8. UMIDITÀ DEL SISTEMA (dal bme280, montato direttamente sulla scheda)

Il PCB è molto compatto. Come posso saldare i dispositivi SMD, in particolare l'IC MAX8903A?

Per prima cosa, ti suggerisco di chiederti se vuoi entrare in SMD o se è una tantum- Se quest'ultimo, forse chiedi a qualcuno di farlo per te. Se vuoi accettare la sfida SMD, investi un po 'e procurati gli strumenti adeguati (saldatura, flusso, ferro da stiro con alcool isopropilico, pistola a caldo, pinzette, una fotocamera USB economica, un supporto per PCB). Al giorno d'oggi questa è roba a buon mercato. Poi guarda un video su YouTube – ce ne sono mezzo milione – e passa un po' di tempo con un vecchio PCB che puoi sacrificare e dissaldare/pulire/saldare alcuni componenti. Non crederesti quanto sia istruttivo, imparare cosa aspettarsi, ottenere la temperatura giusta, ecc. Parlando per esperienza … ho iniziato a cambiare il connettore del display SMD in un iPod touch e ho ucciso il primo!

In effetti il PCB Atmoscan è compatto e quell'IC non è facile. Ancora una volta, non ti consiglio di farlo come prima saldatura SMD. Il QFN non è un pacchetto amichevole anche se ormai ho saldato un numero. Non sei mai sicuro di aver capito bene…

Su Atmoscan l'ho prima saldato, poi i componenti circostanti in modo da poter testare che la parte di ricarica della scheda funzionasse, poi ho completato tutto il resto. Dalle immagini allegate dovresti essere in grado di dedurre l'orientamento dei componenti. Ho usato librerie di componenti di pubblico dominio e l'orientamento non è molto evidente nella serigrafia.

A modo mio: prima ho messo un po' di saldatura sui pad con il ferro. Quindi un sacco di flusso (specifico per SMD) e ho posizionato con cura l'IC con una pinzetta. Quindi riscaldare il tutto a circa 200/220°C (sotto il punto di fusione) per evitare tensioni dovute al riscaldamento non uniforme. Quindi ho aumentato la temperatura a 290 ° C o giù di lì e intorno all'IC. Se metti un po' di saldatura su un pad vicino vedrai quando la temperatura è al punto di fusione, poiché brillerà.

Dopodiché l'ho pulito con alcool isopropilico e l'ho ispezionato attentamente con una cam USB economica. I problemi tipici sono l'allineamento e la quantità di saldatura, poiché alcuni pin potrebbero non essere collegati. In alcuni casi ho dovuto tornare ad esso con un piccolo saldatore per aggiungere un po' più di saldatura ad alcuni pin, poiché questo circuito integrato ha un pad termico sotto che deve essere saldato. Questo rende un po' difficile indovinare la quantità di saldatura e potrebbe succedere che troppa saldatura sotto possa sollevarla in modo che i pin non tocchino il PCB.

Detto questo, non voglio spaventarti. Ho completato 3 schede e non ho mai ucciso questi circuiti integrati… Una volta ho dovuto rimuoverlo, ripulirlo e riavviarlo da zero, ma alla fine ha funzionato. Ancora una volta, non super facile ma fattibile.

Dove hai comprato i componenti?

Principalmente su eBay e Aliexpress. Tuttavia, quelli di marca sono originali (Seeed, Pololu, Sparkfun).

Seguono alcuni link INDICATIVI. Nota: guardati intorno, potresti trovare offerte anche più economiche…

www.aliexpress.com/item/ESP8266-Remote-Ser…

www.aliexpress.com/item/PLANTOWER-Laser-PM…

www.aliexpress.com/item/High-Accuracy-BME2…

www.aliexpress.com/item/Free-shipping-HDC1…

www.aliexpress.com/item/J34-F85-Free-Shipp…

www.aliexpress.com/item/30pcs-A11-Tactile-…

www.aliexpress.com/item/10PCS-IRF7319TRPBF…

www.aliexpress.com/item/120PC-Lot-0805-SMD…

www.aliexpress.com/item/100pcs-sma-1N5819-…

www.aliexpress.com/item/Free-Shipping-100P…

www.aliexpress.com/item/Chip-Capacitor-080…

www.aliexpress.com/item/92valuesX50pcs-460…

www.aliexpress.com/item/170valuesX50pcs-85…

www.aliexpress.com/item/Si2305-si2301-si23…

www.aliexpress.com/item/100pcs-lot-SI2303-…

www.aliexpress.com/item/20pcs-XH2-54-2-54m…

www.aliexpress.com/item/10pcs-SMD-Power-In…

Prima programmazioneLa scheda Atmoscan include un circuito di programmazione in linea con il NodeMCU. La connessione seriale viene normalmente utilizzata per la prima programmazione. Successivamente, la programmazione OTA via wifi è l'opzione preferita, poiché può essere eseguita con l'unità completamente assemblata. Non dimenticare che la porta seriale è normalmente utilizzata dal sensore di particelle!

Per programmare la scheda con seriale, è necessario collegare un adattatore USB-Seriale (es. FTDI232 o simile) al connettore J7 (accanto al pulsante di reset) seguendo la piedinatura nello schema. Il programma può essere caricato senza sensori collegati, tranne che la linea di interruzione del sensore geiger deve essere collegata a GND, altrimenti la scheda non si avvia (per farlo, collegare i pin 1 e 3 nel connettore RAD). Il modo più semplice per testare la scheda senza utilizzare lo sketch principale - quindi senza la complessità dei sensori - è caricare QUESTO semplice programma tramite cavo seriale. Crea un punto di accesso wifi che consente un ulteriore flashing con il programma principale.

IMPORTANTE: non dimenticare di utilizzare la configurazione SPIFFS 4M/2M secondo le istruzioni, altrimenti il programma principale non si adatterà. La scheda deve essere inizializzata tramite programmazione seriale con quella configurazione, altrimenti potresti avere problemi con OTA in seguito.

Sfortunatamente l'inizializzazione di alcuni sensori si blocca se i sensori non sono presenti (dipende dal provider della libreria). Un esempio è la libreria di sensori multigas. Per assicurarsi che Atmoscan si avvii correttamente con il firmware completo, è possibile disabilitare il relativo processo, vedere il relativo punto di domande e risposte. Un modo semplice per disabilitare TUTTI i sensori per il test consiste nel commentare la riga #define ENABLE_SENSORS nel file GlobalDefinitions.h.

Quando la scheda avvia per la prima volta lo sketch principale, dovrebbe riconoscere che non è configurato e dovrebbe aprire un hotspot wifi, al quale connettersi e configurarlo. Tra le impostazioni, c'è un server syslog che aiuta molto il debug. È inoltre possibile aumentare il livello di registrazione decommentando #define DEBUG_SYSLOG nel file GlobalDefinitions.h. Si noti che nello stesso file è presente anche un #define DEBUG_SERIAL che è stato utilizzato durante il debug iniziale. Se non commentato, restituisce _alcuni_ log residui, ma minimi. Un elemento da fare era sempre quello di rendere la registrazione uniforme e selezionabile, ma non ho mai avuto il tempo di ripulirla.

Hai modificato le librerie che hai usato, c'è bisogno di configurazioni? (invece di scaricare e compilare)

Bella domanda, ho dimenticato di menzionare questo punto. In effetti ci sono alcune modifiche / configurazioni necessarie:

  • Libreria https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - istruzioni di debug seriali. È necessario commentare, poiché la porta seriale viene utilizzata per un sensore!
  • Libreria https://github.com/Bodmer/TFT_eSPI - richiede un file di configurazione in cui sono specificate l'assegnazione dei pin e la frequenza SPI
  • Libreria https://github.com/lucadentella/ArduinoLib_MAX1704… - Guardando i commenti e le richieste pull ho notato che c'è una correzione di bug che non è mai stata unita

Per quanto mi ricordo dovrebbe essere così. Fammi sapere se dovessero sorgere problemi.

NOTA: fare riferimento ai commenti nell'ultimo codice sorgente: contiene collegamenti a tutte le librerie necessarie ed è aggiornato

Perché alcuni sensori leggono in rosso e altri in verde nei video/nelle immagini?

Il colore indica la tendenza. Inizia bianco e se salire è rosso, se scende è verde.

Come gestisci la deriva dei sensori nel tempo? Quanto sono buoni questi sensori? Cosa posso vedere con questi sensori?

Onestamente questo non è un kit di misurazione scientifica. Per calibrare avrei bisogno di attrezzature che non ho a disposizione. Questo è davvero un progetto per animali domestici. Ho provato diversi sensori. La particella, CO2, temperatura, umidità, pressione, Geiger sono a mio avviso piuttosto buone. Sull'NO2 ho delle riserve sulla calibrazione e sul design generale, ma non c'è molto disponibile. Nel complesso, sono sensori tradizionali.

Tuttavia, la combinazione è abbastanza buona da mostrare cose che non ti aspetteresti.

Con l'Atmoscan in soggiorno e in cucina a una stanza di distanza, rileva enormi picchi di particelle quando ad es. roba da friggere. Si sente l'NO2 dal traffico mattutino anche con i finestrini chiusi.

Era davvero necessario un contatore Geiger? Mostra qualcosa di utile?

Per fortuna non abbiamo avuto incidenti nucleari e la guerra non è ancora in arrivo… Eppure, ci sono centrali nucleari non così lontane e il governo distribuisce pillole di iodio per i bambini da tenere nel cassetto in caso di incidenti… quindi mi sono insospettito. Finora devo dire che le letture sono esattamente in linea con la radiazione di fondo prevista (0,12 uSv/h)

Qual è il costo totale del dispositivo?

Avevo già molti componenti in casa e i link sopra danno un'idea. Onestamente, se acquisti un NetAtmo già pronto o simile, risparmi denaro. Non puoi battere un'azienda cinese che fa cose su larga scala! Tuttavia, se ti piace fare magari insieme ai tuoi figli, ne vale la pena. La parte buona è che ho già testato (e scartato) una serie di sensori per te….

E i PCB? Me ne puoi vendere uno?

Inizialmente ne avevo 10 creati da dirtypcbs.com e i miei file hanno funzionato bene. Di buona qualità e abbastanza economico, 25 USD / 20 Euro per 10 PCB. Ne ho usati due e sono lieto di inviare i residui al solo costo (2 Euro + spedizione, a seconda della località e delle preferenze di spedizione). Temo che dovrò scegliere i primi che mi mandano un messaggio privato.

Riesci a realizzare un kit o una campagna kickstarter?

Lusinghiero, ma sinceramente non avrei mai pensato che fosse abbastanza innovativo… e poi, NO TIME!!

Tuttavia, se qualcuno dovesse raccogliere l'idea, sarebbe necessaria una seconda iterazione. Ci sono alcuni spigoli vivi nel design che varrebbe la pena correggere, ma ancora una volta non ho mai avuto abbastanza tempo per la V2.

Sull'hardware: posso aggiungere/rimuovere un sensore, lo schermo ecc. per espandere le capacità/ridurre il consumo energetico?

Il display è collegato senza utilizzare MISO, quindi la CPU non legge mai dal display. Quindi potresti semplicemente non collegare il display e funzionerebbe perfettamente. Detto questo, il display è acceso solo per un po' di tempo dopo che è stato rilevato l'ultimo gesto, quindi non ha un impatto sul consumo energetico.

I sensori sono invece affamati di energia e il tutto consuma facilmente 400/500mA. Non dimenticare la ventola e anche il fatto che il sensore di particelle ha anche una ventola incorporata. Anche l'ESP non va in modalità di sospensione, a causa della mancanza di pon GPIO. Tuttavia, ciò avrebbe forse risparmiato 20 mA …

Il software è modulare e puoi facilmente aggiungere/rimuovere processi e schermate in modo da poter aggiungere sensori o accenderlo all'accensione rimuovendone alcuni, se lo desideri. L'unica limitazione è il numero di pin GPIO. Tuttavia, i sensori possono essere facilmente aggiunti se I2C o, in alternativa, è possibile utilizzare un espansore I2C per aggiungere GPIO…

Per disabilitare un sensore, ad esempio per testare una build parziale, il modo migliore secondo me sarebbe non avviare il relativo processo. Ciò può essere ottenuto commentando la relativa chiamata enable() nella funzione void startProcesses() nel file.ino principale. A meno che tu non voglia modificare strutturalmente il sistema, non rimuoverei del tutto i processi poiché lo schermo e i processi MQTT li interrogano. In questo modo dovrebbero solo restituire zero. Si prega di notare che l'ingresso di interrupt per la scheda geiger deve essere abbassato se non utilizzato, altrimenti la scheda non si avvia.

Quali sono i miglioramenti che avresti fatto se avessi avuto il tempo per una V2.0?

Non in un ordine particolare..

  • Il PCB potrebbe evitare il rame dietro l'antenna ESP8266. L'ho completamente dimenticato e rende il diagramma di radiazione non isotropo
  • Il caricabatterie secondo me è sottodimensionato per una batteria così grande / la batteria è troppo grande per il caricabatterie. Ci sono altri circuiti integrati e ne proverei un altro.
  • Ci sono indicatori di batteria migliori.
  • Aggiungerei un sensore di ozono
  • Userei un ESP32 per più GPIO e sensori Bluetooth fuori dall'unità principale.
  • Se avessi più GPIO con ESP32 o con un expander I2C, ne userei uno per controllare la ventola e un altro per spegnere l'unità dal software. Ora, quando la batteria è scarica, l'unica cosa che può fare è visualizzare una schermata di batteria scarica. Questo è in effetti il più grande svantaggio del design, poiché la situazione della batteria scarica non viene gestita con grazia.

Sul software

Mi ci è voluto più tempo dell'hardware… Penso che contenga una serie di buoni concetti, purtroppo non completamente implementati. In particolare, credo che dovrebbe essere ripulito, potenzialmente ampliato e da esso potrebbe essere facilmente derivato un framework generico per le applicazioni ESP8266. Non c'è tempo. Qualcuno raccoglie la sfida?

Puoi aggiungere il controllo vocale?

Dovrebbe essere fattibile. Esistono numerose librerie già pronte per controllare un ESP8266 con Alexa e non vedo perché l'integrazione dovrebbe essere un problema. La domanda interessante è cosa vuoi fare con esso, dal punto di vista della funzionalità. Non possiedo un Amazon Echo quindi non ho mai provato.

Come hai fatto i tagli laser?

I disegni sono realizzati con SketchUp. Il programma è carino ma manca seriamente di capacità di esportazione. Tuttavia, la versione di prova di 30 giorni aiuta in quanto ha funzionalità aggiuntive. L'ho quindi importato in Inkscape per l'elaborazione finale.

È possibile accendere/spegnere i sensori per risparmiare energia, tramite MOSFET?

Bella idea in linea di principio, ma la maggior parte di questi sensori deve essere sempre alimentata poiché hanno un tempo di riscaldamento. Inoltre… ho esaurito i GPIO nell'ESP8266. Ho anche dovuto usare GPIO10 che ufficialmente non funziona, ma funziona bene su ESP12E.

Di quali competenze avrei bisogno?

Per costruirlo da zero avresti bisogno di un background di progettazione elettronica. Non molto, al giorno d'oggi con internet non hai davvero bisogno di leggere i fogli dati riga per riga come ai miei primi giorni… Se usi il risultato della mia sperimentazione, hai bisogno di alcune abilità di saldatura SMD, abilità meccaniche e un po' di pazienza.

È il tuo primo progetto?

È il mio primo istruibile ma non il mio primo progetto. Ho armeggiato molto in passato, ma oggi non ho molto tempo. Ho resuscitato le mie abilità arrugginite mentre cerco di insegnare qualcosa di utile ai miei figli..! Ho realizzato altri progetti che un giorno potrei pubblicare..

Consigliato: