Spisu treści:

Rejestrator danych Open Source (OPENSDL): 5 kroków (ze zdjęciami)
Rejestrator danych Open Source (OPENSDL): 5 kroków (ze zdjęciami)

Wideo: Rejestrator danych Open Source (OPENSDL): 5 kroków (ze zdjęciami)

Wideo: Rejestrator danych Open Source (OPENSDL): 5 kroków (ze zdjęciami)
Wideo: PLNOG22 - Tomasz Ludwiczak & Tomasz Jarlaczyk - DNSv6 i SSL - historie z życia Allegro.pl 2024, Lipiec
Anonim
Rejestrator danych typu open source (OPENSDL)
Rejestrator danych typu open source (OPENSDL)
Rejestrator danych typu open source (OPENSDL)
Rejestrator danych typu open source (OPENSDL)
Rejestrator danych typu open source (OPENSDL)
Rejestrator danych typu open source (OPENSDL)

Celem tego projektu jest zaprojektowanie, zbudowanie i przetestowanie taniego systemu pomiarowego do badań Building Performance Evaluation, który obejmuje co najmniej temperaturę, wilgotność względną, natężenie oświetlenia, z możliwością rozbudowy o dodatkowe czujniki oraz opracowanie prototypu tych urządzeń.

Wynikiem tego jest dostosowany i przystępny cenowo system, który umożliwia zainteresowanym stronom przeprowadzanie pomiarów wymaganych do oceny wydajności budynku w sposób wydajny i przystępny cenowo, poprzez jednoczesne rejestrowanie wielu parametrów środowiskowych. Opracowany rejestrator danych Open Source (OPENSDL) został porównany z rejestratorem danych HOBO U12-012. Ten dostępny na rynku odpowiednik systemu może mierzyć 3 parametry, a mianowicie temperaturę, wilgotność względną i natężenie oświetlenia oraz jeden kanał zewnętrzny dla innych typów czujników. Do pomiaru dowolnego innego parametru wymagane byłoby inne urządzenie pomiarowe. Charakterystyki mierzonych parametrów są ograniczone do zastrzeżonego sprzętu i oprogramowania, co ogranicza system do pomiaru pewnych parametrów z określoną dokładnością. HOBO U12-012 kosztuje około 13 000 jenów (185 USD), podczas gdy OPENSDL kosztuje 4 605 jenów (66 USD), co stanowi prawie jedną trzecią komercyjnego odpowiednika.

Rejestrator danych typu open source do monitorowania temperatury, wilgotności względnej i poziomu światła (oświetlenia) za pomocą Arduino Uno. Jest to majsterkowanie do opracowania rejestratora danych OPENSDL.

Wymagany czas: 2-3 godziny na lutowanie, 5 godzin na pakowanie (4 godziny - druk 3D i 1 godzina na cięcie laserowe) Wymagane umiejętności: Lutowanie, niewielka lub żadna wiedza z zakresu programowania i elektroniki

Wymagane części:

  1. Arduino Uno z kablem
  2. Tarcza rejestratora danych
  3. Bateria pastylkowa CR1220
  4. BME280 czujnik ciśnienia wilgotności temperatury tabliczka zaciskowa;
  5. TSL2561 tabliczka zaciskowa czujnika światła
  6. Moduł Wi-Fi ESP01-8266
  7. Złącze męskie i żeńskie RJ-9
  8. Nagłówki do układania w stos Shield dla Arduino
  9. Karta pamięci SD (dowolna pojemność)
  10. Tablica wektorowa (26 x 18 otworów)
  11. 8 baterii AA Uchwyt baterii

Wymagane narzędzia:

  • Lutownica (35W)
  • Drut lutowniczy
  • Przecinak do drutu
  • Narzędzie do zaciskania
  • Multimetr

Wymagane oprogramowanie: Arduino IDE (1.0.5 lub nowszy)

Wykorzystane biblioteki Arduino:

  • Biblioteka przewodów
  • Biblioteka SparkFun TSL2561
  • Biblioteka multisensorów Cactus BME280
  • Biblioteka kart SD
  • Biblioteka SPI
  • Biblioteka RTC

Uwaga: Czujnik BME280 to bardzo dokładny czujnik temperatury, wilgotności względnej i ciśnienia firmy Bosch. Podobnie DS1307 jest dokładnym zegarem czasu rzeczywistego firmy Maxim, a TSL2561 jest dokładnym czujnikiem światła. Istnieją tańsze i mniej dokładne alternatywy dla tych produktów, ale ten samouczek był skierowany do osób zainteresowanych gromadzeniem danych do oceny wydajności budynku i aplikacji do monitorowania budynku, które wymagają wysokiej precyzji i dokładności. Oznacza to, że dowolna konfiguracja sprzętu i oprogramowania (biblioteki, kod programu) była przeznaczona wyłącznie dla określonych produktów.

