Spisu treści:

Proste obserwatorium wewnętrzne: 9 kroków (ze zdjęciami)
Proste obserwatorium wewnętrzne: 9 kroków (ze zdjęciami)

Wideo: Proste obserwatorium wewnętrzne: 9 kroków (ze zdjęciami)

Wideo: Proste obserwatorium wewnętrzne: 9 kroków (ze zdjęciami)
Wideo: Ups. 2024, Wrzesień
Anonim
Proste obserwatorium wewnętrzne
Proste obserwatorium wewnętrzne

Ten projekt pokaże, jak zrobić proste obserwatorium z kilkoma istniejącymi i łatwymi do zdobycia czujnikami. Rzeczywiście, zbudowałem to dla jednego z moich uczniów. Uczeń chciałby dowiedzieć się, jak światło słoneczne wpływa na temperaturę i wilgotność w pomieszczeniu. Interesujące wielkości fizyczne w tym projekcie to (1) natężenie światła, (2) wilgotność, (3) temperatura i (4) ciśnienie powietrza. Dzięki tym informacjom będziesz w stanie stworzyć inne systemy lub urządzenia do sterowania klimatyzatorem, nawilżaczem lub grzejnikiem w celu stworzenia komfortowego środowiska w pomieszczeniu.

Krok 1: Przygotowanie czujników

Przygotowanie czujników
Przygotowanie czujników

Możesz zbudować obwód z następującymi czujnikami lub po prostu kupić płytki modułowe tych czujników lub płytkę modułową.

1. Czujnik światła otoczenia TEMT6000 (karta katalogowa PDF)

2. Ciśnienie i Temperatura BMP085 lub BMP180 (*są to stare produkty, może być konieczne znalezienie innych alternatyw) (dokument szkoleniowy od Adafruit)

3. Czujnik temperatury i wilgotności DHT11 (dokument szkoleniowy od Adafruit)

4. Czujnik światła UV GUVA-S12SD (Karta katalogowa PDF)

Do zastosowań czujników dołączyłem kilka linków referencyjnych. Możesz znaleźć przydatne samouczki i referencje w Internecie.

Krok 2: Przygotowanie procesora głównego

Przygotowanie procesora głównego
Przygotowanie procesora głównego

Do testowania systemu i kodowania wybrałem płytkę Arduino Uno. Zauważyłem jednak, że atmega328P nie ma wystarczającej ilości pamięci do przechowywania i uruchamiania kodu, jeśli doda się więcej czujników. Dlatego polecam zastosować płytkę Arduino atmega2560, gdy potrzebujesz więcej niż 4 czujników.

Mikrokontroler (MCU):

· Płytka Atmega328P dla Arduino

· Lub płytka Atmega2560 dla Arduino

Krok 3: Przygotowanie systemu

Przygotowanie systemu
Przygotowanie systemu
Przygotowanie systemu
Przygotowanie systemu

Chciałbym zmierzyć niektóre cechy fizyczne na zewnątrz i wewnątrz. Na koniec podłączyłem poniższe czujniki do płyty Atmega2560.

Środowisko wewnętrzne:

1. Ciśnienie i temperatura BMP180 x 1 szt.

2. Czujnik temperatury i wilgotności DHT11 x 1 szt.

Środowisko zewnętrzne:

1. Czujnik światła otoczenia TEMT6000 x 1 szt.

2. Ciśnienie i temperatura BMP085 x 1 szt.

3. Czujnik temperatury i wilgotności DHT11 x 1 szt.

4. Czujnik światła UV GUVA-S12SD x 1 szt

Może się okazać, że do pomiaru ciśnienia używałem różnych czujników. Dzieje się tak dlatego, że nie mam płytki modułu BMP180, kiedy budowałem obwód. Zalecam używanie tych samych czujników, jeśli potrzebujesz precyzyjnego pomiaru i uczciwego porównania.

Krok 4: Przygotowanie rejestracji danych

Dodatkowo chciałbym, aby urządzenie przechowywało dane bez podłączania do komputera. Dodałem moduł rejestracji danych z zegarem czasu rzeczywistego. Poniżej znajdują się elementy dotyczące rejestrowania danych i połączeń przewodowych.

· Karta SD

· Bateria pastylkowa CR1220

· Moduł rejestracji danych dla Arduino (dokument nauki od Adafruit)

Krok 5: Przygotowanie narzędzi

Poniżej przedstawiono niektóre narzędzia lub urządzenia, które byłyby potrzebne do zbudowania obwodu.

  • Narzędzie do owijania 30AWG
  • Lutownica
  • Drut lutowniczy (bez ołowiu)
  • Deska do krojenia chleba
  • Nagłówki 2,54 mm
  • Przewody połączeniowe
  • Owijanie przewodów (30AWG)
  • Gorący klej
  • Druk 3D (jeśli potrzebujesz etui na swoje urządzenie)
  • Arduino IDE (potrzebujemy tego do zaprogramowania płyty kontrolera Micro)

Krok 6: Zresetuj zegar czasu rzeczywistego DS1307 (RTC) w module rejestracji danych

Zresetuj zegar czasu rzeczywistego DS1307 (RTC) w module rejestracji danych
Zresetuj zegar czasu rzeczywistego DS1307 (RTC) w module rejestracji danych
Zresetuj zegar czasu rzeczywistego DS1307 (RTC) w module rejestracji danych
Zresetuj zegar czasu rzeczywistego DS1307 (RTC) w module rejestracji danych

Chciałbym wykorzystać te dane do eksperymentu naukowego. Dlatego przy analizie danych ważny jest prawidłowy czas pomiaru. Użycie funkcji delay() w programowaniu spowodowałoby błąd pomiaru w przesunięciu w czasie. Wręcz przeciwnie, nie wiem jak wykonać dokładny pomiar w czasie rzeczywistym tylko na platformie Arduino. Aby uniknąć błędu czasowego próbkowania lub zminimalizować błąd pomiaru, chciałbym pobierać każdą próbkę pomiarową z zapisem czasu. Na szczęście moduł rejestracji danych posiada zegar czasu rzeczywistego (RTC). Możemy go użyć do wyprowadzenia czasu próbkowania danych.

Aby użyć RTC, postępuję zgodnie z instrukcją (link), aby zresetować RTC. Polecam zrobić to najpierw z płytką Arduino Uno. Dzieje się tak dlatego, że musisz zmodyfikować obwód, gdy używana jest płyta Atmega2560 (połączenie I2C jest inne). Po ustawieniu zegara czasu rzeczywistego nie należy wyjmować baterii cr1220. Tymczasem proszę sprawdzić stan baterii przed rejestracją danych.

Krok 7: Połączenie

Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie

Oddzieliłem pomiar wewnętrzny i zewnętrzny. W ten sposób wykonałem dwa złącza do podłączenia dwóch różnych grup czujników. Do zamontowania nagłówków użyłem pustego miejsca w module rejestracji danych. Aby zakończyć połączenie obwodu, używam zarówno lutowania, jak i owijania. Proces owijania jest czysty i wygodny, a złącze lutownicze mocne i zabezpieczone. Możesz wybrać wygodną metodę budowy obwodu. Jeśli używasz płyty Atmega2560, upewnij się, że zbudowałeś połączenie skokowe dla pinów SDA i SCL. Połączenie zegara czasu rzeczywistego z tarczą rejestracji danych musi zostać ponownie podłączone.

Aby podłączyć czujniki, przylutowałem złącza do modułów czujników, a następnie wykorzystałem owijanie przewodów, aby połączyć wszystkie czujniki ze złączami. W przypadku korzystania z zewnętrznych modułów czujników zalecałem dokładne sprawdzenie napięcia roboczego. Niektóre moduły czujników akceptują zarówno wejścia 5 V, jak i 3,3 V, ale niektóre są ograniczone do używania tylko 5 V lub 3,3 V. Poniższa tabela przedstawia zastosowane moduły czujników i napięcie robocze.

Tabela. Moduł czujnika i napięcie robocze

Krok 8: Programowanie MCU

Programowanie MCU
Programowanie MCU

Na szczęście mogę znaleźć przykłady zastosowań dla wszystkich czujników. Jeśli jesteś nowy w ich użyciu, możesz pobrać je z Internetu lub zainstalować za pomocą menedżera bibliotek w Arduino IDE.

Zaprogramowałem system wyprowadzania ciągu dla każdej próbki. Ciąg zostanie wyprowadzony i zapisany na zamontowanej karcie SD. Jeśli chcesz przejrzeć dane, wyłącz urządzenie, a następnie odmontuj kartę SD. Następnie możesz zamontować kartę SD w czytniku kart. Plik zostanie zapisany jako plik csv. Po pobraniu pliku danych na komputer można go wyświetlić za pomocą programu tekstowego lub arkusza kalkulacyjnego.

(Kod źródłowy można pobrać w załączonym pliku.)

Krok 9: Przetestuj i używaj

Przetestuj i używaj!
Przetestuj i używaj!
Przetestuj i używaj!
Przetestuj i używaj!
Przetestuj i używaj!
Przetestuj i używaj!

Ważne jest, abyś zrozumiał znaczenie danych. Jednym z ważnych parametrów jest częstotliwość próbkowania. Aktualny przedział czasu pomiaru wynosi 1 min, może być konieczna jego zmiana.

Ponadto można by stwierdzić, że pomiar temperatury DHT11 nie jest dokładny. Jeśli potrzebujesz dokładniejszej wartości, możesz po prostu użyć odczytu temperatury z czujników ciśnienia BMP.

Dzięki za przeczytanie tego!

Zalecana: