Wskazówkowy miernik poziomu dwutlenku węgla w powietrzu sterowany z Arduino

Wskazówkowy miernik poziomu dwutlenku węgla w powietrzu sterowany z Arduino

Obecna atmosfera na Hawajach, gdzie mieszka autor tej konstrukcji, zawiera około 400 ppm dwutlenku węgla. Liczba ta jest niezwykle ważna dla nas wszystkich. Z dwutlenkiem węgla związane są nierozerwalnie zmiany klimatyczne na Ziemi. Obecnie, w czasach gdy otoczeni jesteśmy przez denialistów efektu cieplarnianego, pomiary tych wartości są kluczowe do szerszego zrozumienia i zaakceptowania faktu zmian klimatu na Ziemi.

Niezależnie od tego, jaka jest nasza motywacja do pomiaru poziomu dwutlenku węgla w otaczającym nas powietrzu, prezentowana poniżej konstrukcja jest idealnym rozwiązaniem. Pomiar poziomu CO2 wokół nas pozwoli zrozumieć jak przemysł wpływa na klimat, ale możemy również monitorować jakość powietrza w naszych mieszkaniach, by wiedzieć kiedy np. musimy przewietrzyć pokój. Koncentracja CO2 wpływa negatywnie na naszą zdolność skupienia się czy pracy, więc utrzymywanie stężenia dwutlenku węgla na niskim poziomie nie jest bez znaczenia dla naszego komfortu.

Autorka projektu zajmowała się wcześniej m.in. analizą gazów wydechowych u nurków, w szczególności poziomu dwutlenku węgla. Dlatego też stworzenie tego rodzaju systemu nie było dla niej wielkim problemem. System, aby prezentować dane w czytelny sposób, oprócz klasycznego wyświetlacza eInk, używa serwomechanizmu poruszającego ogromną wskazówką, zamieniając całe urządzenie w duży wskaźnik wychyłowy.

Dzięki ciekawej formie prezentacji danych i estetycznej, drukowanej w 3D obudowie, urządzenie doskonale wpasuje się w dowolnym pomieszczeniu, ale także sprawdzi się na przykład w szkolnej klasie, gdzie będzie prezentować dane na temat poziomu dwutlenku węgla w powietrzu.

Potrzebne elementy

Do skonstruowania tego ciekawego miernika potrzebne są nie najtańsze elementy, jednakże wszystko po, by zapewnić wysoką dokładność pomiaru oraz przystępny i precyzyjny sposób prezentacji danych. Aby zbudować taki miernik we własnym domu potrzebne będą:

Moduł Adafruit Feather 32u4 Adalogger. Dzięki zainstalowaniu karty SD można bardzo łatwo nie tylko mierzyć na bieżąco, ale także logować poziom CO2. Jeżeli nie zależy nam na funkcji zachowywania historycznych wartości, możemy kupić zwykłą wersję Feather 32u4,

Wyświetlacz Adafruit 2.13” eInk/ePaper – to trójkolorowy (czerwony, czarny, biały) wyświetlacz typu „elektroniczny papier”. Można w jego miejscu zastosować dowolny wyświetlacz TFT, jednakże żadna inna technologia nie zaoferuje takiej czytelności ekranu w mocnym słońcu, jak eInk,

Sensor do pomiaru poziomu dwutlenku węgla w atmosferze typu MH-Z16 firmy Winsen. Układ używa podczerwieni do pomiaru poziomu tego gazu. Osiąga dokładność do 50 ppm plus 5% mierzonej wartości, a dodatkowo charakteryzuje się wysoką liniowością i niewrażliwością na wpływ temperatury i wilgotności powietrza. W zależności od konkretnego modelu może mierzyć CO2 w zakresie od 0 do 2000 ppm, 5000 ppm, 10000 ppm 30000 ppm oraz 50000 ppm. W tym systemie zastosowano moduł o zakresie pomiarowym od 0 do 10000 ppm (0...1%),

Serwomechanizm, na przykład HITEC HS 325HB lub podobny. Element ten musi być zasilany napięciem 5 V, tak jak reszta systemu,

Wytrzymały włącznik systemu – autorka zastosowała podświetlany na niebiesko przełącznik,

Elementy mechaniczne do montażu serwa – można wykonać je samodzielnie z metalowych kształtowników, lub zakupić gotowe elementy, takie jak np. oferowane przez Servo City. Autorka konstrukcji skorzystała z tej drugiej opcji, jak widać na rysunku 1.

Oprócz powyższych elementów autorka wykonała w tehnice 3D wiele elementów obudowy i drobnych elementów montażowych. Na rysunku 2 pokazano dwa największe elementy – podstawę miernika oraz ozdobną obudowę w kształcie muszli. Wszystkie elementy można łatwo wydrukować z PLA na dowolnej drukarce 3D. Autorka użyła Creality CR10. Zajęło to kilka godzin, ale nie napotkano żadnych problemów. Muszla została następnie pomalowana teksturowaną farbą, aby zamaskować linie wydruku. Pozostałe elementy z wydruku to uchwyt mocowania wskaźnika i jego przeciwwaga, która montowana jest na końcu wskazówki. Pliki .stl do wydruku znaleźć można na stronie źródłowej projektu na portalu instructables.com (link na końcu artykułu).

Budowa części mechanicznej

Konstrukcja części mechanicznej jest dosyć prosta. System serwomechanizmu umożliwia szybki montaż mechanizmu serwo do konstrukcji metalowych wsporników. Elementy mocujące przedni róg z płytą tylną, która zawiera całą elektronikę, wykonane są z dwóch wygiętych metalowych płytek, które zostały przyklejone do tylnej części płyty za pomocą L-kształtnego łącznika, wykonanego z wygiętej blaszki. Sposób montażu elementów z Servo City pokazano na rysunku 3. Jeśli w inny sposób chcesz zamontować serwo z wskazówką to być może ten element będzie wyglądał inaczej.