Krok 1: Montaż

montaż
montaż
montaż
montaż
montaż
montaż
montaż
montaż

Osłona rejestratora danych może być łatwo umieszczona na górze płytki Arduino Uno. Ta tarcza zapewnia możliwości rejestrowania danych (przechowywanie czasu i przechowywanie danych). Tarcza musiała być ułożona w stos. Do okrągłego gniazda należało włożyć baterię pastylkową CR1220, aby zegar działał nawet wtedy, gdy Arduino jest wyłączone. Kartę pamięci SD należy umieścić w dostarczonym gnieździe na kartę. Unikalna, dostosowana osłona została opracowana przy użyciu żeńskich styków złącza RJ-9 i nagłówków do układania osłon Arduino. Odpowiednie nagłówki zostały wlutowane w odpowiednich miejscach tak, aby ekran idealnie wpasował się w płytkę Arduino. Arduino ma 18 pinów z jednej strony i 14 pinów z drugiej strony. Nagłówki z taką samą liczbą pinów zostały użyte w takich samych odstępach (18 pinów) jak w Arduino. Pozostałą dodatkową przestrzeń w sąsiedztwie głowic wykorzystano na umieszczenie złącza RJ-9.

Nagłówki były najlepszym sposobem na użycie wymaganych pinów, jednocześnie udostępniając je innym komponentom. Zastosowane czujniki są zgodne z protokołem komunikacyjnym I2C, który wymaga 4 pinów Arduino, a mianowicie: SDA (dostępny również jako A4), SCL (dostępny również jako A5), 3.3V i GND. Cztery przewody wychodzące ze złącza RJ-9 zostały przylutowane do tych czterech pinów nagłówka. Liczba wymaganych złączy RJ-9 zależy od liczby czujników. W tym projekcie zastosowano 3 złącza RJ-9 (dwa dla BME280 i jedno dla TSL2561). Cztery przewody wychodzące ze złącza RJ-9 były oznaczone kolorami, a każdy kolorowy przewód miał określony pin dla wszystkich złączy RJ-9. Należy zauważyć, że kod koloru może się różnić na różnych elementach RJ-9. W takim przypadku należy zwrócić uwagę na położenie przewodu na złączu. Złącze RJ-9, po przylutowaniu, zostało przyklejone do płytki wektorowej za pomocą Feviqwika, dzięki czemu mocuje się na powierzchni. Połączenia te można zweryfikować za pomocą trybu ciągłości na multimetrze. W trybie ciągłości multimetr powinien wykazywać zerową rezystancję. Podłącz jedną z sond multimetru do lutowanego pinu, a drugą sondę do pinu wewnątrz złącza RJ-9. Multimetr powinien wyemitować dźwięk, co oznacza, że połączenia lutowane są prawidłowe, a połączenia wykonane prawidłowo. Jeśli dźwięk nie jest emitowany, sprawdź połączenia lutowane. Podobnie przylutuj złącze RJ-9 tymi samymi przewodami podłączonymi do tych samych otworów na płytkach stykowych czujnika, tj. A4, A5, 3,3 V i GND. Czujnik BME280 obsługuje dwa adresy I2C, co oznacza, że dwa czujniki BME280 mogą być jednocześnie podłączone do tego samego sterownika. W tym celu należy zmienić adres jednego z czujników poprzez zmostkowanie pól lutowniczych na czujniku. Układ połączenia bezprzewodowego ESP-01 wymagał następujących połączeń z Arduino.

ESP-01 ---------Arduino Uno

10 -------------------- TX

11 ---------RX

Vcc -----CH_PD

Vcc ------------------- Vcc

GND ----------------- GND

Uwaga:- Wiele diod LED w Arduino Uno zostało usuniętych w celu wydłużenia żywotności baterii. Diody LED wskaźnika zasilania, diody RX i TX zostały usunięte przez rozgrzanie połączeń lutowanych i wciśnięcie diody LED kleszczami.

Krok 2: Skonfiguruj IDE i biblioteki

Przed przystąpieniem do programowania należy pobrać Arduino IDE (zintegrowane środowisko programistyczne). Programowanie zostało wykonane na tej platformie. Do interakcji z różnymi komponentami OPENSDL potrzebne były różne biblioteki. Dla danych komponentów wykorzystano następujące biblioteki.

Składnik ------------------------------------------------- --------------Biblioteka

Czujnik temperatury i wilgotności BME280 ---------------------------------Cactus_io_BME280_I2C.h

Czujnik światła------------------------------------------------ ----------------SparkFun TSL2561.h

Zegar czasu rzeczywistego ----------------------------------------------- -------------RTClib.h

Gniazdo karty SD ------------------------------------------------------------ -------------SD.h

Połączenie I2C ------------------------------------------------ -------------Drut.h

Oddzielna biblioteka do komunikacji z ESP01 nie jest wymagana, ponieważ kod wgrywany w Arduino posiada komendy AT, które są wysyłane do monitora szeregowego, skąd ESP-01 pobiera instrukcje. Tak więc, w zasadzie, polecenia AT, za pomocą których działa ESP01, są drukowane w Monitorze szeregowym, które są przyjmowane jako polecenie wejściowe przez ESP-01. Aby zainstalować te biblioteki, po ich pobraniu otwórz Arduino IDE, przejdź do Szkic -> Dołącz bibliotekę -> Dodaj bibliotekę. Zip i wybierz pobrane biblioteki.

Krok 3: Programowanie systemu

Programowanie systemu
Programowanie systemu

Przed zaprogramowaniem OPENSDL połącz Arduino z laptopem. Po podłączeniu przejdź do Narzędzia -> Port i wybierz port COM, do którego jest podłączony OPENSDL. Upewnij się również, że w menu Narzędzia -> Płyty wybrana jest opcja Arduino Uno.

OPENSDL został opracowany do pracy w 2 trybach. W pierwszym trybie przechowuje dane na karcie SD na tarczy rejestratora danych. W drugim trybie przesyła dane przez Internet do strony internetowej za pomocą układu Wi-Fi ESP-01. Program dla obu trybów jest inny. Te wiersze kodu można bezpośrednio kopiować i wklejać w edytorze Arduino IDE i używać bezpośrednio. W kodzie musimy dokonać kilku dostosowań zgodnie z naszymi potrzebami:

  1. Ręcznie zmień wartość opóźnienia (1000) na końcu kodu, aby zmienić interwał rejestrowania. Wartość 1000 reprezentuje interwał w milisekundach.
  2. Edytuj wiersz kodu, który mówi mySensorData = SD.open("Logged01.csv", FILE_WRITE); i zastąp Logged01 nazwą pliku o żądanej nazwie. Rozszerzenie pliku można również zmienić, modyfikując rozszerzenie.csv tuż po nazwie pliku.
  3. Równanie kalibracji uzyskane przez znalezienie korelacji między czujnikiem nadrzędnym/wzorcowym a BME280 będzie się różnić w zależności od każdego czujnika. Zastąp ten wiersz kodu równaniem kalibracji czujników: Serial.print((1.0533*t2)-2.2374) – dla czujnika z domyślnym adresem (0x77), gdzie t2 jest wartością odczytaną z czujnika temperatury.

Do programowania drugiego dostępnego trybu OPENSDL, jakim jest system bezprzewodowy, przewidziano osobny program. ESP-01 musi być podłączony do OPENSDL zgodnie z połączeniami, jak wyjaśniono w kroku #2. Po wykonaniu połączeń podłącz Arduino do laptopa i wgraj pusty szkic w Arduino. Przełącz ESP-01 w tryb aktualizacji i zaktualizuj oprogramowanie układowe do najnowszej dostępnej aktualizacji. Po aktualizacji upewnij się, że pin resetujący Arduino jest połączony z pinem 3.3V, który omija bootloader Arduino

Krok 4: Produkcja

Produkcja
Produkcja
Produkcja
Produkcja
Produkcja
Produkcja

Obudowa do OPENSDL została stworzona z myślą o ochronie i poprawie estetyki. Obudowy zostały opracowane metodą druku 3D z materiału PLA, a obudowa mikrokontrolera została opracowana poprzez cięcie laserowe arkusza MDF i sklejanie elementów. Wydrukowane modele 3D zostały opracowane przy użyciu oprogramowania SketchUp, a rysunki 2D w formacie dxf do cięcia laserowego zostały utworzone przy użyciu programu AutoCAD.

W przypadku drukowania 3D pliki STL utworzone za pomocą programu SketchUp zostały otwarte i sprawdzone w oprogramowaniu Ultimaker Cura 3.2.1. Upewnij się, że używany jest materiał PLA, a dysza używanej drukarki jest przeznaczona do drukowania 0,4 mm. Platforma robocza drukarki 3D może wymagać kleju, aby przykleić wydrukowany obiekt 3D. Ale po zakończeniu drukowania klej tworzy silną przyczepność między drukowanym przedmiotem a platformą roboczą.

Krok 5: Kod

Kod (pliki.ino) jest przystosowany do pracy w oprogramowaniu Arduino IDE. Oto link do mojej strony Github z kodem i innymi szczegółami.

github.com/arihant93/OPENSDL

Nie wahaj się zadawać pytań dotyczących projektu.

Dziękuję.

Zalecana: