Spisu treści:

Rejestrator danych Arduino Pro-mini: 15 kroków
Rejestrator danych Arduino Pro-mini: 15 kroków

Wideo: Rejestrator danych Arduino Pro-mini: 15 kroków

Wideo: Rejestrator danych Arduino Pro-mini: 15 kroków
Wideo: 9. Jak zaprogramować Arduino Pro Mini za pomocą PL2303HX? 2024, Lipiec
Anonim
Rejestrator danych Arduino Pro-mini
Rejestrator danych Arduino Pro-mini

Instrukcje kompilacji dla rejestratora danych Arduino o otwartym kodzie źródłowym pro-mini

Zastrzeżenie: Poniższy projekt i kod można pobrać i używać za darmo, ale nie ma żadnej gwarancji ani rękojmi.

Muszę najpierw podziękować i promować utalentowanych ludzi, którzy zainspirowali pomysł na ten rejestrator danych i przyczynili się do kodu i użytych czujników. Po pierwsze, pomysł na rejestrator danych wziął się z bardzo dobrze zaprojektowanego i wyjaśnionego (przepraszam, że nasz samouczek nie jest tak dobry) rejestratora danych Edwarda Mallona: https://thecavepearlproject.org/2017/06/19/ arduina…

Po drugie, używane tutaj czujniki wilgotności gleby typu open source, a także kod/biblioteka do ich obsługi zostały zaprojektowane i zbudowane przez Catnip Electronics. Są to czujniki wysokiej jakości i bardzo wytrzymałe. Informacje o tym, gdzie je kupić i uzyskać kod do ich uruchomienia (dziękujemy Ingo Fischer) znajdują się poniżej.

Krok 1: Potrzebne materiały, narzędzia, sprzęt

Potrzebne materiały, narzędzia, sprzęt
Potrzebne materiały, narzędzia, sprzęt

Pro-mini płytka Arduino. Do tej aplikacji używamy open-source (podobnie jak wszystkie nasze części) chińskich pro-mini klonów (5V, 16MHz, mikroprocesor ATmega 326) (rys. 1a). Te tablice można kupić na Aliexpress, Ebay i podobne strony internetowe za mniej niż 2 USD. Jednak inne karty mogą być używane równie łatwo (zwróć uwagę na wymagania dotyczące napięcia potrzebnych czujników, a także wymagania dotyczące pamięci programu).

Karta SD i moduł rejestrujący zegar czasu rzeczywistego (RTC) wydany przez Deek-Robot (ID: 8122) (ryc. 1b). Ten moduł zawiera czytnik kart DS13072 RTC i micro-sd. Te płyty kosztują mniej niż 2 USD i są bardzo wytrzymałe.

Arduino nano (tak - „nano”) adapter z zaciskami śrubowymi, również wypuszcza Deek-Robot, który można kupić za mniej niż 2 USD od Aliexpressa lub podobnego (rys. 1c). Jak widać, po prostu kochamy Aliexpress.

Drut w izolacji typu solid-core o grubości 22 mm (rys. 1d).

Skrzynka rejestratora danych (rys. 1e). Używamy pudełek „klasy badawczej”, ale niedrogie plastikowe naczynia sprawdzają się dobrze w większości sytuacji.

Pojemnik na 4 baterie AA NiMh (rys. 1f). Można je nabyć na Aliexpress za ok. 10 zł. 0,20 USD za sztukę (tak – 20 centów). Nie marnuj pieniędzy na droższe obudowy baterii.

Panel słoneczny 6V, ok. 1W. Można kupić na Aliexpress za mniej niż 2 USD.

Lutownica lutownicza, lut i topnik typu past.

Pistolet na gorący klej.

Krok 2: Instrukcje kompilacji

Instrukcje kompilacji
Instrukcje kompilacji

Czas potrzebny na budowę: ok. 30 do 60 min.

Przygotuj adapter końcówek nano do lutowania.

Na potrzeby tej demonstracji przygotujemy adapter z końcówkami śrubowymi nano, który ułatwi podłączenie trzech czujników wilgotności gleby I2C. Jednak przy odrobinie kreatywności zaciski śrubowe można przygotować na różne sposoby, aby ułatwić innym urządzeniom. Jeśli nie wiesz, czym jest I2C, sprawdź następujące strony:

howtomechatronics.com/tutorials/arduino/ho…

www.arduino.cc/en/Reference/Wire

Pomysł użycia adapterów śrubowych nano został zaczerpnięty ze wspaniałego projektu rejestratora danych Edwarda Mallona:

thecavepearlproject.org/2017/06/19/arduino…

Wytnij ślady z tyłu zacisku śrubowego między dużymi i małymi stykami w pozycjach 3, 5, 9, 10 i 11 (licząc od góry zacisku) (rys. 2). Ślady te odpowiadają etykietom „RST”, „A7”, „A3”, „A2” i „A1” na zacisku śrubowym. Wycinanie śladów jest znacznie łatwiejsze, jeśli masz narzędzie typu „Dremel”, ale jeśli nie, mały nóż będzie działał bez problemu. Nie tnij się! Zwróć uwagę, że etykiety na zacisku śrubowym i na pro-mini nie są takie same (nano i pro-mini mają kilka pinów w różnych miejscach). Jest to jedna z niedogodności tego projektu, ale łatwo jest ponownie oznaczyć tablicę zaciskową po zakończeniu, jeśli chcesz.

Ostrożnie zeskrob (za pomocą narzędzia Dremel lub małego noża) cienką warstwę żywicy epoksydowej przylegającą bezpośrednio do dużych kołków 9, 10 i 11 (oznaczonych „A3”, „A2”, „A1” na końcówce nano) (rys. 2). Odsłonięta miedziana powłoka pod żywicą epoksydową jest uziemiona do płytki Arduino pro-mini. Później przylutujemy tę odsłoniętą sekcję do sąsiednich pinów, zapewniając w ten sposób trzy uziemione zaciski śrubowe.

Krok 3: instrukcje budowania

Instrukcje budowania
Instrukcje budowania

Odetnij osiem 8-centymetrowych odcinków izolowanego drutu o średnicy 22 mm i usuń ok. 5 mm izolacji z jednego końca i 3 mm z drugiego końca. Zalecamy stosowanie drutu litego.

Weź cztery z tych przewodów, zagnij jeden koniec o 90 stopni (koniec z 5 mm lub odsłoniętym drutem) i przylutuj *w poprzek* (tj. Łącząc wszystkie piny dużą ilością lutowia i topnika) w następujących punktach:

Przewód 1: duże styki 3, 4 i 5 (oznaczone „RST”, „5V”, „A7” na końcówce nano). Zmodyfikujemy te trzy zaciski śrubowe w trzy zaciski VCC (rys. 3).

Krok 4: instrukcje budowania

Instrukcje budowania
Instrukcje budowania

Przewód 2: duże styki 9, 10 i 11 (oznaczone „A3”, „A2”, „A1” na końcówce nano), a także odsłonięta wcześniej powłoka miedziana. Użyj dużej ilości lutu. Nie martw się, jeśli wygląda niechlujnie. Zmodyfikujemy te trzy zaciski śrubowe w trzy zaciski uziemiające (-) (rys. 4).

Krok 5: Instrukcje kompilacji

Instrukcje budowania
Instrukcje budowania

Przewód 3: duże styki 13, 14 i 15 (oznaczone „REF”, „3V3”, „D13” na końcówce nano). Zmodyfikujemy te trzy zaciski śrubowe w trzy zaciski A5 SCL do komunikacji I2C (rys. 5).

Krok 6: Instrukcje kompilacji

Instrukcje budowania
Instrukcje budowania

Przewód 4: duże styki 28, 29 i 30 (oznaczone „D10”, „D11”, „D12” na zacisku nano). Zmodyfikujemy te trzy zaciski śrubowe w trzy zaciski A4 SDA do komunikacji I2C (rys. 6).

Krok 7: Instrukcje budowania

Instrukcje budowania
Instrukcje budowania

Przylutuj po jednym przewodzie do każdego z małych (ponownie – małych) styków 9, 10 i 11 (oznaczonych „A3”, „A2”, „A1” na końcówce nano) (rys. 7).

Krok 8: Instrukcje budowania

Instrukcje budowania
Instrukcje budowania

Lutować

pozostały przewód do dużego pinu 22 (oznaczonego „D4” na zacisku nano) (rys. 8).

Krok 9: Instrukcje budowania

Instrukcje budowania
Instrukcje budowania

Przylutuj wolny koniec każdego przewodu do odpowiednich otworów na szpilki w osłonie rejestratora danych Deek-Robot (rys. 9):

duży pin 'RST+5V+A7' do otworu na pin 5V

duży pin 'A3+A2+A1' do otworu na pin GND

mały pin 'A3' do otworu bolca SCK

mały pin 'A2' do otworu bolca MISO

mały pin 'A1' do otworu bolca MOSI

duży pin 'REF+3V3+D13' do otworu na pin SCL

duży kołek 'D10+D11+D12' do otworu na kołek SDA

i duży pin 'D4' do otworu na pin CS

Krok 10: Instrukcje kompilacji

Instrukcje budowania
Instrukcje budowania

Należy pamiętać, że udostępniamy tutaj etykiety nano tylko w celu ułatwienia połączenia. Etykiety te nie będą odpowiadać pinom na płytce pro-mini po jej włożeniu do zacisku śrubowego.

Wlutuj dwa przewody o długości 6 cm do otworów A4 i A5 od spodu płytki pro-mini (rys. 10).

Krok 11: Instrukcje budowania

Instrukcje budowania
Instrukcje budowania

Przylutuj piny do płytki pro-mini i włóż ją do gotowego zacisku śrubowego. Nie zapomnij włożyć przewodów A5 i A4 do zacisków D12 (A4) i D13 (A5) na płytce nano. Zawsze pamiętaj, że piny na etykietach Arduino i zacisków śrubowych nie będą dokładnie wyrównane (płytki pro-mini i nano mają różne układy pinów).

Włóż baterię CR 1220 i kartę micro-sd do płyty rejestratora. Używamy kart SD o pojemności mniejszej niż 15 GB, ponieważ mieliśmy problem z kartami o większej pojemności. Używamy formatu kart do FAT32.

Na koniec zakryj wszystkie lutowane złącza i przymocuj wszystkie przewody do listwy zaciskowej gorącym klejem.

Tablica jest teraz gotowa do użycia. Gotowa plansza powinna teraz wyglądać tak: Rys. 11.

Krok 12: Konfiguracja rejestratora danych do użytku w terenie

Konfiguracja rejestratora danych do użytku w terenie
Konfiguracja rejestratora danych do użytku w terenie

Aby zapobiec przewróceniu się rejestratora danych w skrzynce rejestratora danych, a także zapewnić łatwy dostęp do pinów komunikacyjnych, zalecamy wykonanie platformy stabilizującej. Platforma utrzymuje również elektronikę co najmniej kilka centymetrów od dna pudełka na wypadek zalania. Używamy płyty akrylowej 1,5 mm i łączymy ją z rejestratorem za pomocą śrub, nakrętek i podkładek 4 mm (rys. 12).

Krok 13:

Obraz
Obraz

Korzystamy z pojemnościowych czujników wilgotności gleby typu open source I2C. Kupujemy je od Catnip Electronics (strona poniżej). Można je kupić na Tindie i kosztować ok. 9 USD za model standardowy i ok. 22 USD za model wytrzymały. W eksperymentach polowych zastosowaliśmy wersję wzmocnioną. Są bardzo wytrzymałe i oferują podobną wydajność jak znacznie droższe komercyjne alternatywy (nie umieścimy nikogo na Front Street, ale prawdopodobnie znasz zwykłych podejrzanych).

Czujnik Catnip Electronics I2C opisany w tym samouczku:

kup tutaj:

biblioteka arduino:

Biblioteka arduino na Github:

Podłącz żółty przewód czujnika I2C do jednego z zacisków śrubowych A5. Podłącz zielony przewód czujnika I2C do jednego z zacisków A4. Czerwony i czarny przewód z czujnika idą odpowiednio do zacisków VCC i uziemienia.

Włóż cztery naładowane akumulatory NiMh do pojemnika na akumulator. Podłącz czerwony przewód (+) do pinu RAW w rejestratorze danych (tj. pinu RAW na płycie pro-mini) (ale zobacz sekcję „Oszczędzanie energii” poniżej). Podłącz czarny przewód (-) do jednego ze styków uziemienia rejestratora danych.

W przypadku długotrwałego użytkowania w terenie należy podłączyć do rejestratora panel słoneczny 6V 1W. Panel słoneczny będzie służył do uruchamiania rejestratora danych i ładowania akumulatora w ciągu dnia i działa nawet przy zachmurzonym niebie (choć śnieg jest problemem).

Najpierw przylutuj diodę Schottky'ego ~2A do dodatniego zacisku panelu słonecznego. Zapobiegnie to przepływowi prądu z powrotem do panelu słonecznego, gdy nie ma promieniowania słonecznego. Nie zapomnij tego zrobić, bo w krótkim czasie będziesz miał wyczerpane baterie.