Wskazówka użyta w projekcie może być praktycznie dowolnej długości – ta widoczna na zdjęciach ma około 120 cm. Została wykonana ze słupka drogowego do oznaczania podjazdów, wykonanego z włókna szklanego. Dzięki temu wskazówka jest lekka i sztywna, ale i tak, trzeba ją odpowiednio wyważyć. Na rysunku 4 pokazano przeciwwagę i sposób jej montażu na krótkim końcu wskazówki. W drukowanym elemencie, który jest przyklejony do wskazówki, umieszczamy metalowe obciążniki tak, aby środek ciężkości wskazówki znajdował się w miejscu, w którym będzie ona zamontowana do serwomechanizmu. Autorka użyła metalowych podkładek, umieszczonych w drukowanej obudowie, które następnie zostały zalane żywicą epoksydową. Do sprawdzenia środka ciężkości wystarczy samo serwo - dzięki sprzężeniu zwrotnemu można sprawdzić czy po osiągnięciu zadanej pozycji mechanizm jest w stanie ją utrzymać. Pozwala to też sprawdzić zachowanie dynamiczne, pozwoli na dobranie maksymalnej prędkości obrotowej serwa.

Montaż elektroniki

Schemat połączeń elektrycznych pokazane są na rysunku 5. W tym układzie serwo jest podłączone z pinem 11. Sensor podłączony jest do interfejsu I2C – linii SDA oraz SCL. Cały system zasilany jest napięciem 5 V z zasilacza ściennego (wydajność prądowa co najmniej 2 A) lub z baterii litowo-polimerowej. Zasilanie podłączone jest do systemu poprzez włącznik, który zamontowany jest w obudowie. Z 5 V zasilane są wszystkie układy na pokładzie sensora – płytka Feather z wyświetlaczem, serwomechanizm i sensor dwutlenku węgla. Do zasilacza podłączono również szereg niebieskich diod LED (nie zaznaczone na rysunku), które podświetlają wylot z „muszli”.

Laserowy czujnik CO2 jest zamontowany w pobliżu wyjścia muszli, aby miał on łatwy dostęp do powietrza na zewnątrz, a także by można było łatwo dmuchać w niego lub dostarczać inne mieszanki powietrza do jego wylotu (czy to w celu testowania systemu czy też innym). Moduł cyfrowy jest zamontowany wewnątrz muszli, a połączenia zasilania są wykonywane bezpośrednio do przełącznika. Przewód masy, przewody zasilające i linie SDA, SCL są wyprowadzane z tyłu płytki do sensora. Wyświetlacz eInk jest zamontowany z tyłu płyty obudowy w przygotowanym otworze. Po przetestowaniu wszystkich połączeń i działaniu urządzenia, wszystko jest ze sobą łączone na stałe z pomocą wytrzymałego kleju.

Program do sterowania

Program kontrolujący działanie sensora napisany został w C w środowisku Arduino IDE. Cały kod znajduje się w jednym szkicu Arduino, zawartym na listingu 1. Program wykorzystuje szereg zewnętrznych bibliotek, które pobrać należy z sieci:

NDIR_I2C.h do obsługi podczerwonego sensora dwutlenku węgla (zawarte na stronie Sandbox Electronics),

Adafruit_EPD.h do uruchamiania wyświetlacza eInk (znaleźć można ją na stronie Adafruit),

Servo.h – standardowa biblioteka do obsługi serw.

W pierwszej kolejności program definiuje piny niezbędne do komunikacji z wyświetlaczem. Następnie definiowany jest pin do sterowania serwomechanizmem. Potem system inicjuje serwomechanizm i sensor.

Funkcja w pętli odczytuje wartość z czujnika i wysyła ją do serwomechanizmu za pomocą funkcji map() i constrain(), które pozwalają na przeskalowanie wartości z jednego zakresu do drugiego (funkcja pos = map(mySensor.ppm, 400, 3000, 55 ,125); przeskalowuje wartość zmiennej mySensor.ppm z zakresu 400...3000 na zakres 55...125) a następnie ogranicza wychył serwomechanizmu – wartość zmiennej pos przyjmuje zakres od 55 do 125° (pos = constrain(pos, 55, 125). Ograniczenie ruchu serwomechanizmu jest koniecznie, aby wskazówka nie uderzała w boki urządzenia. Jeśli wykonamy mechanikę w inny sposób, to można zastosować tutaj inny zakres.

Ruch wskazówki realizowany jest w pętli for. Ma to na celu ograniczenie prędkości ruchu serwomechanizmu, aby pęd długiej wskazówki i przeciwwagi ramienia nie zniszczył urządzenia. To jakie muszą być opóźnienia zależne jest od wagi i długości wskazówki oraz jej przeciwwagi i należy dobrać je eksperymentalnie.

Podsumowanie

Powyższe urządzenie łączy w sobie zaawansowany sensor poziomu dwutlenku węgla z estetycznym i ciekawym sposobem prezentacji mierzonej wartości. Takie urządzenie może pełnić nie tylko rolę mirnika poziomu CO2 w naszych domach, ale może być estetycznym wyposażeniem dowolnego pomieszczenia.

Jeśli sensor CO2 zastąpimy innym sensorem, moduł może, po niewielkiej przeróbce oprogramowania, posłużyć do pomiaru innych wartości fizycznych – tylko dostępność sensorów jest ograniczeniem.

Strona Źródłowa projektu: http://bit.ly/2KwPfmU

Nikodem Czechowski, EP

Artykuł ukazał się w
Elektronika Praktyczna
grudzień 2019

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów