Inhaltsverzeichnis:

AtmoScan: 7 Schritte (mit Bildern)
AtmoScan: 7 Schritte (mit Bildern)

Video: AtmoScan: 7 Schritte (mit Bildern)

Video: AtmoScan: 7 Schritte (mit Bildern)
Video: Jennifer Lopez x Dolby Atmos : Can`t Get Enough 2024, September
Anonim
Image
Image
Sensoren
Sensoren

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

NACHRICHTEN

Gehen Sie zu meinem GitHub für:

- Einige kleine Hardwareänderungen verbessern das Design, einschließlich der Möglichkeit, sich von der Software selbst abzuschalten, wodurch einer der größten Nachteile des Designs behoben wird - der Umgang mit schwacher Batterie.

- Ein PCB v2-Design wird jetzt zusammen mit einer Anleitung veröffentlicht, um die Änderung auf Boards V1.0 einfach anzuwenden.

- CAD-Dateien für komplettes Gehäuse

Das neue Gehäuse sieht aus wie auf dem Bild oben… na ja, ohne Gummiband

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

ATMOSCAN ist ein Multisensor-Gerät zur Überwachung der Luftqualität in Innenräumen. Obwohl viele Projekte mit ähnlichem Zweck veröffentlicht wurden, ist dieses ein komplettes System in einem kompakten, in sich geschlossenen Paket, das sie alle zusammenfasst. Es verfügt über ein LCD-Farbdisplay, ist zeit- und ortsabhängig, wird durch Gesten gesteuert und sendet über MQTT an ThingSpeak (oder andere), kann jedoch getrennte Vorgänge und erneute Verbindungen ordnungsgemäß verarbeiten. Mit seinem integrierten wiederaufladbaren Akku hält es einen ganzen Tag, wenn es vom Strom getrennt ist.

Es verwendet ein kooperatives Multitasking-Framework und reagiert sehr auf Benutzereingaben beim Abtasten von Sensoren, der Handhabung der Benutzeroberfläche und der Veröffentlichung in MQTT. Tatsächlich drückt es ziemlich viel aus dem winzigen ESP8266. Dies geschieht durch die Integration einer Reihe von Open-Source-Bibliotheken und die Nutzung von Internet-Webdiensten.

Credits für Bibliotheken gehen an eine Reihe von Mitwirkenden, siehe später.

Musik im Video finden Sie HIER

Schritt 1: Sensoren

Atmoscan misst eine Reihe von Variablen:

  • Temperatur
  • Feuchtigkeit
  • Druck
  • CO2
  • CO
  • NO2
  • VOC (flüchtige organische Verbindungen, ein Indikator für die Luftqualität)
  • nachmittags 01
  • PM25
  • PM10
  • Strahlung

Dazu integriert es eine Reihe von diskreten Sensoren

  • BME280 (z. B. Link)
  • PMS7003 (z. B. Link)
  • MH-Z19 (z. B. Link)
  • HDC1080 (z. B. Link)
  • MiCS6814 (Link)
  • MP503 (Link)
  • LND-712 Geigerröhre (Link, habe ich in Europa hier Link oder hier Link gefunden) mit Hochspannungsmodul (Link)

Datenblätter sind HIER.

Schritt 2: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Atmoscan lässt sich problemlos mit einer NodeMCU oder einem anderen ESP8266-Board und einigen leicht verfügbaren Komponenten wie Pegelumsetzern und Spannungsreglern aufbauen, wenn man auf das integrierte Batterieladegerät verzichtet.

Während ich Prototypen mit separaten Komponenten erstellt habe, habe ich für die endgültige Version ein spezielles Board entworfen, das alle Funktionen integriert und ordentliche Anschlüsse für Sensoren und LEDs für den Status bietet (Blau = Stromversorgung angeschlossen; Rot = Aufladen).

Eagle PCB-Dateien sind HIER verfügbar.

Im Einzelnen integriert das Board:

  • Ladeschaltung basierend auf MAX8903A (Link)
  • Ein-Knopf-An/Aus-Logik
  • ESP12E-Modul
  • Programmierlogik
  • Level-Shifter
  • Treiber für LCD-Hintergrundbeleuchtung
  • 3.3V Step-Up/Step-Down Spannungsregler basierend auf Pololu S7V8F3 (Link)
  • 5V Step-Up Spannungsregler basierend auf Pololu U1V10F5 (Link)
  • LiPo Tankanzeige basierend auf SparkFun TOL10617 (Link)

Das Display ist ein 2,8 TFT 320x240 basierend auf einem ILI9341 Chip (Link).

Der Gestensensor basiert auf dem PAJ7620U2-Chip (Link), viel besser als der billige APDS9960, der kontinuierliche Interrupts erzeugt und nicht durch Plexiglas funktionieren kann.

Die Sensoren sind ziemlich stromhungrig, daher habe ich ein Pack mit 3 x 5000mAh LiPo 105575 Akkus gemacht, um eine Autonomie von mindestens 24 Stunden zu gewährleisten (Link). Eigentlich hätten 2 reichen können. Das Ladegerät MAX8903 hat Schwierigkeiten, das resultierende 15.000-mAh-Paket aufzuladen.

HINWEISE - WIE IN DEN BILDERN ZU SEHEN:

  • Steckverbinderpositionen werden angezeigt
  • Der SD-Kartenslot muss vom Display abgelötet werden, wenn er in das Gehäuse passen soll
  • Sie müssen eine kleine Kerbe in die Platine machen, um den Lüfter nicht zu stören (Kerben sind nach dem iPhone X in Mode). In PCB V2 korrigiert

Die Abkürzungen für Steckverbinder auf der Leiterplatte lauten wie folgt:

  • PRS: Barometrischer Drucksensor (basierend auf BME280) HINWEIS: direkt auf der Platine zu montieren
  • VOC: Grove - Luftqualitätssensor v1.3 (basierend auf MP503)
  • TMP: Hochgenauer digitaler Feuchtigkeits- und Temperatursensor (basierend auf HDC1080)
  • PMS: PMS7003 Digitaler Partikelkonzentrationssensor
  • GAS: Grove - Mehrkanal-Gassensor (basierend auf MiCS6814)
  • GES: Grove – Gestensensor(basierend auf PAJ7620U2)
  • RAD: Geigerröhre (über Hochspannungs-Geigersondentreiber-Netzteilmodul 400V / 500V mit digitalisiertem TTL-Impulsausgang)
  • CO2: Infrarot-CO2-Gassensor MH-Z19
  • U1V10F: 5V Step-Up Spannungsregler basierend auf Pololu
  • U1V10F5 S7V8V3: 3.3V Step-Up/Step-Down Spannungsregler basierend auf Pololu S7V8F3
  • TOL10617: Sparkfun LiPo-Tankanzeige
  • LCD: ILI9341-Anzeige

Schritt 3: Gehäuse

Gehege
Gehege
Gehege
Gehege
Gehege
Gehege

Das Gehäuse stammt aus einem Plexiglas 10x10x10 cm Würfelbehälter, den ich bei ebay gekauft habe und für einen ganz anderen Einsatz gedacht war. Es hatte schöne Lüftungsschlitze, die genau das waren, was man brauchte. Das Volumen war im Prinzip ausreichend, um das ganze Set zu verpacken, nur dass es nicht einfach war… einige frühe Versuche auf Basis von Kartonmodellen scheiterten kläglich, also gab ich auf und verschwendete einige Stunden mit einem 3D-CAD und ließ die inneren Stützen laserschneiden. Der Innenraum ist in Fächer unterteilt, damit der Temperatursensor möglichst weit von internen Wärmequellen entfernt ist. Während das äußere Gehäuse aus 3mm Material besteht, besteht die Oberseite aus 2+1mm Blechen. Dieser Trick ermöglichte es, den Gestensensor mit nur 1 mm Acryl zu bedecken und das reicht aus, damit es funktioniert.

Einige Modifikationen mussten mit Handwerkzeugen am Originalgehäuse vorgenommen werden, wie zum Beispiel Lüfter, Schalter und USB-Löcher. Das Ergebnis war dennoch ordentlich!

CAD-Dateien finden Sie HIER.

Schritt 4: Mechanische Montage

Mechanische Montage
Mechanische Montage
Mechanische Montage
Mechanische Montage
Mechanische Montage
Mechanische Montage

Das Paket ist sehr dicht, aber dank des 3D-CAD-Designs hatte ich beim Zusammenbau wenig Überraschungen.

Die Luftzirkulation (von oben nach unten) wird durch einen kleinen Ventilator gewährleistet. Nachdem ich eine ordentliche Nummer bei Aliexpress / eBay gekauft hatte, stellte ich fest, dass der Lärm von billigen Lüftern für ein Indoor-Gerät unerträglich war. Ich habe mir schließlich einen recht teuren, langsam drehenden Papst 255M (Link) gekauft und ihn über ein paar Dioden mit weniger als 5V gespeist. Das Ergebnis ist ziemlich gut und leise genug, um unbemerkt zu bleiben (es ist sogar von der Frau zugelassen, die härteste Zertifizierung).

Schritt 5: Software

Software
Software
Software
Software
Software
Software
Software
Software

Die Softwarearchitektur basiert auf einem objektorientierten Framework, das mehrere (kooperative) Prozesse ausführt, die UI, Sensoren und MQTT verarbeiten. Es ist orts- und zeitabhängig, kann aber die Trennung/Wiederverbindung zum WLAN verarbeiten.

Das Framework ist offen und kann eine beliebige Anzahl von Bildschirmen verwalten, solange deren Code und Ressourcen in den Flash-Speicher passen. Das Anwendungsframework verarbeitet die Gesten und gibt sie an die Bildschirme weiter, um sie bei Bedarf weiterzuverarbeiten oder abzubrechen. Vom Framework verwaltete Gesten sind:

  • Wischen Sie nach links / rechts - Bildschirm wechseln
  • (Finger) Wirbel im Uhrzeigersinn - Bildschirm drehen
  • (Finger) Wirbel gegen den Uhrzeigersinn - Setup-Bildschirm aufrufen
  • (Hand) Von weit nach nah - Display ausschalten

Bildschirme erben von einer Basisklasse und werden über das folgende Ereignismodell verwaltet:

  • aktivieren - wird einmal ausgelöst, wenn der Bildschirm erstellt wird
  • update - wird regelmäßig aufgerufen, um den Bildschirm zu aktualisieren
  • deaktivieren - einmal aufgerufen, bevor der Bildschirm geschlossen wird
  • onUserEvent - wird aufgerufen, wenn der Gestensensor ausgelöst wird. Erlaubt zu reagieren und auch die Standard-Ereignisbehandlung zu überschreiben, z. B. Wischen abbrechen, um den Bildschirm zu wechseln

Jeder Bildschirm deklariert seine Fähigkeiten, indem er die folgenden Informationen bereitstellt:

  • getRefreshPeriod - wie oft der Bildschirm aktualisiert werden muss
  • getRefreshWithScreenOff - wenn der Bildschirm auch bei ausgeschalteter Hintergrundbeleuchtung aktualisiert werden soll. z. B. für Diagramme
  • getScreenName - Name des Bildschirms
  • isFullScreen - Übernehmen Sie die volle Kontrolle über das Display oder erlauben Sie die obere Leiste mit Datum/Uhrzeit/Ort/Batterieanzeige/WLAN-Anzeige

Das Framework ist in der Lage, die Bildschirme über eine deklarative Klassenfabrik zu instanziieren und freizugeben. Die dynamische Zuweisung spart RAM und macht das Gerät leicht erweiterbar. Das gesamte Anwendungsframework ist auch für andere Projekte wiederverwendbar.

Derzeit in Atmoscan implementierte Bildschirme sind:

  • Sensorwerte
  • Geigermeter / Semilog-Diagramm
  • Systemstatus
  • Fehlerprotokoll
  • Wetterstation
  • Flugzeug-Spotter
  • Aufstellen
  • Niedriger Batteriestatus

Die Setup-Bildschirme ermöglichen die Einstellung von WLAN-Zugangsdaten, MQTT-Kanälen und Syslog-Servern.

NEU in v2.0: Alle Webservice-Schlüssel sind jetzt über das Konfigurationsportal konfigurierbar. Der einzige noch fest codierte Wert ist das OTA-Passwort (ATMOSCAN in Großbuchstaben).

HINWEIS 1: Die erste Programmierung muss mit einem USB-Seriell-Kabel erfolgen, das an den Programmieranschluss angeschlossen ist. Da die serielle Schnittstelle von einem Sensor belegt ist, ist das Debuggen und Programmieren auf diese Weise nach dem Zusammenbau unpraktisch, da dies das Abnehmen des Sensors erfordern würde. Daher unterstützt die Software SYSLOG-Debugging und OTA-Updates.

HINWEIS 2: Die ATMOSCAN-Binärdatei ist über 700 KB groß und ArduinoOTA erfordert, dass der Programmspeicher mindestens doppelt so groß ist wie die Bildgröße, was die Option "4M (3M SPIFFS)" ausschließt. Allerdings ist auch die Standardoption "4M (1M SPIFFS)" ungeeignet, da die SPIFFS-Partition für die grafischen Ressourcen von Wetterstation, Plane-Spotter und für die Confing-Datei nicht ausreichen würde. Daher wurde eine benutzerdefinierte Konfiguration "4M (2M SPIFFS)" erstellt, um das Problem zu lösen. Erklärung hier.

Die Dokumentation und der vollständige Quellcode sind hier verfügbar.

CREDITSINKLUSIVE CODE & BIBLIOTHEK VON

  • Adafrucht
  • Arcao
  • Bblanchon
  • Bodmer
  • GeschlossenerWürfel
  • Gmag11
  • Knolleary
  • Lucadentella
  • Seed
  • Squix78
  • Tzapu
  • Zauberer97

INTEGRIERT WEBDIENSTE VON

  • Adsbeexchange.com
  • GeoNames.org
  • Google.com
  • Mylnikov.org
  • Zeitzonedb.com
  • Wunderground.com

Schritt 6: Machen Sie es besser

Mache es besser!
Mache es besser!

Ergebnis ist gar nicht schlecht! Software sieht gut aus und ist zuverlässig, während sie um neue Funktionen erweitert und vielleicht ein wenig aufgeräumt werden könnte, um das Anwendungsframework wirklich für andere Projekte wiederverwendbar zu machen. Die Kalibrierung einiger Sensoren ist nicht großartig, aber Testlaborausrüstung wäre erforderlich. Zeit ist kostbar und ich habe nicht viel, daher ging es nur langsam voran. Als ich fertig war, wurde eine anständige Unterstützung für den ESP32 verfügbar. Wenn ich jetzt damit anfangen würde, würde ich es nutzen und externe Sensoren per Bluetooth einbinden.

Jeder?

HINWEIS: Ich habe noch eine Handvoll Leiterplatten. Wenn jemand interessiert ist, sind sie zum Nenn- / Portopreis erhältlich.

Schritt 7: Fragen & Antworten

Fragen & Antworten
Fragen & Antworten
Fragen & Antworten
Fragen & Antworten

Zunächst einmal DANKE für Ihre überwältigend positiven Kommentare. Mit so viel Interesse habe ich ehrlich gesagt nicht gerechnet.

Ich habe eine Reihe von Fragen entweder über Kommentare oder private Nachrichten erhalten, also habe ich überlegt, die Antworten hier zu sammeln. Sollte noch mehr kommen, füge ich hinzu.

Ich habe hinten in einer Schublade die 8 verfügbaren Platinen gefunden - und sie sind auf dem Weg nach Belgien, Deutschland, Indien, USA, Kanada, UK, Australien. Wow, 3 Kontinente! Tolle.

Was soll ich auf der ATMOSCAN-Konfigurationsseite eingeben?

Die Atmoscan-Konfigurationsseite erfordert die folgenden Parameter:

  • SSID und Passwort des WLAN-Netzwerks, mit dem Sie sich verbinden möchten
  • MQTT-Server, den Sie verwenden. Zum Beispiel verwende ich mqtt.thingspeak.com
  • Verbindungszeichenfolge für verwendete MQTT-Themen. Zum Beispiel haben Thingspeak MQTT-Themen das Format: Kanäle/CHANNEL-ID/publish/WRITE-API (BEISPIEL: Kanäle/123456/publish/567890)
  • Syslog-Server: die IP des Syslog-Servers, den Sie für die Protokollierung verwenden
  • Google-Schlüssel für Maps Static API. Holen Sie sich einen Schlüssel von https://console.cloud.google.com/apis/dashboard. Erstellen Sie ein Projekt; Die von Atmoscan verwendete API ist https://maps.googleapis.com/maps/api/staticmap. Erstellen Sie einen Schlüssel für diese API in dem gerade erstellten Google-Projekt, verwenden Sie ihn hier
  • Wetter U-Taste. Erstellen Sie ein Konto auf www.wunderground.com, gehen Sie zu WEATHER API (Link unten auf der Homepage, gehen Sie zu SCHLÜSSELEINSTELLUNGEN, generieren Sie einen Schlüssel, verwenden Sie ihn hier
  • Geonames-Konto. Erstellen Sie ein Konto auf https://www.geonames.org/, aktivieren Sie es, um die kostenlosen Webdienste zu nutzen, und geben Sie hier den Benutzernamen ein
  • TimeZoneDB-Schlüssel. Erstelle ein Konto auf https://timezonedb.com/, erstelle einen Schlüssel, füge ihn hier ein

Wie konfiguriere ich Thingspeak?

Sie benötigen 3 Thingspeak-Kanäle. Felder werden wie folgt verwendet:

KANAL 1 Felder

  1. TEMPERATUR
  2. FEUCHTIGKEIT
  3. DRUCK
  4. PM01
  5. PM2.5
  6. PM10
  7. CPM
  8. STRAHLUNG

KANAL 2 Felder

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

CHANNEL 3 Felder (Systemkanal)

  1. VERFÜGBARKEIT IN MINUTEN
  2. KOSTENLOSER HEAP IN BYTES
  3. WIFI-RSSI (SIGNAL IN DBM)
  4. BATTERIESPANNUNG
  5. LINEAR SOC (BATTERY STATE OF CHARGE % - lineare Berechnung, proportional zur Spannung)
  6. NATIVE SOC (BATTERIELADEZUSTAND % - wie vom Messgerät gemeldet. Wie vom Messgerät abgelesen. HINWEIS: Das Messgerät zeigt 0% an, wenn 3,6 V erreicht werden, während die Batterien etwas weiter entladen werden können, sagen wir über 3 V. Die untere Grenze, bei dem ATMOSCAN sich selbst abschaltet, ist ein #define in der Datei globaldefinitions.h)
  7. SYSTEMTEMPERATUR (vom bme280, direkt auf der Platine montiert)
  8. SYSTEMFEUCHTIGKEIT (vom bme280, direkt auf der Platine montiert)

Die Platine ist sehr kompakt. Wie löte ich die SMD-Geräte, insbesondere den MAX8903A IC?

Zuerst schlage ich vor, dass Sie sich fragen, ob Sie in SMD einsteigen möchten oder ob es ein Einzelfall ist. Wenn letzteres, bitten Sie vielleicht jemanden, dies für Sie zu tun. Wenn Sie die SMD-Herausforderung annehmen möchten, investieren Sie ein wenig und besorgen Sie sich die richtigen Werkzeuge (Lot, Flussmittel, Isopropylalkohol-Kleineisen, Heißluftpistole, Pinzette, eine billige USB-Kamera, einen Leiterplattenhalter). Heutzutage ist das billiges Zeug. Dann schauen Sie sich ein YouTube-Video an – es gibt eine halbe Million – und verbringen Sie einige Zeit mit einer alten Platine, die Sie opfern und einige Komponenten entlöten / reinigen / löten können. Sie werden nicht glauben, wie lehrreich dies ist, um zu lernen, was Sie erwartet, die Temperatur richtig einzustellen usw. Aus Erfahrung… Ich habe angefangen, den Display-Anschluss in einem iPod touch mit SMD zu ändern, und ich habe den ersten getötet!

Tatsächlich ist die Atmoscan-Platine kompakt und dieser IC ist nicht einfach. Auch hier empfehle ich Ihnen nicht, dies als Ihr erstes SMD-Löten zu tun. Das QFN ist kein freundliches Paket, obwohl ich mittlerweile eine Nummer gelötet habe. Sie sind sich nie sicher, ob Sie es richtig gemacht haben…

Auf Atmoscan habe ich es zuerst gelötet, dann die umgebenden Komponenten, damit ich testen konnte, ob der Ladeteil der Platine funktioniert, dann habe ich den Rest erledigt. Aus den beigefügten Bildern sollten Sie die Ausrichtung der Komponenten ableiten können. Ich habe Public-Domain-Komponentenbibliotheken verwendet und die Ausrichtung ist auf dem Siebdruck nicht sehr offensichtlich.

Mein Weg: Zuerst lege ich mit dem Bügeleisen etwas Lötzinn auf die Pads. Dann viel Flussmittel (SMD-spezifisch) und ich habe den IC vorsichtig mit einer Pinzette positioniert. Anschließend das Ganze auf ca. 200/220 °C (unter Schmelzpunkt) aufheizen, um Spannungen durch ungleichmäßiges Erhitzen zu vermeiden. Dann erhöhte ich die Temperatur auf 290 ° C oder so weiter und um den IC herum. Wenn Sie ein wenig Lötzinn auf ein nahegelegenes Pad auftragen, sehen Sie, wann die Temperatur den Schmelzpunkt erreicht hat, da es glänzt.

Danach habe ich es mit Isopropylalkohol gereinigt und mit einer billigen USB-Kamera sorgfältig inspiziert. Typische Probleme sind Ausrichtung und Lotmenge, da einige Pins möglicherweise nicht angeschlossen sind. In einigen Fällen musste ich mit einem kleinen Lötkolben darauf zurückgreifen, um einigen Pins mehr Lötmittel hinzuzufügen, da dieser IC ein Wärmepad darunter hat, das auch gelötet werden muss. Dies macht es etwas schwierig, die Lotmenge zu erraten und es kann passieren, dass zu viel Lot darunter angehoben wird, so dass die Pins die Platine nicht berühren.

Wie gesagt, ich möchte Sie nicht erschrecken. Ich habe 3 Boards fertiggestellt und diese ICs nie getötet … Einmal musste ich sie sogar entfernen, aufräumen und von vorne beginnen, aber am Ende hat es funktioniert. Wieder nicht ganz einfach, aber machbar.

Wo hast du die Komponenten gekauft?

Meist bei eBay und Aliexpress. Die Marken sind jedoch original (Seeed, Pololu, Sparkfun).

Einige INDIKATIVE Links folgen. Hinweis: Schauen Sie sich um, vielleicht finden Sie noch günstigere Angebote…

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/Kostenloser-Versand-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…

Erste ProgrammierungDas Atmoscan-Board enthält eine Programmierschaltung, die der NodeMCU entspricht. Die serielle Verbindung wird normalerweise für die erste Programmierung verwendet. Danach ist die OTA-Programmierung über WLAN die bevorzugte Option, da dies bei vollständig montiertem Gerät erfolgen kann. Vergessen Sie nicht, dass die serielle Schnittstelle normalerweise vom Partikelsensor verwendet wird!

Um die Platine seriell zu programmieren, muss ein USB-Seriell-Adapter (z. B. FTDI232 oder ähnlich) an den J7-Anschluss (neben dem Reset-Knopf) entsprechend der Pinbelegung im Schaltplan angeschlossen werden. Programm kann ohne angeschlossene Sensoren hochgeladen werden, außer dass die Interrupt-Leitung des Geigersensors mit GND verbunden sein sollte, sonst bootet die Platine nicht (dazu Pin 1 und 3 im RAD-Anschluss verbinden). Der einfachste Weg, das Board ohne die Hauptskizze zu testen - also ohne die Komplexität der Sensoren - besteht darin, DIESES einfache Programm über ein serielles Kabel hochzuladen. Es erstellt einen WLAN-Zugangspunkt, der das weitere Flashen mit dem Hauptprogramm ermöglicht.

WICHTIG: Vergessen Sie nicht, die 4M / 2M SPIFFS-Konfiguration gemäß der Anleitung zu verwenden, sonst passt das Hauptprogramm nicht. Das Board muss mit dieser Konfiguration über die serielle Programmierung initialisiert werden, sonst kann es später zu Problemen mit OTA kommen.

Leider blockieren einige Sensoren die Initialisierung, wenn keine Sensoren vorhanden sind (abhängig vom Anbieter der Bibliothek). Ein Beispiel ist die Multigas-Sensorbibliothek. Um sicherzustellen, dass Atmoscan mit der vollständigen Firmware ordnungsgemäß bootet, können Sie den entsprechenden Prozess deaktivieren, siehe den entsprechenden Q&A-Punkt. Eine einfache Möglichkeit, ALLE Sensoren zum Testen zu deaktivieren, besteht darin, die Zeile #define ENABLE_SENSORS in der Datei GlobalDefinitions.h auszukommentieren.

Wenn das Board zum ersten Mal den Haupt-Sketch bootet, sollte es erkennen, dass es nicht konfiguriert ist und einen WLAN-Hotspot öffnen, mit dem man sich verbinden und einrichten kann. Unter den Einstellungen gibt es einen Syslog-Server, der beim Debuggen sehr hilft. Sie können die Protokollierungsebene auch erhöhen, indem Sie das #define DEBUG_SYSLOG in der Datei GlobalDefinitions.h auskommentieren. Bitte beachten Sie, dass sich in derselben Datei auch ein #define DEBUG_SERIAL befindet, das beim anfänglichen Debuggen verwendet wurde. Wenn es nicht kommentiert wird, gibt es _etwas_ Restprotokollierung aus, aber minimal. Ein ToDo-Punkt war immer, die Protokollierung einheitlich und auswählbar zu machen, aber ich hatte nie die Zeit, es aufzuräumen.

Haben Sie die von Ihnen verwendeten Bibliotheken geändert, ist eine Konfiguration erforderlich? (im Gegensatz zu Download & Kompilieren)

Gute Frage, das habe ich vergessen zu erwähnen. In der Tat werden ein paar Mods / Configs benötigt:

  • Bibliothek https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - serielle Debug-Anweisungen. Muss auskommentiert werden, da die serielle Schnittstelle für einen Sensor verwendet wird!
  • Bibliothek https://github.com/Bodmer/TFT_eSPI - erfordert eine Konfigurationsdatei, in der die Pinbelegung und die SPI-Frequenz angegeben sind
  • Bibliothek https://github.com/lucadentella/ArduinoLib_MAX1704… - Beim Betrachten der Kommentare und Pull-Requests ist mir aufgefallen, dass es einen Bugfix gibt, der nie zusammengeführt wurde

Soweit ich mich erinnere, sollte es das sein. Lassen Sie mich wissen, wenn Probleme auftreten.

HINWEIS: Bitte beachten Sie die Kommentare im aktuellen Quellcode - enthält Links zu allen benötigten Bibliotheken und wird auf dem neuesten Stand gehalten

Warum lesen manche Sensoren im Video/in den Bildern rot und manche grün?

Farbe zeigt Trend an. Es beginnt weiß und wenn es nach oben geht, ist es rot, wenn es nach unten geht, ist es grün.

Wie gehen Sie mit der Drift der Sensoren im Laufe der Zeit um? Wie gut sind diese Sensoren? Was kann ich mit diesen Sensoren sehen?

Ehrlich gesagt ist dies kein wissenschaftliches Messkit. Zum Kalibrieren benötige ich Geräte, die ich nicht zur Verfügung habe. Das ist wirklich ein Haustierprojekt. Ich habe mehrere Sensoren ausprobiert. Die Partikel, CO2, Temperatur, Feuchtigkeit, Druck, Geiger sind meiner Meinung nach eher gut. Beim NO2 habe ich Vorbehalte bezüglich der Kalibrierung und des Gesamtdesigns, aber es ist nicht viel verfügbar. Insgesamt handelt es sich um Mainstream-Sensoren.

Die Kombination ist jedoch gut genug, um Dinge zu zeigen, die Sie nicht erwarten würden.

Mit dem Atmoscan im Wohnzimmer und der Küche einen Raum entfernt erkennt er riesige Partikelspitzen, wenn z. B. bratende Sachen. Es fühlt sich das NO2 vom morgendlichen Verkehr auch bei geschlossenen Fenstern an.

War ein Geigerzähler wirklich nötig? Zeigt es etwas Nützliches an?

Zum Glück hatten wir keine nuklearen Zwischenfälle und es kommt noch kein Krieg… Trotzdem gibt es nicht weit entfernt Atomkraftwerke und die Regierung verteilt Jodtabletten für Kinder, die sie im Falle von Zwischenfällen in der Schublade aufbewahren sollen… also wurde ich misstrauisch. Bisher muss ich sagen, dass die Messwerte genau der zu erwartenden Hintergrundstrahlung (0,12 uSv/h) entsprechen.

Was kostet das Gerät insgesamt?

Ich hatte schon viele Komponenten zu Hause und die obigen Links geben Ihnen eine Idee. Ganz ehrlich, wenn Sie ein fertiges NetAtmo oder ähnliches kaufen, sparen Sie Geld. Sie können ein chinesisches Unternehmen nicht schlagen, das Dinge in großem Maßstab tut! Wenn Sie jedoch Spaß daran haben, vielleicht zusammen mit Ihren Kindern zu machen, lohnt es sich. Das Gute daran ist, dass ich bereits eine Reihe von Sensoren für Sie getestet (und verworfen) habe….

Wie sieht es mit Leiterplatten aus? Kannst du mir einen verkaufen?

Ich hatte ursprünglich 10 davon von dirtypcbs.com erstellen lassen und meine Dateien haben gut geklappt. Gute Qualität und günstig genug, 25USD / 20Euro für 10 Leiterplatten. Ich habe zwei gebraucht und sende die Reste gerne zum Selbstkostenpreis (2 Euro + Versand, je nach Standort und Versandpräferenzen). Ich fürchte, ich muss die ersten auswählen, die mir eine private Nachricht senden.

Können Sie ein Kit oder eine Kickstarter-Kampagne erstellen?

Schmeichelhaft, aber ehrlich gesagt fand ich es nie innovativ genug… und außerdem KEINE ZEIT!!

Sollte jedoch jemand die Idee aufgreifen, wäre eine zweite Iteration erforderlich. Es gibt einige scharfe Kanten im Design, die es wert wären, korrigiert zu werden, aber auch hier hatte ich nie genug Zeit für V2.

Zur Hardware: Kann ich einen Sensor, den Bildschirm usw. hinzufügen/entfernen, um die Funktionen zu erweitern/den Stromverbrauch zu reduzieren?

Das Display wird ohne MISO angeschlossen, daher liest die CPU nie vom Display. Daher könnte man das Display einfach nicht anschließen, es würde gut funktionieren. Allerdings ist das Display nur für einige Zeit eingeschaltet, nachdem die letzte Geste erkannt wurde, sodass der Stromverbrauch nicht wirklich beeinträchtigt wird.

Die Sensoren sind stattdessen stromhungrig und das Ganze verbraucht locker 400/500mA. Vergessen Sie nicht den Lüfter und auch die Tatsache, dass der Partikelsensor auch einen eingebauten Lüfter hat. Der ESP geht auch nicht in den Ruhemodus, da GPIO-Pons fehlen. Das hätte aber vielleicht 20mA gespart…

Die Software ist modular und Sie können ganz einfach Prozesse und Bildschirme hinzufügen/entfernen, sodass Sie Sensoren hinzufügen oder die Stromversorgung einschalten können, indem Sie einige entfernen, wenn Sie dies wünschen. Die einzige Einschränkung ist die Anzahl der GPIO-Pins. Sensoren können jedoch leicht hinzugefügt werden, wenn I2C oder alternativ ein I2C-Expander zum Hinzufügen von GPIOs verwendet werden könnte…

Um einen Sensor zu deaktivieren, um beispielsweise einen Teil-Build zu testen, wäre es meiner Meinung nach am besten, den entsprechenden Prozess nicht zu starten. Dies kann erreicht werden, indem der zugehörige enable()-Aufruf in der void startProcesses()-Funktion in der.ino-Hauptdatei auskommentiert wird. Sofern Sie das System nicht strukturell ändern möchten, würde ich die Prozesse nicht vollständig entfernen, da der Bildschirm und die MQTT-Prozesse sie abfragen. Auf diese Weise sollten sie einfach Null zurückgeben. Bitte beachten Sie, dass der Interrupt-Eingang für das Geiger-Board bei Nichtgebrauch heruntergezogen werden soll, sonst bootet das Board nicht.

Welche Verbesserungen hätten Sie gemacht, wenn Sie die Zeit für eine V2.0 gehabt hätten?

Nicht in einer bestimmten Reihenfolge..

  • Die Platine könnte Kupfer hinter der ESP8266-Antenne vermeiden. Ich habe es total vergessen und es macht das Strahlungsdiagramm nicht isotrop
  • Das Ladegerät ist meiner Meinung nach für einen so großen Akku unterdimensioniert / der Akku ist zu groß für das Ladegerät. Es gibt andere ICs und ich würde es mit einem anderen versuchen.
  • Es gibt bessere Batterieanzeigen.
  • Ich würde einen Ozonsensor hinzufügen
  • Ich würde einen ESP32 für mehr GPIOs und Bluetooth-Sensoren außerhalb des Hauptgeräts verwenden.
  • Wenn ich mehr GPIOs entweder mit dem ESP32 oder mit einem I2C-Expander hätte, würde ich einen verwenden, um den Lüfter zu steuern und einen anderen, um das Gerät über die Software auszuschalten. Jetzt, wenn die Batterie schwach ist, kann sie nur einen Bildschirm mit schwacher Batterie anzeigen. Dies ist in der Tat der größte Nachteil des Designs, da die Situation mit niedrigem Akkustand nicht elegant gehandhabt wird.

Auf Software

Ich habe länger gebraucht als die Hardware… Ich denke, sie enthält eine Reihe guter Konzepte, die leider nicht vollständig umgesetzt wurden. Insbesondere glaube ich, dass es aufgeräumt, möglicherweise erweitert und ein generisches Framework für ESP8266-Anwendungen leicht daraus abgeleitet werden sollte. Keine Zeit. Nimmt jemand die Herausforderung an?

Können Sie Sprachsteuerung hinzufügen?

Sollte machbar sein. Es gibt eine Reihe vorgefertigter Bibliotheken, um einen ESP8266 mit Alexa zu steuern und ich sehe nicht ein, warum die Integration ein Problem sein sollte. Die interessante Frage ist, was Sie damit tun möchten, funktional. Ich besitze kein Amazon Echo, also habe ich es nie versucht.

Wie hast du die Laserschnitte gemacht?

Die Zeichnungen werden mit SketchUp erstellt. Das Programm ist nett, aber es fehlt ernsthaft an Exportmöglichkeiten. Die 30-Tage-Testversion hilft jedoch, da sie zusätzliche Funktionen bietet. Ich habe es dann zur endgültigen Verarbeitung in Inkscape importiert.

Können Sie Sensoren über MOSFETs ein- und ausschalten, um Strom zu sparen?

Im Prinzip eine nette Idee, aber die meisten dieser Sensoren müssen ständig mit Strom versorgt werden, da sie eine Aufwärmzeit haben. Außerdem… gehen mir die GPIOs im ESP8266 aus. Ich musste sogar GPIO10 verwenden, das offiziell nicht funktioniert, aber auf dem ESP12E gut funktioniert.

Welche Fähigkeiten würde ich brauchen?

Um es von Grund auf neu zu bauen, benötigen Sie etwas Elektronik-Design-Hintergrund. Nicht wirklich viel, heutzutage muss man mit dem Internet nicht mehr wirklich zeilenweise Datenblätter lesen wie in meiner Anfangszeit… Wenn man das Ergebnis meiner Experimente nutzt, braucht man etwas SMD-Lötfähigkeiten, mechanisches Geschick und etwas Geduld.

Ist das Ihr erstes Projekt?

Es ist mein erstes instructable, aber nicht mein erstes Projekt. Früher habe ich viel gebastelt, aber heute habe ich wirklich nicht viel Zeit. Ich habe meine eingerosteten Fähigkeiten wiederbelebt, während ich versuche, meinen Kindern etwas Nützliches beizubringen..! Ich habe noch ein paar Projekte gemacht, die ich eines Tages vielleicht veröffentlichen werde.

Empfohlen: