Spisu treści:

AtmoScan: 7 kroków (ze zdjęciami)
AtmoScan: 7 kroków (ze zdjęciami)

Wideo: AtmoScan: 7 kroków (ze zdjęciami)

Wideo: AtmoScan: 7 kroków (ze zdjęciami)
Wideo: Jennifer Lopez x Dolby Atmos : Can`t Get Enough 2024, Wrzesień
Anonim
Image
Image
Czujniki
Czujniki

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

AKTUALNOŚCI

Przejdź do mojego GitHub, aby uzyskać:

- Niektóre drobne zmiany sprzętowe poprawiają projekt, w tym możliwość wyłączenia się z oprogramowania, eliminując jedną z największych wad projektu - jak radzić sobie z niskim stanem baterii.

- Projekt PCB v2 jest teraz publikowany wraz z przewodnikiem, aby łatwo zastosować zmianę do płyt V1.0.

-Pliki CAD dla kompletnej obudowy

Nowa obudowa wygląda jak na zdjęciu powyżej… cóż, bez gumki

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

ATMOSCAN to urządzenie wieloczujnikowe przeznaczone do monitorowania jakości powietrza w pomieszczeniach. Chociaż opublikowano wiele projektów o podobnym przeznaczeniu, ten jest kompletnym systemem w kompaktowym, samodzielnym pakiecie, który je wszystkie podsumowuje. Posiada kolorowy wyświetlacz LCD, rozpoznaje czas i lokalizację, jest sterowany gestami i wysyła do ThingSpeak (lub innych) przez MQTT, ale może prawidłowo obsługiwać rozłączone operacje i ponowne połączenie. Dzięki wbudowanemu akumulatorowi wystarcza na cały dzień po odłączeniu od zasilania.

Wykorzystuje wielozadaniową platformę współpracy i jest bardzo responsywna na dane wejściowe użytkownika podczas próbkowania czujników, obsługi interfejsu użytkownika, wysyłania do MQTT. W rzeczywistości wyciska całkiem sporo z malutkiego ESP8266. Czyni to poprzez integrację wielu bibliotek open source i wykorzystanie internetowych usług internetowych.

Kredyty dla bibliotek trafiają do wielu współpracowników, patrz dalej.

Muzykę w teledysku można znaleźć TUTAJ

Krok 1: Czujniki

Atmoscan mierzy szereg zmiennych:

  • Temperatura
  • Wilgotność
  • Nacisk
  • CO2
  • WSPÓŁ
  • NO2
  • LZO (lotne związki organiczne, wskaźnik jakości powietrza)
  • PM 01
  • PM25
  • PM10
  • Promieniowanie

W tym celu integruje szereg dyskretnych czujników

  • BME280 (np. Link)
  • PMS7003 (np. Link)
  • MH-Z19 (np. Link)
  • HDC1080 (np. Link)
  • MiCS6814 (Łącze)
  • MP503 (Łącze)
  • Rura Geigera LND-712 (Link, znalazłem ją w Europie tutaj Link lub tutaj Link) z modułem wysokiego napięcia (Link)

Karty katalogowe znajdują się TUTAJ.

Krok 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Atmoscan można łatwo zbudować z NodeMCU lub dowolną inną płytą ESP8266 i niektórymi łatwo dostępnymi komponentami, takimi jak przełączniki poziomu i regulatory napięcia, jeśli zrezygnujesz ze zintegrowanej ładowarki.

Podczas gdy robiłem prototyp z osobnymi komponentami, do ostatecznej wersji zaprojektowałem specjalną płytkę, która integruje wszystkie funkcje i zapewnia zgrabne złącza dla czujników, diody LED stanu (niebieski = zasilanie podłączone; czerwony = ładowanie).

Pliki PCB Eagle dostępne TUTAJ.

W szczególności tablica integruje:

  • Obwód ładowania oparty na MAX8903A (Link)
  • Logika włączania/wyłączania jednym przyciskiem
  • Moduł ESP12E
  • Logika programowania
  • Przesuwnik poziomu
  • Sterownik podświetlenia LCD
  • Regulator napięcia 3.3V Step-Up/Step-Down oparty na Pololu S7V8F3 (Link)
  • Regulator napięcia 5V Step-Up oparty na Pololu U1V10F5 (Link)
  • Wskaźnik paliwa LiPo oparty na SparkFun TOL10617 (Link)

Wyświetlacz to 2,8 TFT 320x240 oparty na chipie ILI9341 (Link).

Czujnik gestów oparty jest na chipie PAJ7620U2 (Link), znacznie lepszym niż tani APDS9960, który generuje ciągłe przerwania i nie może pracować przez pleksiglas.

Czujniki są dość prądożerne, więc aby zagwarantować co najmniej 24h autonomii zrobiłem paczkę z 3 x 5000mAh LiPo 105575 (Link). W rzeczywistości 2 mogło wystarczyć. Ładowarka MAX8903 ma problemy z naładowaniem powstałego pakietu 15 000 mAh.

UWAGI - WIDOCZNE NA ZDJĘCIACH:

  • Pokazano pozycje złączy
  • Gniazdo karty SD należy wylutować z wyświetlacza, jeśli chcesz, aby zmieściło się w obudowie
  • Trzeba zrobić małe wycięcie na płytce drukowanej, aby nie przeszkadzać wentylatorowi (notch jest w modzie po iPhonie X). Poprawione w PCB V2

Skróty złączy na płytce drukowanej są następujące:

  • PRS: Czujnik ciśnienia barometrycznego (oparty na BME280) UWAGA: do montażu bezpośrednio na płytce drukowanej
  • VOC: Grove - czujnik jakości powietrza v1.3 (na podstawie MP503)
  • TMP: Cyfrowy czujnik wilgotności i temperatury o wysokiej dokładności (w oparciu o HDC1080)
  • PMS: PMS7003 Cyfrowy czujnik stężenia cząstek
  • GAS: Grove - wielokanałowy czujnik gazu (w oparciu o MiCS6814)
  • GES: Grove – czujnik gestów (na podstawie PAJ7620U2)
  • RAD: rurka Geigera (poprzez wysokonapięciowy moduł zasilania sterownika sondy Geigera 400V / 500V z cyfrowym wyjściem impulsowym TTL)
  • CO2: czujnik gazu CO2 na podczerwień MH-Z19
  • U1V10F: 5V Step-Up Regulator napięcia oparty na Pololu
  • U1V10F5 S7V8V3: Regulator napięcia 3.3V Step-Up/Step-Down oparty na Pololu S7V8F3
  • TOL10617: Wskaźnik paliwa LiPo Sparkfun
  • LCD: wyświetlacz ILI9341

Krok 3: Załącznik

Załącznik
Załącznik
Załącznik
Załącznik
Załącznik
Załącznik

Obudowa pochodzi z pojemnika z pleksi 10x10x10 cm, który kupiłem na ebayu i był przeznaczony do zupełnie innego zastosowania. Miał ładne szczeliny wentylacyjne, które były dokładnie tym, czego potrzebowaliśmy. Objętość w zasadzie wystarczała do spakowania całego zestawu, poza tym, że nie było to łatwe… niektóre wczesne próby oparte na makietach kartonowych nie powiodły się, więc zrezygnowałem i zmarnowałem kilka godzin z CAD 3D i miałem wewnętrzne podpory wycięte laserem. Przestrzeń wewnętrzna podzielona jest na komory tak, aby czujnik temperatury znajdował się jak najdalej od wewnętrznych źródeł ciepła. O ile obudowa zewnętrzna wykonana jest z materiału o grubości 3mm, o tyle blat z arkuszy 2+1mm. Ta sztuczka pozwoliła pokryć czujnik gestów tylko 1mm akrylem i to wystarczy, aby zadziałał.

Niektóre modyfikacje musiały być wykonane za pomocą narzędzi ręcznych na oryginalnej obudowie, takich jak wentylator, przełącznik i otwory USB. Wynik był jednak przyzwoity!

Pliki CAD są TUTAJ.

Krok 4: Montaż mechaniczny

Montaż mechaniczny
Montaż mechaniczny
Montaż mechaniczny
Montaż mechaniczny
Montaż mechaniczny
Montaż mechaniczny

Opakowanie jest bardzo gęste, ale dzięki projektowi 3D cad miałem kilka niespodzianek podczas montażu.

Cyrkulację powietrza (od góry do dołu) zapewnia mały wentylator. Po zakupie uczciwego numeru na Aliexpress / eBay zdałem sobie sprawę, że hałas tanich wentylatorów był nie do zniesienia dla urządzenia wewnętrznego. Skończyło się na tym, że kupiłem dość drogiego, wolno obracającego się Papsta 255M (Link) i zasiliłem go mniej niż 5V przez kilka diod. Wynik jest raczej dobry i na tyle cichy, że nie można go zauważyć (jest to nawet zaakceptowany przez żonę, najtrudniejszy certyfikat).

Krok 5: Oprogramowanie

Oprogramowanie
Oprogramowanie
Oprogramowanie
Oprogramowanie
Oprogramowanie
Oprogramowanie
Oprogramowanie
Oprogramowanie

Architektura oprogramowania opiera się na frameworku zorientowanym obiektowo, który uruchamia wiele (współpracujących) procesów obsługujących interfejs użytkownika, czujniki i MQTT. Jest świadomy lokalizacji i czasu, ale może obsłużyć rozłączenie / ponowne połączenie z WiFI.

Framework jest otwarty i może zarządzać dowolną liczbą ekranów, o ile ich kod i zasoby mieszczą się w pamięci Flash. Struktura aplikacji obsługuje gesty i przekazuje je na ekrany w celu dalszej obsługi lub anulowania w razie potrzeby. Gesty zarządzane przez framework to:

  • Przesuń w lewo / w prawo - Zmień ekran
  • (Palec) Wir w prawo - Obróć ekran
  • (Palec) Wir w lewo - Wywołaj ekran konfiguracji
  • (Ręka) Od daleka do zamknięcia - Wyłącz wyświetlacz

Ekrany dziedziczą z klasy bazowej i są zarządzane za pomocą następującego modelu zdarzeń:

  • aktywuj - odpalony raz, gdy ekran jest tworzony
  • aktualizacja - wywoływana okresowo w celu aktualizacji ekranu
  • dezaktywuj - wywoływane raz, przed zamknięciem ekranu
  • onUserEvent - wywoływane po uruchomieniu czujnika gestów. Pozwala odpowiedzieć, a także nadpisać domyślną obsługę zdarzeń, np. Przerwij przeciągnięcie, aby zmienić ekran

Każdy ekran deklaruje swoje możliwości, podając następujące informacje:

  • getRefreshPeriod - jak często ekran wymaga odświeżania
  • getRefreshWithScreenOff - jeśli ekran chce być odświeżony nawet przy wyłączonym podświetleniu. np. dla wykresów
  • getScreenName - nazwa ekranu
  • isFullScreen - przejmij pełną kontrolę nad wyświetlaczem lub zezwól na górny pasek z datą/godziną/lokalizacją/wskaźnik baterii/wskaźnik wifi

Framework jest w stanie tworzyć instancje i cofać alokację ekranów poprzez fabrykę klas deklaratywnych. Alokacja dynamiczna oszczędza pamięć RAM i umożliwia łatwą rozbudowę urządzenia. Ogólna struktura aplikacji jest również wielokrotnego użytku w innych projektach.

Ekrany aktualnie zaimplementowane w Atmoscan to:

  • Wartości czujników
  • Miernik Geigera / wykres półlogiczny
  • Status systemu
  • Dziennik błędów
  • Stacja pogodowa
  • Obserwator samolotu
  • Ustawiać
  • Niski poziom baterii

Ekrany konfiguracji umożliwiają ustawienie poświadczeń Wi-Fi, kanałów MQTT, serwera Syslog.

NOWOŚĆ w wersji 2.0: wszystkie klucze usług internetowych można teraz konfigurować za pośrednictwem portalu konfiguracyjnego. Jedyną wartością, która jest nadal zakodowana na sztywno, jest hasło OTA (wielkie litery ATMOSCAN).

UWAGA 1: Pierwsze programowanie musi być wykonane za pomocą kabla USB-szeregowego podłączonego do złącza programowania. Ponieważ port szeregowy jest zajęty przez czujnik, debugowanie i programowanie w ten sposób po montażu jest niepraktyczne, ponieważ wymagałoby odłączenia czujnika. Dlatego oprogramowanie obsługuje debugowanie SYSLOG i aktualizacje OTA.

UWAGA 2: Plik binarny ATMOSCAN ma ponad 700 KB, a ArduinoOTA wymaga, aby przestrzeń programowa była co najmniej dwa razy większa od rozmiaru obrazu, co wyklucza opcję „4M (3M SPIFFS)”. Jednak standardowa opcja „4M (1M SPIFFS)” jest również nieodpowiednia, ponieważ partycja SPIFFS byłaby niewystarczająca dla zasobów graficznych związanych ze stacją pogodową, spotterem samolotu i plikiem konfiguracyjnym. Dlatego stworzono niestandardową konfigurację „4M (2M SPIFFS)”, aby rozwiązać ten problem. Wyjaśnienie tutaj.

Dokumentacja i pełny kod źródłowy są dostępne tutaj.

KREDYTY ZAWIERA KOD I BIBLIOTEKI OD

  • Adaowoc
  • Arcao
  • Bblanchon
  • Bodmer
  • Zamknięta kostka
  • Gmag11
  • Knolleary
  • Lucadentella
  • Nasiona
  • Squix78
  • Tzapu
  • Czarodziej97

INTEGRUJE USŁUGI INTERNETOWE OD

  • Adsbexchange.com
  • GeoNames.org
  • Google.com
  • Mylnikov.org
  • Strefa czasowadb.com
  • Wunderground.com

Krok 6: Zrób to lepiej

Zrób to lepiej!
Zrób to lepiej!

Wynik wcale nie jest zły! Oprogramowanie wygląda dobrze i jest niezawodne, podczas gdy można je rozszerzyć o nowe funkcje i być może nieco posprzątać, aby struktura aplikacji mogła być naprawdę ponownie wykorzystana w innych projektach. Kalibracja niektórych czujników nie jest świetna, ale potrzebny byłby sprzęt laboratoryjny. Czas jest cenny, a ja mam niewiele, więc postępy były powolne. Kiedy skończyłem, dostępne stało się przyzwoite wsparcie dla ESP32. Gdybym zaczął go teraz, użyłbym go i zintegrował zewnętrzne czujniki przez bluetooth.

Ktokolwiek?

UWAGA: Mam jeszcze kilka płytek PCB, więc jeśli ktoś jest zainteresowany, są one dostępne w cenie nominalnej / pocztowej.

Krok 7: Pytania i odpowiedzi

Pytania i Odpowiedzi
Pytania i Odpowiedzi
Pytania i Odpowiedzi
Pytania i Odpowiedzi

Przede wszystkim DZIĘKUJEMY za bardzo pozytywne komentarze. Szczerze nie spodziewałem się tak dużego zainteresowania.

Otrzymałem wiele pytań w komentarzach lub prywatnych wiadomościach, więc pomyślałem o zebraniu odpowiedzi tutaj. Jeśli przyjdzie więcej, dodam.

Znalazłem z tyłu szuflady 8 dostępnych płytek drukowanych - i są one w drodze do Belgii, Niemiec, Indii, USA, Kanady, Wielkiej Brytanii, Australii. Wow, 3 kontynenty! Niesamowity.

Co powinienem umieścić na stronie konfiguracyjnej ATMOSCAN?

Strona konfiguracji Atmoscan wymaga następujących parametrów:

  • SSID i hasło do sieci Wi-Fi, z którą chcesz się połączyć
  • Serwer MQTT, którego używasz. Na przykład używam mqtt.thingspeak.com
  • Używane parametry połączenia dla tematów MQTT. Na przykład tematy Thingspeak MQTT mają format: kanały/ID-KANAŁU/opublikuj/WRITE-API (PRZYKŁAD: kanały/123456/opublikuj/567890)
  • Serwer Syslog: adres IP serwera syslog, którego używasz do logowania
  • Klucz Google do Maps Static API. Uzyskaj klucz z https://console.cloud.google.com/apis/dashboard. Utwórz projekt; Interfejs API używany przez Atmoscan to https://maps.googleapis.com/maps/api/staticmap. Utwórz klucz dla tego interfejsu API w właśnie utworzonym projekcie Google, użyj go tutaj
  • Przycisk Weather Underground. Załóż konto na www.wunderground.com, przejdź do WEATHER API (link na dole strony głównej, przejdź do USTAWIENIA KLUCZY, wygeneruj klucz, użyj go tutaj
  • Konto geonazw. Utwórz konto na https://www.genames.org/ włącz korzystanie z bezpłatnych usług internetowych i wpisz tutaj nazwę użytkownika
  • Klucz TimeZoneDB. Załóż konto na https://timezonedb.com/, utwórz klucz, umieść go tutaj

Jak skonfigurować Thingspeak?

Potrzebujesz 3 kanałów Thingspeak. Pola są używane w następujący sposób:

KANAŁ 1 pola

  1. TEMPERATURA
  2. WILGOTNOŚĆ
  3. NACISK
  4. PM01
  5. PM2,5
  6. PM10
  7. CPM
  8. PROMIENIOWANIE

KANAŁ 2 pola

  1. WSPÓŁ
  2. CO2
  3. NO2
  4. LZO

Pola CHANNEL 3 (kanał systemowy)

  1. CZAS PRACY W MINUT
  2. BEZPŁATNA KOPIA W BAJTACH
  3. WIFI RSSI (SYGNAŁ W DBM)
  4. NAPIĘCIE BATERII
  5. LINEAR SOC (STAN NAŁADOWANIA AKUMULATORA % - obliczanie liniowe, proporcjonalne do napięcia)
  6. NATIVE SOC (% STANU NAŁADOWANIA AKUMULATORA - zgłoszony przez miernik. odczytany z miernika. UWAGA: miernik wskazuje 0% po osiągnięciu 3,6V, podczas gdy akumulatory mogą być rozładowane nieco dalej, powiedzmy powyżej 3v. Dolna granica, przy którym ATMOSCAN się wyłącza, jest #define w pliku globaldefinitions.h)
  7. TEMPERATURA SYSTEMU (z bme280, montowany bezpośrednio do tablicy)
  8. WILGOTNOŚĆ SYSTEMU (z bme280, montowany bezpośrednio do płyty)

PCB jest bardzo kompaktowa. Jak lutować urządzenia SMD, zwłaszcza układ scalony MAX8903A?

Najpierw sugeruję, abyś zadał sobie pytanie, czy chcesz dostać się do SMD, czy jest to jednorazowe. Jeśli to drugie, może poproś kogoś, aby zrobił to za Ciebie. Jeśli chcesz podjąć wyzwanie SMD, zainwestuj trochę i zaopatrz się w odpowiednie narzędzia (lut, topnik, żelazko na alkohol izopropylowy, gorący pistolet, pęseta, tania kamera USB, uchwyt na PCB). W dzisiejszych czasach to tanie rzeczy. Następnie obejrzyj film na YouTube – jest ich pół miliona – i spędź trochę czasu ze starą płytką PCB, którą możesz poświęcić i odlutować/oczyścić/wlutować niektóre elementy. Nie uwierzysz, jak pouczające jest to, aby dowiedzieć się, czego się spodziewać, uzyskać odpowiednią temperaturę itp. Mówiąc z doświadczenia… Zacząłem SMD zmieniać złącze wyświetlacza w iPodzie touch i zabiłem pierwszego!

Rzeczywiście, płytka drukowana Atmoscan jest zwarta, a układ scalony nie jest łatwy. Ponownie, nie polecam robienia tego jako pierwszego lutowania SMD. QFN nie jest przyjaznym pakietem, mimo że do tej pory zlutowałem numer. Nigdy nie jesteś pewien, czy dobrze zrozumiałeś…

Na Atmoscanie najpierw go przylutowałem, potem otaczające elementy, żeby sprawdzić, czy ładująca część płytki działa, a potem dokończyłem całą resztę. Z załączonych zdjęć powinieneś być w stanie wywnioskować orientację komponentów. Użyłem bibliotek komponentów domeny publicznej i orientacja nie jest zbyt widoczna na sitodruku.

Mój sposób: najpierw położyłem trochę lutu na padach za pomocą żelazka. Potem dużo strumienia (specyficzne dla SMD) i ostrożnie ustawiłem układ scalony pęsetą. Następnie podgrzano całość do około 200/220C (poniżej temperatury topnienia), aby uniknąć napięć spowodowanych nierównomiernym ogrzewaniem. Następnie podniosłem temperaturę do około 290C i tak dalej i wokół układu scalonego. Jeśli nałożysz trochę lutowia na pobliski pad, zobaczysz, kiedy temperatura jest w punkcie topnienia, ponieważ będzie świecić.

Następnie wyczyściłem go alkoholem izopropylowym i dokładnie obejrzałem tanią kamerką USB. Typowe problemy to wyrównanie i ilość lutu, ponieważ niektóre piny mogą nie być połączone. W niektórych przypadkach musiałem do niego wrócić z małą lutownicą, aby dodać trochę lutu do niektórych pinów, ponieważ ten IC ma pod spodem podkładkę termiczną, którą również trzeba przylutować. To sprawia, że trochę trudno jest odgadnąć ilość lutowia i może się zdarzyć, że zbyt duża ilość lutu pod spodem może go podnieść tak, że piny nie dotykają płytki.

Powiedziawszy to, nie chcę cię przestraszyć. Ukończyłem 3 płyty i nigdy nie zabiłem tych układów scalonych… Kiedyś musiałem go nawet wyjąć, posprzątać i ponownie uruchomić od zera, ale w końcu zadziałało. Ponownie, nie jest to zbyt łatwe, ale wykonalne.

Gdzie kupiłeś komponenty?

Głównie na eBayu i Aliexpressie. Jednak te markowe są oryginalne (Seeed, Pololu, Sparkfun).

Poniżej kilka ORIENTACYJNYCH linków. Uwaga: rozejrzyj się, możesz znaleźć jeszcze tańsze oferty…

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…

Pierwsze programowaniePłytka Atmoscan zawiera układ programowania zgodny z NodeMCU. Połączenie szeregowe jest zwykle używane do pierwszego programowania. Następnie preferowaną opcją jest programowanie OTA przez Wi-Fi, ponieważ można to zrobić przy całkowicie zmontowanym urządzeniu. Nie zapominaj, że port szeregowy jest zwykle używany przez czujnik cząstek!

Aby zaprogramować płytkę z portem szeregowym, adapter USB-Serial (np. FTDI232 lub podobny) musi być podłączony do złącza J7 (obok przycisku reset) zgodnie z pinoutem na schemacie. Program można wgrać bez podłączonych czujników, poza tym, że linię przerwania czujnika geigera należy podłączyć do GND, w przeciwnym razie płyta się nie uruchomi (w tym celu należy podłączyć piny 1 i 3 w złączu RAD). Najprostszym sposobem przetestowania płytki bez użycia głównego szkicu - a więc bez komplikacji czujników - jest wgranie TEGO prostego programu przez kabel szeregowy. Tworzy punkt dostępu Wi-Fi, który umożliwia dalsze flashowanie z programem głównym.

WAŻNE: Nie zapomnij użyć konfiguracji SPIFFS 4M/2M zgodnie z instrukcją, w przeciwnym razie program główny nie będzie pasował. Płytę należy zainicjować przez programowanie szeregowe z tą konfiguracją, w przeciwnym razie mogą wystąpić problemy z OTA później.

Niestety inicjalizacja niektórych czujników jest blokowana, jeśli czujniki nie są obecne (zależy od dostawcy biblioteki). Jednym z przykładów jest biblioteka czujników wielogazowych. Aby upewnić się, że Atmoscan uruchamia się poprawnie z pełnym oprogramowaniem, możesz wyłączyć powiązany proces, zobacz odpowiedni punkt pytań i odpowiedzi. Prostym sposobem wyłączenia WSZYSTKICH czujników do testowania jest zakomentowanie wiersza #define ENABLE_SENSORS w pliku GlobalDefinitions.h.

Kiedy płyta uruchamia główny szkic po raz pierwszy, powinna rozpoznać, że nie jest skonfigurowana i powinna otworzyć hotspot wifi, z którym można się połączyć i skonfigurować. Wśród ustawień znajduje się serwer syslog, który bardzo pomaga w debugowaniu. Możesz również zwiększyć poziom rejestrowania, usuwając komentarz #define DEBUG_SYSLOG w pliku GlobalDefinitions.h. Zwróć uwagę, że w tym samym pliku znajduje się również #define DEBUG_SERIAL, który był używany podczas wstępnego debugowania. Jeśli nie jest zakomentowany, wyświetla _jakaś_ rejestrację resztkową, ale minimalną. Zadaniem ToDo zawsze było sprawienie, by rejestrowanie było jednolite i możliwe do wybrania, ale nigdy nie miałem czasu, aby to posprzątać.

Czy zmodyfikowałeś używane biblioteki, czy potrzebna jest jakaś konfiguracja? (w przeciwieństwie do pobierania i kompilowania)

Dobre pytanie, zapomniałem o tym wspomnieć. Rzeczywiście, potrzeba kilku modów / konfiguracji:

  • Biblioteka https://github.com/Seeed-Studio/Mutichannel_Gas_Sensor - szeregowe instrukcje debugowania. Trzeba to skomentować, ponieważ port szeregowy jest używany do czujnika!
  • Biblioteka https://github.com/Bodmer/TFT_eSPI - wymaga pliku konfiguracyjnego, w którym określone są przypisanie pinów i częstotliwość SPI
  • Biblioteka https://github.com/lucadentella/ArduinoLib_MAX1704… - Patrząc na komentarze i żądania ściągnięcia zauważyłem, że jest poprawka błędu, która nigdy nie została scalona

O ile dobrze pamiętam, tak powinno być. Daj mi znać, jeśli pojawią się jakiekolwiek problemy.

UWAGA: Proszę odnieść się do komentarzy w najnowszym kodzie źródłowym - zawiera linki do wszystkich potrzebnych bibliotek i jest aktualizowany

Dlaczego niektóre czujniki odczytują na wideo/zdjęciach kolor czerwony, a część zielony?

Kolor wskazuje na trend. Zaczyna się na biało i jeśli wchodzenie jest czerwone, jeśli schodzenie w dół jest zielone.

Jak radzisz sobie z dryfowaniem czujników w czasie? Jak dobre są te czujniki? Co mogę zobaczyć za pomocą tych czujników?

Szczerze mówiąc, to nie jest naukowy zestaw pomiarowy. Do kalibracji potrzebowałbym sprzętu, którego nie posiadam. To naprawdę projekt dla zwierząt. Próbowałem kilku czujników. Cząstka, CO2, temperatura, wilgotność, ciśnienie, Geiger są moim zdaniem raczej dobre. Na NO2 mam zastrzeżenia do kalibracji i ogólnego projektu, ale nie ma zbyt wiele do zaoferowania. Ogólnie rzecz biorąc, są to czujniki głównego nurtu.

Jednak kombinacja jest wystarczająco dobra, aby pokazać rzeczy, których byś się nie spodziewał.

Gdy Atmoscan znajduje się w salonie i kuchni o pokój dalej, wykrywa ogromne szczyty cząstek, gdy np. kurz. smażenie rzeczy. Czuje NO2 z porannego ruchu nawet przy zamkniętych oknach.

Czy licznik Geigera był naprawdę potrzebny? Czy pokazuje coś przydatnego?

Na szczęście nie mieliśmy incydentów nuklearnych, a wojna jeszcze się nie zbliża… Mimo to niedaleko są elektrownie jądrowe, a rząd rozdaje dzieciom pigułki z jodem, które trzymają w szufladzie na wypadek incydentów… więc nabrałem podejrzeń. Jak dotąd muszę powiedzieć, że odczyty są dokładnie zgodne z oczekiwanym promieniowaniem tła (0,12 uSv/h)

Jaki jest całkowity koszt urządzenia?

Miałem już w domu wiele komponentów, a powyższe linki dają pomysł. Szczerze mówiąc, kupując gotowe NetAtmo lub podobne, oszczędzasz pieniądze. Nie da się pokonać chińskiej firmy, która robi rzeczy na dużą skalę! Jeśli jednak lubisz robić być może razem z dziećmi, warto. Dobrą stroną jest to, że już przetestowałem (i wyrzuciłem) kilka czujników dla ciebie….

A co z płytkami drukowanymi? Czy możesz mi sprzedać?

Pierwotnie miałem 10 z nich stworzonych przez dirtypcbs.com i moje pliki działały dobrze. Dobra jakość i wystarczająco tania, 25 USD / 20 euro za 10 płytek drukowanych. Użyłem dwóch i chętnie wyślę pozostałe za sam koszt (2 Euro + przesyłka, w zależności od lokalizacji i preferencji wysyłki). Obawiam się, że będę musiał wybrać pierwszych, którzy wyślą mi prywatną wiadomość.

Czy możesz zrobić zestaw lub kampanię na kickstarterze?

Pochlebne, ale szczerze mówiąc nigdy nie myślałem, że to wystarczająco innowacyjne… a poza tym NIE CZAS!

Gdyby jednak ktoś podchwycił ten pomysł, potrzebna byłaby druga iteracja. W projekcie jest kilka ostrych krawędzi, które warto poprawić, ale znowu nigdy nie miałem wystarczająco dużo czasu na V2.

Na sprzęcie: Czy mogę dodać / usunąć czujnik, ekran itp., aby rozszerzyć możliwości / zmniejszyć zużycie energii?

Wyświetlacz jest podłączony bez użycia MISO, dlatego procesor nigdy nie odczytuje z wyświetlacza. Dlatego po prostu nie można podłączyć wyświetlacza, który będzie działał dobrze. Mimo to wyświetlacz jest włączony tylko przez pewien czas po wykryciu ostatniego gestu, więc nie ma to tak naprawdę wpływu na zużycie energii.

Czujniki są za to prądożerne, a całość z łatwością pobiera 400/500mA. Nie zapomnij o wentylatorze, a także o tym, że czujnik cząstek ma również wbudowany wentylator. ESP również nie przechodzi w tryb uśpienia, ze względu na brak GPIO pon. Być może zaoszczędziłoby to jednak 20 mA…

Oprogramowanie jest modułowe i można łatwo dodawać/usuwać procesy i ekrany, dzięki czemu można dodawać czujniki lub włączać oświetlenie, usuwając niektóre, jeśli chcesz. Jedynym ograniczeniem jest ilość pinów GPIO. Jednak czujniki można łatwo dodać, jeśli I2C lub alternatywnie można użyć ekspandera I2C do dodania GPIO…

Aby wyłączyć czujnik, na przykład w celu przetestowania częściowej budowy, moim zdaniem najlepszym sposobem byłoby nie rozpoczynanie powiązanego procesu. Można to osiągnąć poprzez zakomentowanie powiązanego wywołania enable() w funkcji void startProcesses() w głównym pliku.ino. O ile nie chcesz strukturalnie modyfikować systemu, nie usuwałbym procesów całkowicie, ponieważ ekran i procesy MQTT będą je odpytywać. W ten sposób powinni po prostu zwrócić zero. Należy pamiętać, że wejście przerwania tablicy geigera powinno zostać ściągnięte, jeśli nie jest używane, w przeciwnym razie tablica nie uruchomi się.

Jakie ulepszenia wprowadziłbyś, gdybyś miał czas na V2.0?

Nie w określonej kolejności…

  • PCB może uniknąć miedzi za anteną ESP8266. Zupełnie o tym zapomniałem i to sprawia, że wykres promieniowania jest nieizotropowy
  • Ładowarka moim zdaniem jest za mała jak na tak duży akumulator/akumulator jest za duży na ładowarkę. Istnieją inne układy scalone i spróbowałbym innego.
  • Są lepsze wskaźniki baterii.
  • Dodałbym czujnik ozonu
  • Użyłbym ESP32 dla większej liczby GPIO i czujników Bluetooth poza jednostką główną.
  • Gdybym miał więcej GPIO albo z ESP32, albo z ekspanderem I2C, użyłbym jednego do sterowania wentylatorem, a drugiego do wyłączania urządzenia z oprogramowania. Teraz, gdy bateria jest słaba, jedyne, co może zrobić, to wyświetlić ekran niskiego poziomu baterii. Jest to w rzeczywistości największa wada konstrukcji, ponieważ niski poziom baterii nie jest ładnie obsługiwany.

Oprogramowanie

Zajęło mi to dłużej niż sprzęt… Myślę, że zawiera wiele dobrych koncepcji, niestety nie w pełni zaimplementowanych. W szczególności uważam, że powinien zostać oczyszczony, potencjalnie rozszerzony i można z niego łatwo uzyskać ogólne ramy dla aplikacji ESP8266. Brak czasu. Ktoś podejmuje wyzwanie?

Czy możesz dodać sterowanie głosowe?

Powinno być wykonalne. Istnieje wiele gotowych bibliotek do sterowania ESP8266 z Alexą i nie widzę powodu, dla którego integracja miałaby stanowić problem. Interesujące pytanie brzmi, co chcesz z nim zrobić, pod względem funkcjonalności. Nie posiadam Amazon Echo, więc nigdy nie próbowałem.

Jak wykonałeś cięcia laserowe?

Rysunki są tworzone w programie SketchUp. Program jest fajny, ale poważnie brakuje mu możliwości eksportu. Jednak 30-dniowa wersja próbna pomaga, ponieważ ma dodatkowe funkcje. Następnie zaimportowałem go do Inkscape w celu ostatecznego przetworzenia.

Czy można włączać/wyłączać czujniki, aby oszczędzać energię za pomocą tranzystorów MOSFET?

W zasadzie fajny pomysł, ale większość z tych czujników musi być cały czas zasilana, ponieważ mają czas nagrzewania. Poza tym… zabrakło mi GPIO w ESP8266. Musiałem nawet użyć GPIO10, które oficjalnie nie działa, ale działa dobrze na ESP12E.

Jakich umiejętności potrzebuję?

Aby zbudować go od zera, potrzebujesz podstaw do projektowania elektroniki. Niewiele, w dzisiejszych czasach z internetem tak naprawdę nie trzeba czytać arkuszy danych linijka po linijce, jak w moich wczesnych latach… Jeśli korzystasz z wyników moich eksperymentów, potrzebujesz umiejętności lutowania SMD, umiejętności mechanicznych i trochę cierpliwości.

Czy to Twój pierwszy projekt?

To mój pierwszy instruktażowy, ale nie mój pierwszy projekt. Dużo majstrowałem w przeszłości, ale teraz naprawdę nie mam zbyt wiele czasu. Wskrzesiłem swoje zardzewiałe umiejętności, próbując nauczyć moje dzieci czegoś pożytecznego..! Zrobiłem jeszcze kilka projektów, które być może kiedyś opublikuję..

Zalecana: