Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Konfiguracja Raspberry Pi
- Krok 2: Nawiązywanie połączenia i podłączanie Rpi Wireless do sieci lokalnej
- Krok 3: Czujnik DS18B20 (temperatura) -- 1-przewodowy
- Krok 4: MCP3008 - wykrywanie analogowe
- Krok 5: Sprzęt
- Krok 6: Tworzenie bazy danych Mariadb
- Krok 7: Kod i testowanie na Github
- Krok 8: Uruchom kod podczas uruchamiania
- Krok 9: Skonfiguruj stronę internetową
- Krok 10: Opcjonalnie - miniaturowy prototyp
Wideo: Projekt czujnika gazu: 10 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Tlenek węgla i dwutlenek węgla, znane również jako CO i CO2. Gazy, które są bezbarwne, bezwonne, bez smaku i szczerze mówiąc niebezpieczne w wysokich stężeniach w zamkniętym pomieszczeniu. Jeśli mieszkasz, powiedzmy na przykład w pokoju studenckim, który jest źle odizolowany, nie ma dobrego przepływu powietrza iz jakiegoś powodu toster wydaje dziwny dźwięk podczas robienia tosta. Wtedy możesz wejść w kontakt z tymi gazami, a gdy tak się stanie, miejmy nadzieję, że skończy się to tylko małym bólem głowy, ponieważ w dużym stężeniu może cię obezwładnić lub nawet zabić (choć bardzo rzadko).
Postanowiłem więc wymyślić ten projekt. Mój pomysł jest prosty, użyj wentylatorów, aby zrobić przepływ powietrza. Dobre powietrze i złe powietrze, że tak powiem. Aby uzyskać dodatkowe narzędzie, dodałem dodatkowy czujnik temperatury, przycisk do ręcznej aktywacji wentylatorów, a także stronę internetową dla tych, którzy lubią przeglądać statystyki i/lub aktywować wentylatory ze swojego komputera.
Jako uczeń, rodzic, osoba samotna lub żywa istota. Jest to coś, czego normalnie chciałbyś uniknąć, mieszkając w zaciszu własnego domu. To pomaga tym, którzy lubią ułatwiać sobie życie.
Kieszonkowe dzieci
- Raspberry Pi 3+
- Ładowarka miniUSB 5V/2,5A
- Karta micro sd
-
Czujniki
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatura)
- 2 wentylatory 12 V DC
- 2 tranzystory 2n2222
- Wyświetlacz LCD 16*2
- Naciśnij przycisk
- MCP3008
- Konwerter poziomów logicznych
- Kabel Ethernet (ze względów konfiguracyjnych)
Krok 1: Konfiguracja Raspberry Pi
Przed rozpoczęciem pracy z Rpi będziemy potrzebować oprogramowania.
- WinSCP lub FilleZilla (opcjonalnie, jeśli chcesz przesłać pliki z komputera do Rpi)
- Dysk Win32 lub Etcher (który wolisz bardziej)
- Putty lub MobaXterm (które wolisz bardziej)
- Obraz raspbian z pulpitem
Zanim zacznę, chciałbym wspomnieć, że kiedy robię ten samouczek, kiedy wybieram jakiś program, NIE oznacza to, że go polecam. Na przykład lubię używać etchera, ponieważ jest on bardziej przyjazny dla użytkownika, ale Win32 ma opcję tworzenia kopii zapasowych. Teraz to jest poza moim systemem, zacznijmy.
Jeśli masz już Rpi, który jest podłączony do Twojej sieci Wi-Fi, przejdź do kroku 3.
Najpierw użyjemy Etchera, aby umieścić obraz Raspbian na karcie SD. Teraz, zanim wyciągniemy kartę SD, zmienimy trochę „rzeczy” w pliku cmdline.txt, który można znaleźć na obrazku. Otwórz plik.txt -> Dodaj tę linię "ip=169.254.10.1" (bez cudzysłowów) na końcu linii (wszystko w 1 linii) -> Zapisz plik
Po drugie, utwórz pusty folder o nazwie „ssh” w partycji rozruchowej (bez cudzysłowów).
Następnie możesz bezpiecznie wysunąć Microsd i umieścić go w Rpi.
Powodem zakodowanego na stałe statycznego adresu IP jest ułatwienie łączenia się z Rpi. Jeśli z jakiegoś powodu Rpi nie ma adresu IP z DHCP, możesz łatwo użyć statycznego adresu IP.
Krok 2: Nawiązywanie połączenia i podłączanie Rpi Wireless do sieci lokalnej
Zamierzamy uruchomić Rpi -> podłącz kabel Ethernet między komputerem a Rpi.
-
Uruchom Putty i wypełnij to:
- Nazwa hosta (lub adres IP): 169.254.10.1
- Port: 22
-
Pojawi się terminal i wpisz domyślną nazwę użytkownika i hasło:
- Nazwa użytkownika: pi
- Hasło: malina
Teraz, gdy jesteśmy połączeni lokalnie z RPI, chcemy, aby Rpi miało połączenie z Wi-Fi.
- Dodatkowo: wpisz "sudo raspi-config"
- Tutaj będziesz musiał zmienić hasło dla użytkownika pi (ze względów bezpieczeństwa)
- Następnie przejdź do Opcje lokalizacji -> Zmień czas (wybierz właściwy) -> Następnie przejdź do Kraj Wifi -> wybierz kraj.
- Zamknij raspi-config i uruchom ponownie.
- Po zalogowaniu tymczasowo stań się użytkownikiem root -> sudo -i
-
Napisz to polecenie, aby dodać swoją sieć do Rpi (kod poniżej listy)
- hasło = "hasło" (w cudzysłowie)
- Nazwa sieci = „SSID”
- Pamiętaj, aby użyć podwójnego >> !Ważne!
echo "hasło" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Teraz uruchom ponownie
Po ponownym połączeniu sprawdź swój adres IP, wpisując:
ifconfig
i sprawdź wlan0, obok inet.
Teraz, gdy mamy połączenie z Internetem, zróbmy „szybką” aktualizację.
aktualizacja sudo apt
sudo apt dist-upgrade -y
To może trochę potrwać.
Krok 3: Czujnik DS18B20 (temperatura) -- 1-przewodowy
W każdym projekcie zawsze będzie coś wyjątkowego, co trzeba zrobić, bo inaczej to nie zadziała.
Tym razem mamy go z czujnikiem temperatury DS18B20, który wymaga 1-wire, czego nie wyjaśnię, ale wyjaśnię przynajmniej jak to zrobić.
W tym celu musimy wrócić do raspi-config na Rpi, ładnego niebieskiego ekranu.
- Przejdź do opcji interfejsu
- Wybierz 1-Wire i włącz.
Gotowe…
Żartuję.
Teraz musimy dostosować /boot/config.txt
sudo nano /boot/config.txt
Dodaj tę linię na dole.
# Włącz onewire
dtoverlay=w1-gpio
Teraz sudo zrestartuj tę rzecz i gotowe.
Aby sprawdzić, czy działa, podłącz czujnik do Rpi, a następnie wróć do terminala i wpisz ten kod (patrz następny krok Sprzęt dotyczący podłączania czujnika temperatury).
cd /sys/bus/w1/devices/w1_bus_master1
ls
Powinieneś zobaczyć coś z cyframi i literami w kolorze ciemnoniebieskim w lewym górnym rogu, pamiętaj, aby zapisać tę informację na później, gdy będziemy pracować z kodem z github.
Jeśli z jakiegoś powodu to nie działa, sprawdź ten link, który wchodzi w to głębiej.
Krok 4: MCP3008 - wykrywanie analogowe
Ponieważ dokonaliśmy zmiany czujnika temperatury, musimy również dokonać pewnych zmian dla innych czujników, ponieważ musimy odczytywać dane analogowe. Tutaj przydaje się MCP3008, musimy również zmienić interfejs SPI.
sudo raspi-config
Przejdź do Opcje interfejsu -> Wybierz SPI -> włącz.
Następnie Zakończ.
Krok 5: Sprzęt
Nie skończyliśmy całkowicie z Rpi, ale wystarczająco, abyśmy mogli zacząć budować i składać sprzęt razem.
Pewną radą jest dokładne sprawdzenie połączeń podczas budowania, aby upewnić się, że… nie wysadzisz Rpi.
Ponadto na schemacie zauważysz, że niektóre komponenty znajdują się na nim tylko raz, mimo że będziemy pracować z więcej niż jednym takim samym komponentem. Oznacza to po prostu, że musisz powtórzyć ten sam proces budowania tego 1 komponentu. Jest jeden mały wyjątek, czujniki mq-x nie wymagają dodatkowego przetwornika poziomu ani MCP3008. Wystarczy dodać dodatkowy zielony kabel (w formacie pdf) do konwertera poziomów i MCP3008.
Dodatkowa edycja: wentylatory muszą używać tranzystora jako przełącznika. Używam tranzystora 2n2222A na 1 wentylator, ponieważ 2 wentylatory mogą być zbyt dużym obciążeniem.
Jeśli masz tranzystor, który może wytrzymać większy prąd niż dobry, pomiń ostatnią część tego kroku.
Jeśli nie masz takiego jak ja, to musisz to zrobić tak, 1 wentylator = 1 tranzystor, 2 wentylatory = 2 tranzystory i tak dalej (każdy wentylator ma własny tranzystor + dioda jak w pdf).
Będziesz także musiał dodać trochę kodu do app.py w backend_project później w kroku 7: Kod Git….
Krok 6: Tworzenie bazy danych Mariadb
Jak sugeruje tytuł, stworzymy bazę danych, abyśmy mieli miejsce do przechowywania naszych danych z czujników.
Po pierwsze, pobierz Mariadb na Rpi.
sudo apt-get zainstaluj serwer mariadb
Po instalacji skorzystajmy z niego.
mysql -u root
Hasło jest puste, więc nic do wpisania. Naciśnij enter.
Stwórzmy teraz użytkownika.
UTWÓRZ UŻYTKOWNIKA 'użytkownik'@'%' ZIDENTYFIKOWANY PRZEZ 'userdb';
PRZYZNAJ WSZYSTKIE UPRAWNIENIA NA *.* 'użytkownik'@'%' Z OPCJĄ PRZYZNANIA;
PRZYWILEJE WSPÓŁPRACUJĄCE;
Naciśnij Ctrl + C, aby wyjść i wykonaj szybkie ponowne uruchomienie usługi:
usługa sudo restart mysql
Zaloguj się za pomocą nazwy użytkownika: użytkownik i hasło: userdb:
mysql -u użytkownik -p
Czas na stworzenie bazy danych.
CREATE DATABASE project_db DOMYŚLNY ZESTAW ZNAKÓW utf8;
UŻYJ projektu_db
Utwórz tabelę "historiek" (czyli historię).
CREATE TABLE IF NOT EXISTS `historiek` (`id` INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR(5) NOT NULL, `datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT(4) NULL DEFAULT 0, PRIMARY KEY (`id`)) ENGINE = InnoDB;
I voila, baza danych jest stworzona.
Krok 7: Kod i testowanie na Github
Zbliżamy się do końca naszego projektu.
Zanim otrzymamy kod, będziemy musieli zaimportować kilka modułów do Rpi:
pip3 zainstaluj Flask_MySQL
pip3 zainstaluj kolbę-socketio
pip3 zainstalować -U kolby-cors
pip3 zainstaluj spidev
Teraz potrzebujemy kodu, aby to zadziałało, wpisz w terminalu:
klon git
Sprawdź, czy jest tam folder z:
ls
Teraz będziesz potrzebować 2 terminali, więc wygodnie jest kliknąć prawym przyciskiem myszy terminal i kliknąć Powiel sesje:
Przejdź do backend_project i temperatury za pomocą polecenia cd.
Teraz zanim uruchomimy programy do celów testowych. Pamiętasz jeszcze krok 3 z czujnikiem 1-wire, w którym musisz zapisać jakieś liczby? Nie martw się, jeśli tak, po prostu zerknij ponownie na krok 3.
Dodamy te liczby do kodu, ponieważ będzie musiał znać właściwy czujnik podczas jego używania.
Terminal z folderem temperatury znajdziesz app.py. Otworzymy to.
sudo nano app.py
Poszukaj funkcji, która nazywa się "def temperatuur():", tam będziesz musiał zastąpić "**" wpisanymi przez siebie liczbami. W moim przypadku dostałbym tę linię kodu (każdy numer jest unikalny).
nazwa_pliku_czujnika = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave
Czas testowania. Oba terminale w folderze backend_project i temperature wpisz:
python3 aplikacja.py
Teraz zapamiętaj krok 5: sprzęt, w którym musisz dodać kod, jeśli używasz wielu wentylatorów i tranzystorów?
Dobrze, jeśli nie, wróć do kroku 5.
Teraz musimy dodać kod, jak wspomniałem, do app.py w backend_project. Aby było łatwiej, zrobiłem przykład w kodzie. W każdym wierszu kodu komentarza, który zawiera „fan1”, odkomentuj te wiersze i voila, teraz możesz użyć 2 wentylatorów.
Jeśli chcesz użyć więcej niż tylko 2 wentylatorów, skopiuj i wklej ten sam kod pod nim, ale z innym numerem. Wadą tego jest bardziej osobista praca dla Ciebie i mniej dostępnych gpio.pins. Nie ma z tego żadnych korzyści, o których wiem.
Krok 8: Uruchom kod podczas uruchamiania
Chcemy, aby te 2 skrypty Pythona działały w momencie uruchomienia naszego Rpi, a w przypadku awarii skryptu powinien on sam się zrestartować. W tym celu wykonamy 2 usługi.
Aby to zrobić, wpisz:
sudo nano /etc/systemd/system/temperature.service
Skopiuj i wklej to dla temperature.service:
[Jednostka]Opis=Usługa temperatury po=multi-user.target
[Usługa] Typ=prosty
ExecStart=/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
StandardInput=tty-force
Restart = w przypadku awarii
RestartSec=60s
[Zainstalować]
WantedBy=wielu użytkowników.cel
Zamknij i zrób ponownie, ale potem dla backend_project.service:
Pierwszy otwarty tekst:
sudo nano /etc/systemd/system/backend_project.service
Następnie ponownie skopiuj i wklej:
[Jednostka]Opis=usługa backend_project
After=multi-user.target
[Praca]
Typ=prosty
ExecStart=/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
StandardInput=tty-force
Restart = w przypadku awarii
RestartSec=60s
[Zainstalować]
WantedBy=wielu użytkowników.cel
Zapisz i zamknij.
Ostatnia część to wpisanie tego:
sudo systemctl demon-reload
sudo systemctl włącz temperature.service sudo reboot
Teraz nasze 2 skrypty Pythona powinny działać automatycznie podczas rozruchu.
Krok 9: Skonfiguruj stronę internetową
Po pobraniu repozytorium powinieneś również otrzymać folder o nazwie front. Tutaj znajdują się treści na stronę internetową.
Najpierw potrzebujemy apache, zanim będziemy mogli korzystać z folderu. Postępuj zgodnie z przewodnikiem pod tym linkiem dla Apache.
Kiedy będziesz gotowy. Przejdź do miejsca, w którym znajduje się przedni folder:
cd /Dokumenty/nmct-s2-project-1-TheryBrian
Następnie wpisz:
sudo mv przód/var/www/html
Kiedy to zrobisz, przejdź do folderu html, przygotuj się do żmudnej pracy (moja wina).
cd /var/www/html/
następnie przejdź do folderu przedniego i zacznij przenosić wszystko do folderu html.
przykład:
sudo mv css /var/www/html
Następnie usuń przedni folder.
I ze wszystkim skończyliśmy.
Powodzenia:).
Krok 10: Opcjonalnie - miniaturowy prototyp
Ze względów testowych zrobiłem prototyp tylko pudełka z całym sprzętem w środku, abym mógł sprawdzić, czy wszystko działa na zamówienie.
Normalnie ten projekt byłby realizowany na większą skalę. Na przykład: pokój, dom, fabryka, sklep i tak dalej…
Ale oczywiście zanim zaczniemy robić dziury w ścianach (ładny wierszyk). Najpierw chcemy sprawdzić, czy to po prostu działa. Właściwie nie musisz robić pudełka do testów, ale zawsze fajnie jest zrobić trochę rzemiosła.
Oto mój przykład.
Zalecana:
Łączenie czujnika gazu z Arduino: 4 kroki
Połączenie czujnika gazu z Arduino: Czujnik dymu MQ-2 jest czuły na dym i następujące palne gazy: LPG, butan, propan, metan, alkohol, wodór. Rezystancja czujnika jest różna w zależności od rodzaju gazu. Czujnik dymu posiada wbudowany potencjometr
Alkomat Visuino Jak korzystać z czujnika gazu alkoholowego MQ-3: 8 kroków
Alkomat Visuino Jak korzystać z czujnika gazu alkoholowego MQ-3: W tym samouczku użyjemy modułu Arduino UNO, OLED Lcd, modułu czujnika gazu alkoholowego MQ-3 i Visuino, aby wyświetlić poziom alkoholu na ekranie LCD i ustawić wykrywanie limitu. Obejrzyj film demonstracyjny
Jak skalibrować i używać czujnika gazu MQ9 z Arduino: 8 kroków
Jak kalibrować i używać czujnika gazu MQ9 z Arduino: Możesz przeczytać ten i inne niesamowite samouczki na oficjalnej stronie internetowej ElectroPeakPrzeglądW tym samouczku dowiesz się, jak kalibrować i używać czujnika gazu MQ9 z płytką Arduino. czujnik gazu jest i jak to działa. Com
ZMYSŁOWA CZAPKA DLA CZUJNIKA JAKOŚCI POWIETRZA I GAZU RASPBERRY PI V1.1: 9 kroków
CZAPKA SENSLY DLA DETEKTORA JAKOŚCI POWIETRZA I GAZU RASPBERRY PI V1.1: Sensly to przenośny czujnik zanieczyszczeń zdolny do wykrywania poziomu zanieczyszczeń w powietrzu za pomocą pokładowych czujników gazu do zbierania informacji o różnych obecnych gazach. Te informacje mogą być przesyłane bezpośrednio do smartfona, aby w czasie rzeczywistym
Kto jest w Moich Drzwiach? Projekt czujnika ruchu PIR/czujnika zasięgu: 5 kroków
Kto jest w Moich Drzwiach? Projekt czujnika ruchu PIR/czujnika zasięgu: Nasz projekt ma na celu wykrywanie ruchu za pomocą czujników PIR i czujników odległości. Kod Arduino wyśle sygnał wizualny i dźwiękowy, aby poinformować użytkownika, że ktoś jest w pobliżu. Kod MATLAB wyśle sygnał e-mail, aby powiadomić użytkownika, że ktoś jest w pobliżu.To urządzenie