Podłącz końcówkę (+) z panelu słonecznego (tj diodę) do pinu RAW w rejestratorze (tj. pin RAW w pro-mini) a końcówkę (-) z panelu słonecznego do jednej z mas zaciski w rejestratorze.

Ta konfiguracja pozwala wbudowanemu regulatorowi napięcia w płytce pro-mini regulować napięcie pochodzące zarówno z panelu słonecznego, jak i akumulatora. Teraz… powiem, że nie jest to idealny zestaw do ładowania akumulatorów NiMh (trudne nawet w idealnych warunkach). Jednak panele słoneczne, z których korzystamy, przy pełnym słońcu emitują około 150 mA, co odpowiada około 0,06 C (C = pojemność akumulatora), co okazało się dla nas prostą, bezpieczną i niezawodną metodą ładowania dla naszych rejestratorów. Prowadziliśmy je w ten sposób w terenie nawet od roku w Kolorado. Prosimy jednak zapoznać się z zastrzeżeniem – nasze rejestratory nie są objęte gwarancją ani rękojmią. Za każdym razem, gdy używasz baterii lub paneli słonecznych w terenie, ryzykujesz wzniecenie pożaru. Bądź ostrożny. Użyj tego wzoru na własne ryzyko!

Zamocuj rejestrator danych i akumulator w obudowie odpornej na warunki atmosferyczne (rys. 13).

Krok 14: Oszczędzanie energii

Często wyłączamy diody LED zasilania zarówno z płyt pro-mini, jak i rejestratora danych. Ślady tych diod LED można ostrożnie wyciąć żyletką (patrz link poniżej). Każda dioda LED pobiera około 2,5mA prądu przy 5V (link poniżej). Jednak w przypadku wielu zastosowań ta strata mocy będzie znikoma i badacz może po prostu pozostawić diody LED w takim stanie, w jakim są.

www.instructables.com/id/Arduino-low-Proje…

Prowadzimy również bibliotekę „LowPower.h” (przez „rocketscream”; link podany poniżej), która jest bardzo łatwa w użyciu i znacznie zmniejsza zużycie energii między interwałami logowania.

github.com/rocketscream/Low-Power

Po wyjęciu diod LED zasilania z pro-mini i płytki do rejestracji danych oraz uruchomieniu biblioteki LowPower.h (patrz „kod” poniżej), logger zużyje ok. 1 godz. 1mA prądu przy 5V podczas snu. Pracując jednocześnie z trzema czujnikami I2C, rejestrator w trybie uśpienia (pomiędzy iteracjami próbkowania) pobiera ok. 4,5 mA przy 5 V i ok. 80 mA podczas próbkowania. Jednakże, ponieważ próbkowanie odbywa się bardzo szybko i dość rzadko, pobór prądu 80mA nie przyczynia się znacząco do rozładowania baterii.

Więcej energii można zaoszczędzić, gdy nie korzystasz z paneli słonecznych, podłączając zacisk (+) akumulatora bezpośrednio do pinu VCC w rejestratorze. Jednak podłączenie bezpośrednio do VCC, a nie do pinu RAW, pozwala uniknąć wbudowanego regulatora napięcia, a prąd do czujników nie będzie tak stały, jak gdyby był kierowany przez regulator. Na przykład napięcie będzie spadać w miarę rozładowywania się baterii w ciągu dni i tygodni, co w wielu przypadkach spowoduje znaczące zmiany w odczytach czujnika (w zależności od używanych czujników). Nie podłączaj panelu słonecznego bezpośrednio do VCC.

Krok 15: Kod

Dołączamy dwa szkice do uruchomienia rejestratora danych z trzema czujnikami wilgotności gleby I2C. Pierwszy szkic 'logger_sketch' będzie pobierał próbki z każdego czujnika i zapisywał dane dotyczące pojemności i temperatury na karcie SD co 30 minut (ale użytkownik może je łatwo zmienić). Drugi szkic „ChangeSoilMoistureSensorI2CAddress” pozwoli użytkownikowi przypisać różne adresy I2C do każdego z czujników, aby mogły być używane jednocześnie przez rejestrator danych. Adresy w 'logger_sketch' można zmienić w liniach 25, 26 i 27. Biblioteki potrzebne do uruchomienia czujnika można znaleźć na Github.

Zalecana: