Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Konfiguracja Raspberry Pi
- Krok 2: Konfiguracja Enviro PHAT
- Krok 3: Ustawienie konta/połączenia IFTTT
- Krok 4: Edycja skryptu
- Krok 5: Korzystanie ze skryptu
- Krok 6: Gotowe
Wideo: Utrzymuj dziecko w chłodzie tego lata - Kontroluj głupich fanów za pomocą inteligentnych rzeczy!: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Od dwóch tygodni, w momencie pisania tego, zostałem tatą niesamowitego chłopca!
Wraz ze zmieniającymi się porami roku, wydłużającymi się dniami i coraz cieplejszymi temperaturami, pomyślałem, że dobrze byłoby mieć jakiś monitor w przedszkolu, aby sprawdzić, jak gorąco tam było!
Przez lata nie majstrowałem zbytnio przy pythonie, ale chciałem wrócić do tego od pierwszego roku na uniwersytecie, prawie 5 lat temu! Z tego powodu pomyślałem, że lepiej będzie udokumentować to, co zrobiłem, aby pomóc mi później, a także pomóc każdemu, kto chce zrobić to samo!
Używając Raspberry pi, Enviro pHAT i inteligentnej wtyczki kasa TP-link, możesz sterować wtyczkami za pomocą frameworka IFTTT! jest to naprawdę proste i możesz nawet zmodyfikować ten przewodnik, aby kontrolować wszystko za pomocą różnych czujników i różnych urządzeń! Mam nadzieję, że uznasz to za przydatne. Jeśli podoba Ci się ta instrukcja, nie zapomnij zagłosować na moje zgłoszenie w konkursie czujników!:D (przepraszam za pytanie), robię to po raz pierwszy i chciałbym mieć szansę na wygranie czegoś przez cały czas, który w to wkładam
** EDYCJA ** W ciągu najbliższych kilku dni zamierzam przenieść te dane na tablicę Grafana, jeśli uważasz, że to byłoby dobre, daj znać!:D
Przejdźmy od razu…
Kieszonkowe dzieci
- Zrobi to każde Raspberry pi, ale wybrałem Zero W, ponieważ to było to, co musiałem oddać w moim losowaniu, ma również najmniejszą obudowę z domyślnie włączonym Wi-Fi! - Raspberry PI Zero w
- Karta SD, każdy ma inne preferencje, ale użyłem jednego z nich! - Karta micro sd
- Jeśli utkniesz, oto oficjalna obsługiwana dokumentacja kart SD -oficjalnie obsługiwane karty SD
- Przewody połączeniowe (wyjaśnię później) - Przewody połączeniowe
- Enviro pHAT dla wszystkich wspaniałych czujników! - Envrio-pHAT
- Inteligentna wtyczka, wybrałem TP-Link, ponieważ nie potrzebujesz żadnych wymyślnych koncentratorów, aby to zadziałało! - Inteligentna wtyczka!
- Głupi wentylator do sterowania, można użyć dowolnego wentylatora, właśnie znalazłem wentylator na amazon, ale każdy wentylator naścienny będzie działał dobrze - Głupi wentylator
- Lutownica, ale jeśli nie chcesz używać lutownicy, możesz kliknąć w nagłówki dla PI i pHAT - GPIO-header-hammer-header
Aby połączenie między TP-link kasa i IFTTT działało, musisz mieć skonfigurowane konto TP-link kasa i IFTTT przed rozpoczęciem tej instrukcji. Po otrzymaniu inteligentnej wtyczki TP-link instrukcje dołączone do inteligentnej wtyczki poprowadzą Cię przez proces konfiguracji, w tym nazwę wtyczki i jej podstawowe funkcje
Gdy masz już całą listę zakupów, nadszedł czas, aby wszystko złożyć!
Krok 1: Konfiguracja Raspberry Pi
Obrazowanie karty micro-SD Uzyskaj najnowszy i najlepszy obraz Raspbian, wersja lite będzie dobrze, jeśli nie lepsza dla zera w! -
Zapisz ten obrazek na kartę SD, potrzebny będzie do tego czytnik i imager, ja używam wytrawiacza -
Skonfiguruj Wi-Fi (opcjonalnie) Jeśli twój PI ma wbudowaną sieć WIFI, dlaczego nie skonfigurować go teraz, aby zaoszczędzić wiele kłopotów z konsolami później!
Po zobrazowaniu pi dysk został wysunięty. Odłącz i podłącz kartę SD, aby została ponownie wykryta przez urządzenie. Powinna pojawić się partycja rozruchowa.
Utwórz pusty plik o nazwie wpa_supplicant.conf na partycji rozruchowej twojego pi, w tym miejscu umieść poniższy w tym nowym pliku:
sieć={
ssid="TWÓJ_SSID" psk="TWOJE_HASŁO_WIFI" key_mgmt=WPA-PSK }
Włączenie SSH w wybranym przez Ciebie PI (opcjonalnie)
Domyślnie czysty obraz Raspbian będzie miał wyłączony ssh. Musisz uruchomić system, podłączyć klawiaturę i wyświetlacz do Pi, a następnie włączyć ssh. Ten krok włączy ssh przy pierwszym uruchomieniu. Na partycji rozruchowej utwórz nowy plik o nazwie ssh. Pusty plik o dokładnie takiej nazwie.
Po wykonaniu tych dwóch opcjonalnych kroków, twój PI automatycznie połączy się z twoją siecią WIFI i będzie miał domyślnie włączone SSH.
Po zobrazowaniu i skonfigurowaniu karty micro-SD możesz włożyć ją do swojego PI lub wyboru i włączyć!
Aktualizacja PI Po uruchomieniu PI możesz znaleźć adres IP swojego PI w ustawieniach routerów bezprzewodowych. Większość routerów jest inna, więc niestety trudno byłoby napisać przewodnik po tym!
Po uzyskaniu adresu IP swojego PI, połącz się przez SSH i zaloguj się, wykonując następujące czynności:
Nazwa użytkownika: pi
Hasło: malina
Gdy masz aktywną sesję SSH ze swoim PI, będziesz chciał ją zaktualizować, po prostu uruchom poniższe z odpowiednim Y lub N podczas aktualizacji:
aktualizacja sudo apt-get
sudo apt-get upgrade
zawsze dobrze jest zrestartować PI po zainstalowaniu nowych aktualizacji, aby upewnić się, że działa od nowa z najnowszymi aktualizacjami, można to osiągnąć za pomocą
sudo restart -n
Teraz PI gotowe, czas przejść do następnego kroku!
Krok 2: Konfiguracja Enviro PHAT
Podłączanie Enviro pHAT
Po zaktualizowaniu wszystkich PI możesz podłączyć Enviro pHAT do wybranego PI!
***Aby upewnić się, że nie uszkodzisz swojego PI lub pHAT, najpierw wyłącz je***
Tutaj użyłem zworek, ponieważ pod Enviro pHAT można uzyskać wypłukiwanie termiczne z nagrzewającego się procesora. To dodatkowe ciepło może zmienić odczyty temperatury, które uzyskasz później. Z tego powodu użyłem 5 wyprowadzeń zworek na poniższych pinach:
- Pin 3 – GPIO2 (SDA I2C)
- Pin 5 – GPIO3 (SCL I2C)
- Pin 7 – GPIO4
- Pin 6 – Uziemienie
- Styk 4 - 5V
Sprawdź schemat połączeń u góry tego kroku, aby uzyskać odniesienie wizualne lub poniższy link:
pinout.xyz/pinout/enviro_phat
(przepraszam za tandetną robotę malowania)
Podczas podłączania okablowania pHAT upewnij się, że jest ustawiony we właściwy sposób, w przeciwnym razie możesz go potencjalnie uszkodzić !!! Aby to zrobić, ustawiłem swoją konfigurację, aby nagłówki ANALOG IN były skierowane w stronę gniazda karty SD, co później zostało odwrócone na moich zdjęciach, aby pasowało ściśle do mojego „nośnika”.
Instalowanie zależności
Włącz kopię zapasową PI i z powrotem SSH
Po powrocie do PI uruchom następujące czynności, aby zainstalować wymagane pakiety i oprogramowanie dla Enviro pHAT:
curl https://get.pimoroni.com/enviropha | grzmotnąć
Pamiętaj, aby w razie potrzeby nacisnąć Y lub N.
Po zakończeniu instalacji pamiętaj o ponownym uruchomieniu PI…
sudo restart -n
Testowanie pHAT
Aby upewnić się, że twój pHAT jest prawidłowo podłączony, możesz wpaść do modułu Pythona i uruchomić kilka poleceń, wprowadzając z powrotem do PI i wpisując Pythona, raz w module Pythona wpisz poniżej:
z envirophat importuje pogodę
print(pogoda.temperatura())
Powinno to pokazać odczyt jak poniżej:
>> z enviropha importuj pogodę
>> print(pogoda.temperatura()) 24.0806166987
Rozwiązywanie problemów
Jeśli pojawi się coś podobnego do poniższego błędu:
Traceback (ostatnie wywołanie ostatniego): Plik "", wiersz 1, w pliku "/usr/lib/python2.7/dist-packages/envirophat/bmp280.py", wiersz 134, w temperaturze self.update() Plik " /usr/lib/python2.7/dist-packages/envirophat/bmp280.py", wiersz 169, w aktualizacji, jeśli self._read_byte(REGISTER_CHIPID) == 0x58: # sprawdź identyfikator czujnika 0x58=BMP280 Plik "/usr/lib/ python2.7/dist-packages/envirophat/bmp280.py", linia 116, w _read_byte return self.i2c_bus.read_byte_data(self.addr, register) IOError: [Errno 121] Błąd zdalnego wejścia/wyjścia
Następnie możesz uruchomić:
sudo i2cdetect -y 1
To uruchomi kontrolę diagnostyczną twoich połączeń/okablowania i będziesz szukał czegoś takiego jak poniżej:
pi@raspberrypi:~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 abcdef 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- -- 20: -- -- -- -- -- -- -- - - -- 29 -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 50: -- -- -- -- -- -- -- - - -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - 70: -- -- -- -- -- -- -- 77
Jeśli nie, musisz wrócić i ponownie sprawdzić okablowanie, sprawdź schemat połączeń i spróbuj ponownie!
Instalowanie skryptu pi-baby-cooler.py
Jeśli wszystko jest w porządku i udało Ci się uzyskać odczyt temperatury, możemy śmiało zainstalować pakiet baby-cooler.py!
Ze względu na to, jak instructables obsługuje linki, dołączyłem skrypt.py w powyższym nagłówku kroku… Aby skopiować to do twojego PI, polecam użyć czegoś takiego jak WinSCP:
winscp.net/eng/download.php
WinSCP to popularny klient SFTP i klient FTP dla Microsoft Windows! Kopiuj plik między komputerem lokalnym a serwerami zdalnymi za pomocą protokołów przesyłania plików FTP, FTPS, SCP, SFTP, WebDAV lub S3.
WinSCP jest prosty w użyciu, po prostu połącz się ze swoim PI używając adresu IP swojego PI, a następnie przeciągnij i upuść plik.py do miejsca, z którego chcesz go uruchomić, to jest z /home/pi.
Teraz skrypt.py jest w twoim PI, czas przejść do konfiguracji konta / połączeń IFTTT
Krok 3: Ustawienie konta/połączenia IFTTT
Następnie przyjrzymy się uzyskaniu tokena IFTTT, który będzie używany podczas wywoływania funkcji hot/cold w skrypcie, aby połączyć się z wtyczką kasa i włączyć/wyłączyć wentylator.
Tworzenie webhooków
Udaj się na https://ifttt.com/ i utwórz konto, jeśli jeszcze go nie masz.
Po zalogowaniu w pasku wyszukiwania wyszukaj: TP-link kasa
Po załadowaniu kliknij usługi, a następnie TP-link kasa. Następnie musisz połączyć konto kasa z kontem IFTTT, zalogować się do konta kasa przez IFTTT, aby nawiązać połączenie.
Po połączeniu konta kliknij „Moje aplety”, a następnie nowy aplet, a następnie kliknij „+to” i wyszukaj webhooki.
Kliknij „Odbierz żądanie sieciowe”, w polu nazwy zdarzenia wpisz hot (może to być cokolwiek chcesz, ale musisz zaktualizować to później w skrypcie pi-baby-coller.py lub to nie zadziała, użyłem hot, aby włączyć wentylator włączony i zimny, aby wyłączyć wentylator. Następnie kliknij utwórz wyzwalacz.
Następnie musimy połączyć twój nowy wyzwalacz z kontem Kasa, kliknij "+to" i wyszukaj kasa, kliknij TP-link kasa, a następnie kliknij "włącz", następnie wybierz urządzenie, które chcesz włączyć, a następnie kliknij utwórz akcja. Przejrzyj działanie i kliknij Zakończ, jeśli jest poprawne.
**********
Pamiętaj, że jeśli wybrałeś inną nazwę wydarzenia niż „gorący” i „zimny”, będziesz musiał zapisać je na później i zaktualizować skrypt! W przeciwnym razie skrypt.py nie zadziała
**********
Po utworzeniu naszego pierwszego web hooka powtórz proces dla "zimnego", ale tym razem wybierasz opcję wyłącz zamiast włączania podczas wybierania akcji +tę.
Po utworzeniu dwóch webhooków zdarzeń w sekcji konta Moje aplety kliknij usługi i wyszukaj webhooki, a następnie kliknij to. W tym miejscu zobaczysz przycisk dokumentacji (w prawym górnym rogu), kliknij go. Tutaj znajdziesz swój klucz tokena IFTTT. podczas gdy tutaj zanotuj swój klucz (będziesz go potrzebować później), edytowałem mój na zdjęciu, w przeciwnym razie każdy byłby w stanie włączyć lub wyłączyć moje inteligentne wtyczki.
Testowanie webhooków
Teraz stworzyliśmy dwa webhooki, które są połączone z naszym kontem kasa, możemy przetestować, czy działają, czy nie!
W swoim PI możesz wpisać:
curl -X POST
Tam, gdzie jest napisane „gorące”, musisz dodać nazwę wydarzenia, jeśli zostawiłeś je jako „gorące”, zostaw to w spokoju. Tam, gdzie jest napisane /ty… musisz to zastąpić kluczem tokena IFTTT. Naciśnij Enter, a powinieneś usłyszeć kliknięcie przekaźnika inteligentnych wtyczek, który włącza wtyczkę. Jeśli go nie słyszysz, możesz sprawdzić w aplikacji Kasa stan swoich wtyczek.
Teraz mamy zainstalowane zależności dla naszego Enviro pHAT i konfigurację IFTTT, czas zakończyć modyfikację kodu.
Krok 4: Edycja skryptu
Nazwa zdarzenia i IFTTT TOKENSWróć do swojego pi, eskaluj do lokalizacji twojego skryptu pi-baby-cooler.py, dla mnie jest to /home/pi (mój folder domowy) i edytuj plik za pomocą nano:
nano pi-baby-cooler.py
W wyszukiwarce, gdzie jest napisane def turn_off()
def turn_off():
# Ustaw słowo wyzwalające - np. „zimny” – a poniżej token IFTTT Webhook. TRIGGER_WORD = "cold" TOKEN = "TWÓJ TOKEN IFTTT JEST TUTAJ" requests.post("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format(trigger_word=TRIGGER_WORD, token=TOKEN)) print("Wyłącz wentylator!"):
Jest to funkcja wyłączania wentylatora. Robi to, wysyłając webhook do IFTTT, który powoduje wyłączenie tplink HS100. Jeśli uruchomiłeś wyzwalacz na swoim koncie IFTTT tak samo jak „zimny”, możesz go zostawić i po prostu zastąpić token, który otrzymałeś wcześniej z dokumentacji webhooków. Jeśli wybrałeś inną nazwę wydarzenia, zastąp to słowo tutaj.
Po wklejeniu tokena IFTTT przejdź do następnej sekcji, w której jest napisane def turn_on()
def turn_on():# Ustaw swoje słowo wyzwalające - np. „gorący” – a poniżej token IFTTT Webhook. TRIGGER_WORD = "hot" TOKEN = "TWÓJ TOKEN IFTTT JEST TUTAJ" requests.post("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format(trigger_word=TRIGGER_WORD, token=TOKEN)) print("Wachluj!")
Ta funkcja jest odwrotnością wyłączenia, włącza inteligentną wtyczkę TP-link!
Jeśli uruchomiłeś wyzwalacz na swoim koncie IFTTT tak samo jak „gorący”, możesz to zostawić i po prostu zastąpić token, który otrzymałeś wcześniej z dokumentacji webhooków. Jeśli wybrałeś inną nazwę wydarzenia, zastąp to słowo tutaj.
Cała reszta jest już zakodowana, więc nie powinieneś zmieniać kodu poza TRIGGER_WORD, TOKEN i kilka zmian w temperaturach, które są następne!
Zmiana temperatur
Następnie znajdź, gdzie jest napisane # Zmienne lokalne.
spróbuj: # Zmienne lokalne. state = 0 # Ustawia stan przełącznika low = 20 # Niska wartość poziomu temperatury (stopnie Celsjusza). high = 24 # Wysoka wartość poziomu temperatury (celsjusza). period = 120 # Opóźnienie w sekundach między połączeniami.
Zmienna stanu wskazuje, w jaki sposób pi wie, czy wtyczka jest włączona, czy nie, jest aktualizowana później, jeśli robi się zbyt gorąca (24+*c, a następnie stan zmienia się później na 1), to również uruchomiłoby się do webhooka i włączyło inteligentna wtyczka!
Najniższą zmienną jest to, jak fajnie chcę uzyskać pokój przed wyłączeniem wtyczki. Jeśli chcesz, aby w pomieszczeniu było cieplej, po prostu zmień to na wyższą wartość. Jeśli chcesz, żeby było chłodniej, zmniejsz wartość.
Wysoka zmienna to maksymalna temperatura, jaką chcę uzyskać w pomieszczeniu, zanim chcę, aby wentylator włączył się i zaczął schładzać pomieszczenie. Jeśli chcesz, aby wentylator włączył się wcześniej, po prostu zmniejsz wartość lub jeśli chcesz, aby było cieplej, zwiększ wartość.
Zmienna okres to czas trwania w sekundach między sprawdzeniami temperatury, jeśli chcesz, aby skrypt pi sprawdzał rzadziej, a następnie zwiększ liczbę, jeśli chcesz skrócić czas, zmniejsz liczbę.
Po wprowadzeniu zmian zapisz i wyjdź z nano
CTRL + X
Krok 5: Korzystanie ze skryptu
Uruchamianie skryptu lokalnie
Jest kilka sposobów na uruchomienie tego skryptu, możesz połączyć się przez SSH i wpisać:
sudo python /pi-baby-cooler.py
Spowoduje to uruchomienie skryptu na żądanie, będzie to działać tylko tak długo, jak długo będzie aktywna sesja SSH z PI. Innym sposobem jest użycie screena, screen nie jest instalowany domyślnie, nie sądzę, więc trzeba będzie użyć ekranu instalacji sudo apt.
Oto świetny samouczek dotyczący prawidłowego korzystania z ekranu:
Screen lub GNU Screen to multiplekser terminala. Innymi słowy, oznacza to, że możesz uruchomić sesję screen, a następnie otworzyć dowolną liczbę okien (terminali wirtualnych) wewnątrz tej sesji. Procesy uruchomione na ekranie będą nadal działać, gdy ich okno nie będzie widoczne, nawet jeśli zostaniesz rozłączony.
Automatyzacja do uruchomienia przy starcie
Innym sposobem jest edycja pliku startowego w /etc/rc.local, aby to zrobić za pomocą nano.
sudo nano /etc/rc.local
Edytowanie tego pliku spowoduje uruchomienie skryptu przy starcie. co oznacza, że zawsze będzie działał, gdy PI jest włączony, w ten sposób uruchamiam 90% moich skryptów na innych PI.
Jeśli użyłeś rc.local, możesz uruchomić poniższe polecenie, aby sprawdzić, co jest aktualnie uruchomione w PI. Jest to przydatne do późniejszego rozwiązywania problemów, aby sprawdzić, czy skrypt w ogóle działa, czy nie:
ps-aef | grep pyton
Krok 6: Gotowe
Cóż… Dzięki, jeśli nadal tu jesteś i osiągnąłeś ten punkt!
Przepraszam, że minęło dość dużo czasu, to był mój pierwszy instruktaż i nie byłem do końca pewien, co zapisać.
Jak wspomniałem na początku, ta instrukcja ma wiele różnych zastosowań, wykorzystując ciepło do uruchomienia inteligentnej wtyczki! można schłodzić dowolne pomieszczenie w domu/mieszkaniu/mieszkaniu/garażu/szopie. Możesz nawet zmodyfikować IFTTT, aby uruchomić dowolne inteligentne urządzenie, które jest sterowane przez IFTTT, nie muszą to być tylko urządzenia kasa TP-link.
Chciałbym usłyszeć, czy wypróbowałeś te instrukcje, a nawet jeśli uznałeś je za interesujące, zostaw mi komentarz poniżej!
Jeśli masz jakieś pytania, zostaw je poniżej, a ja postaram się na nie odpowiedzieć!
Drugie miejsce w konkursie czujników
Zalecana:
Jak zrobić wyświetlacz POV dla fanów: 6 kroków (ze zdjęciami)
Jak zrobić wyświetlacz POV z wentylatorem: W tym projekcie pokażę ci, jak przekształciłem zwykły stary wentylator w wyświetlacz LED POV, który może prezentować wzory świetlne, słowa, a nawet czas. Zacznijmy
Spraw, aby niewidomi rozpoznawali rzeczy, dotykając rzeczy wokół nich za pomocą MakeyMakey: 3 kroki
Spraw, aby niewidomi rozpoznawali rzeczy, dotykając rzeczy wokół nich za pomocą MakeyMakey: wprowadzenieTen projekt ma na celu ułatwienie życia niewidomym poprzez identyfikowanie otaczających ich rzeczy za pomocą zmysłu dotyku. Ja i mój syn Mustafa myśleliśmy o znalezieniu narzędzia, które im pomoże, a w okresie, w którym używamy sprzętu MakeyMakey
Zachowaj spokój tego lata: PC Fan Mod: 4 kroki (ze zdjęciami)
Zachowaj spokój tego lata: PC Fan Mod: Kto nie ma tuzina fanów PC leżących wokół? W tej wersji pokażę Ci, jak wykorzystać te wentylatory, aby wytworzyć przyjemny, regulowany powiew w gorące letnie dni. I działa co najmniej 4 godziny ze zwykłą baterią 9V
Bezpieczna impreza tego lata z kubkiem LED Arduino reagującym na krew i alkohol: 10 kroków
Bezpieczna impreza tego lata z kieliszkiem LED reagującym na krew i alkohol Arduino: Poziom projektu Poziom trudności: Średniozaawansowany Wymagane umiejętności: - Czytanie i replikowanie diagramu - Lutowanie, jeśli nie zdecydujesz się na zakup wstępnie lutowanych częściWprowadzenie do projektuW Stanach Zjednoczonych i na całym świecie alkohol stwarzały poważne zagrożenia dla zdrowia, które
Naprawianie monitora za pomocą wypiekacza do chleba: AKA Nie wyrzucaj tego!: 5 kroków (ze zdjęciami)
Naprawianie monitora z wypiekaczem chleba: AKA Don't Throw It Out!: Lokalnie w Victoria w Kolumbii Brytyjskiej mamy faceta, który zabiera zużyty, ale nadający się do użytku sprzęt IT i przekazuje go społeczności za darmo. Jego wysiłki polegają na utrzymywaniu zużytych urządzeń elektronicznych na wysypiskach i pomaganiu ludziom, co jest fantastyczne. Podniosłem