Spisu treści:

Tweet-A-Temp: 8 kroków
Tweet-A-Temp: 8 kroków

Wideo: Tweet-A-Temp: 8 kroków

Wideo: Tweet-A-Temp: 8 kroków
Wideo: Donald Tusk: Majonez? Lepiej łączyć niż dzielić. 2024, Lipiec
Anonim

Autor: Homebrew Experiments Z0tZot Śledź więcej autora:

Magic 8 Beer 8 stronna kostka
Magic 8 Beer 8 stronna kostka
Magic 8 Beer 8 stronna kostka
Magic 8 Beer 8 stronna kostka

Mój najstarszy syn (Minion #1) i ja zaczęliśmy budować Tweet-A-Watt i nie postępowaliśmy zgodnie ze wskazówkami, mianowicie zrobiliśmy oba odbiorniki jako standardowe odbiorniki zamiast tylko jednego, a następnie w połowie zapełniliśmy drugi odbiornik XBee. mieliśmy dwie możliwości, albo odciąć dodatkowe części, albo coś innego. Biorąc pod uwagę, że jeszcze nie znalazłem lokalnie Kill-A-Watt i miałem ten zewnętrzny/wewnętrzny termometr, który chciałem skomputeryzować od 10 lat, wiedziałem, co muszę zrobić: musiałem użyć termometru do pomiaru temperaturę mojej wanny z hydromasażem, a następnie tweetnij! Niedawno dałem Minionowi #1 zadanie opisania kontrolera wanny z hydromasażem bez granic. Wspomniał, że moglibyśmy zrobić to bezprzewodowo, ale nie, to głupie… Uwielbiam, kiedy dziesięcioletni plan zaczyna się urzeczywistniać. Zobacz to na Twitterze

Krok 1: Zbuduj odbiorniki Xbee

Zbuduj odbiorniki Xbee
Zbuduj odbiorniki Xbee

Zbuduj dwa odbiorniki XBEE. Użyłem odbiorników od Lady Ady, każdy odbiornik się nada. Będziesz potrzebował dostępu do VREF i pinu AD0 XBee. Sztuczka z Tweet-A-Watt polega na konfiguracji. W efekcie ustawiasz jedno z urządzeń tak, aby powtarzało wartości z Kill-A-Watt z: ATMY=1, SM=4, ST=3, SP=C8, D4=2, D0=2, IT=13, IR=1 Ustawia adres (1), ustawia tryb uśpienia, timer i okres, a następnie ustawia piny 4 i 2 na tryb wejścia analogowego (2), który wyśle pakiety 0x13 (19 dziesiętne), 1 ms między próbkami. Tutaj jest wejście analogowe. Możesz odczytać małe napięcia (0-5V) bezpośrednio przez XBee. W Tweet-A-Watt ustawisz piny 4 i 0, aby wysyłać ampery i wolty mierzone przez Kill-A-Watt. W rzeczywistości nie wysyła tego, wysyła małe napięcie mierzone przez chipy w Kill-A-Watt do odbiornika XBee, który jest podłączony do komputera. Oprogramowanie na komputerze stale odczytuje odebrane pakiety i przelicza rzeczywiste napięcie i natężenie, a następnie oblicza moc w watach.

Krok 2: Termometr

Termometr
Termometr
Termometr
Termometr
Termometr
Termometr

Kupiłem dwa takie termometry wewnętrzne/zewnętrzne około 10 lat temu z domowego magazynu. Zawsze fascynowało mnie to, że zewnętrzny „termometr” był podłączony do jednostki bazowej za pomocą czegoś, co wyglądało jak standardowa wtyczka audio. Zawsze zastanawiałem się, czy mógłbym zmierzyć temperaturę, podłączając to do gniazda mikrofonowego w komputerze.

Okazuje się, że prawdopodobnie mógłbym sprawić, by to zadziałało, ale byłoby to trudne. Wtyczka to właściwie jack 3/32 , zamiast wtyczki audio 1/8. Jest to standardowa wtyczka do telefonów komórkowych do zewnętrznych mikrofonów. Stanowiło to problem, ponieważ nie mogłem znaleźć żadnych wtyczek mikrofonowych w moich stosach śmieci, które nie były montowane powierzchniowo. Musiałem kupić zestaw z Radio Shack (2$), co spowodowało duże opóźnienie w projekcie (dotarcie do szałasu nie było łatwe). Rozebrałem jedną jednostkę, zanim nagle zdałem sobie sprawę, jak to działa, to był dzielnik napięcia! To było oczywiste, kiedy o tym pomyślałem. To bardzo ułatwiło życie.

Krok 3: Co to jest dzielnik napięcia?

Co to jest dzielnik napięcia?
Co to jest dzielnik napięcia?

Jednym z najlepszych miejsc do nauki o elektronice jest Wisconsin Online dzielniki są wyjaśnione na tej stronie (u dołu po prawej) lub możesz odwiedzić stronę Wikipedii Napięcie. Krótko mówiąc, jeśli masz dwa rezystory połączone szeregowo, spadek napięcia na każdym rezystorze jest proporcjonalnie do wielkości rezystora. Jeśli masz napięcie V w obwodzie R(1) + R(2), to V = V(1) + V(2). Więc jeśli V=3V i V(2) = 2V, wiesz, że V(1) = 1V. Teraz podstawą prawa Ohma jest to, że prąd (I) to V/R. W obwodzie szeregowym prąd jest taki sam w całym obwodzie, więc prąd płynący przez A i B jest taki sam w całym obwodzie. Dlatego I = V1/R1 = V2/R2. Wiemy, że V2 = V - V1, wkładając, widzimy V1/R1 = (V-V1)/R2. Rozwiązując otrzymujemy R2 = R1*(V-V1)/V1 Więc jeśli wiemy, czy znamy V(1), V i R(2), możemy rozwiązać R2. Jeśli mamy R2, znamy wartość Termistor!

Krok 4: Co to jest termistor?

Co to jest termistor?
Co to jest termistor?

Termistor to rezystor, który zmienia rezystancję wraz z temperaturą. Wykorzystując techniki z dzielnika napięcia do określenia rezystancji możemy stwierdzić, jaka to temperatura. Problem w tym, że mam jakiś tani termistor w obudowie z 10 letniego produktu. Jak miałem stworzyć funkcję, która przeszłaby od oporu do temperatury? Cóż, mam termometr, do którego się podłącza! Więc dużo mierzyłem. Skopiowałem temperaturę i zmierzyłem rezystancję termistora. Włożyłam do lodówki, a następnie włożyłam do ciepłej wody. Później chwyciłem temperaturę pokojową, ponieważ miałem czas. Przypuszczałem, że mogłem przeczytać plage w Wikipedii, próbując odgadnąć czynniki a i b, ale założyłem, że używam nieliniowego, możliwego do uszkodzenia komponentu, który nie pasuje już do produkcji specyfikacje. Aha i jestem leniwy. Więc wrzuciłem wszystkie wartości do Excela, a następnie narysowałem je na wykresie. Początkowo martwiłem się, że muszę zapamiętać głęboką ciemną matematykę czegoś takiego jak „dopasowanie najmniejszego kwadratu”, kiedy odkryłem, że Excell zrobi to dla ja!Wyraźnie brakuje mi luk na wykresie, ale mam dużo dobrych danych wokół temperatur balii (100-105F). Sprawdzając zakresy temperatur w pomieszczeniach zauważyłem coś, co prawie sprawia, że moja praca jest bezwartościowa. Termometr "Precise Temp" zgłosił błąd 3-7 stopni między "wewnętrznym" a "na zewnątrz", gdy termistor był oddalony o cale! Może to dlatego, że mieszałem i dopasowywałem termistor między jednostkami, ale obstawiam, że ma to więcej ze względu na jakość 10-letniego egzemplarza za 10 USD. Bez względu na „dokładność” temperatury potrzebowałem precyzji i wielu testów zakres pokazał bardzo zbliżone wyniki w ciągu kilku dni. Na dłuższą metę prawdopodobnie podłączę termistor do rury prowadzącej do wanny z hydromasażem, więc i tak będę potrzebować przesunięcia. Tak więc, aby Excel wyświetlał równanie, umieszczam go w kodzie i jak dotąd jest to " blisko."

Krok 5: Obwód nadajnika

Obwód nadajnika
Obwód nadajnika

Obwód nadajnika jest prosty. Do R2 wybrałem opornik 100 kOhm, bo wyglądało na to, że będzie pasował do zakresu z wykresu, a zapasowy miałem przy wylutowywaniu różnych rzeczy z Minionkami. Łączę to szeregowo z termistorem przez złącze. Następnie dodałem akumulator. Podałem 3 V do VREF i górnej części dzielnika napięcia oraz do wejścia Xbee +3 V. Podłączam GND (Battery Negative) do wejścia GND i do dolnej części dzielnika. Następnie podłączyłem AD0 (Volts in) do środka obwodu dzielnika napięcia.

AD0 odczyta względne napięcie z VREF do V(1). Tak więc, gdy bateria spada, względne napięcie powinno spadać tak samo. W końcu zasilę urządzenie z lokalnego źródła zasilania. Gotowe urządzenie działało bez zarzutu, wszystko łączymy zaciskami krokodylowymi, przez co jest kruche. Po uzyskaniu złącza żeńskiego 3/32" umieszczam nadajnik w losowej plastikowej tubie, którą mieliśmy (pojemnik po hummusie). To powinno chronić go przed warunkami atmosferycznymi. Ponieważ kupiłem złącza "panel mount", było to tak proste jak wywiercenie otworu w plastiku, aby dodać złącze na zewnątrz z dość wodoszczelnym połączeniem. Kiedy to mieliśmy, nadszedł czas na test.

Krok 6: Dom, dom, nie ma zasięgu

Dom, dom, nie ma zasięgu
Dom, dom, nie ma zasięgu
Dom, dom, nie ma zasięgu
Dom, dom, nie ma zasięgu
Dom, dom, nie ma zasięgu
Dom, dom, nie ma zasięgu

Jedną z pierwszych rzeczy, które zauważyliśmy, było to, że zasięg zginął straszliwą śmiercią, gdy tylko wyszliśmy z biura z nadajnikiem. Próbowaliśmy z innego pokoju, a wyniki były okropne. 1 metr dalej to zepsuło się. Czas przyjrzeć się rozwiązaniom. Przyszło mi do głowy, że podczas testowania mamy 4 źródła Wi Fi w promieniu 5 stóp, wszystkie w paśmie 2,5 GHz, takie jak Xbee. Ponadto „w ogóle nie celowaliśmy w Xbee. Po przeprowadzeniu badań stwierdziłem, że mógłbym kupić mocniejsze radio Xbee (około 23 USD) lub dodać anteny. Jedną z rzeczy, których potrzebowałem, był dobry test zasięgu. Oprogramowanie X-CTU firmy Digi ma wbudowany „Test zasięgu", ale nic to nie dało. Spędziłem trochę czasu, próbując dowiedzieć się, jak to zrobić. Właściwie było to łatwiejsze, niż powiedziałem. Tak naprawdę nie potrzebowałem testu X-CTU, po prostu Wartość „RX Signal Strength Indicator” (RSSI). Spojrzałem na zastosowania xbee.pyTweet-A-Watt i właśnie tam, wiersz 39: [code]self.rssi = p[3][/code]Co oznacza, że jest to część wartości zwracanej przez Xbee!(xb.rssi w witcher), więc zmodyfikowałem linię debugowania dla mojego hacka: print str(counter) +": RSSI: " + str(xb.rssi) + " | " + time.strftime("%Y %m %d, %H:%M")+ ", " + ": Napięcie: " + str(CalcualtedVolts) + " avgv " + str(avgv) + " Termistor: " + str(x) + " Temperatura: " + str(Temperatura) Co daje taką linię: 373: RSSI: 82 | 2009 04 26, 11:18,: Napięcie: 1.80100585938 avgv 593 Termistor: 71.2276559865 Temperatura: 78.6813444881 Możesz zobacz także RSSI z przetwarzaniem, ze strony Toma Igoe. Chociaż będziesz chciał zmodyfikować długość pakietu (u góry), ponieważ Processing narzekał na pisanie poza końcem rozmiaru bufora pakietów. Uważam, że musisz być większy niż 2 * oczekiwano długość pakietu. Kod Toma patrzy wstecz na poprzedni pakiet, co oznacza, że jeśli przegapi wskaźnik pakietu Ox7E, może działać przez chwilę. Biorąc pod uwagę, że jestem blisko zewnętrznej krawędzi zakresu pomiarowego, może się to zdarzyć przez chwilę. Ustawiłem mój na 600 i przestał wyświetlać komunikat „błąd, wyłączenie serialEvent()". zmienia się, gdy zastanawia się Minion #1. Teraz mieliśmy dobry sposób na mierzenie, więcej niż „hej tato, mamy paczkę”, nadszedł czas, aby wypróbować kilka pomysłów na domowe anteny do parzenia! Korzystając z pomysłów z https://www.usbwifi.orconhosting.net.nz/ odkryłem, że Corner Cube zmierzyło spadek w dB, chociaż w praktyce nie wydawało się, aby pomagało podłączyć rozłączoną parę. W rzeczywistości parowiec warzywny był najlepszy w celowaniu i ponownym łączeniu. Konfiguracja USB Wifi znacznie różni się od niektórych innych ludzi. Parowce mają pośrodku nóżkę, co ułatwia umieszczenie XBee. Miska pho z folią aluminiową również wygląda obiecująco (chociaż po prostu usunęliśmy folię aluminiową później i trzymaliśmy ją na miejscu). Próbowaliśmy również zrobić parabolę z wygiętym kawałkiem „toru” gorących kół, ale to nie pomogło. Jednym z problemów jest to, że testowaliśmy na zewnętrznej krawędzi zakresu. Większość radiostacji 2,5 Ghz, zwłaszcza XBee, używa rozproszonego Spectrum, co oznacza, że mogą potrzebować tylko "synchronizacji", a następnie oprogramowanie XBee szuka początku pakietu XBee przed wyzwoleniem. Oznacza to, że otrzymasz efekt „wszystko albo nic”. Albo radia zablokują się na sobie, albo nie. Czasami wydaje się, że to szczęście, ale w rzeczywistości jesteś anteną na tych odległościach i możesz wpływać na wyniki. Poszedłem kupić dwa parowce, ale potem okazało się, że koszt parowca z lokalnego supermarketu wynosił 10 USD, a za cenę 2 parowców mogę dostać mocniejszy XBee. Poszukałem więc jeszcze kilku miejsc i znalazłem dość głębokie sitko, które okazało się jeszcze lepsze. To było 7 dolarów. Uważam, że głębia jest ważna, ponieważ jestem na końcu transmisji, odzwierciedla ona więcej sygnału (zgodnie z notatkami w https://www.usbwifi.orconhosting.net.nz/number13.jpg). Końcowe wyniki, jest to, że z parowcem do warzyw na jednym końcu (do wymiany) i sitkiem na drugim mam sygnał około 20-30m, z wnętrza biura, przez 3-4 ściany, na zewnątrz do jacuzzi! Wskazówka dla profesjonalistów: Pamiętaj przynieś sitko, jeśli chcesz 1) Twój współmałżonek zostanie, i/lub 2) Chcesz warzywa gotowane na parze później. Osobiście podoba mi się płatek do gotowania na parze.

Krok 7: Oprogramowanie

Oprogramowanie
Oprogramowanie

Zaczynając od oprogramowania Tweet-A-Watt, zacząłem hakować kod Pythona. Przeważnie musiałem usunąć konwersję Watts, funkcje historii, a następnie musiałem dodać liczbę zabezpieczeń dzielenia przez 0 (zakładanie Tweet-A-Watt zakłada, że pakiety będą zawierały dane). Następnie dodałem formułę z Excela do programu i przetestowałem. Ustawiłem go tak, aby drukował każdy pakiet i mam dużo debugowania w kodzie, aby wyłapać problemy. Próbowałem uruchomić część graficzną, ale poddałem się, co prowadzi mnie do: Python Rant: To już drugi raz, kiedy mam próbował zrobić duży projekt w Pythonie. Nie mogłem zmusić wszystkich zależności bibliotek i pakietów podstawowych do pracy w mniej niż 20 godzin w Windows, Windows 64, Ubuntu i Fedorze. W końcu musiałem zbudować prawie wszystko od podstaw i nawet wtedy niektóre funkcje nie działały. Próbowałem 2.4, 2.5, 2.6 i różne wersje 3. X, a następnie wersje każdej biblioteki, które z kolei miały zależności od innych pakietów. Podczas gdy inni mogą mieć tyrady przeciwko językowi, uważam, że instalacja, nawet przy użyciu wielu „łatwych instalatorów”, jest w najlepszym razie zniechęcająca! Po obliczeniu temperatur dokonałem korekty o 1 stopień, ponieważ nie mogłem uwierzyć w wannę z hydromasażem był na 106F. Naprawdę nie wierzę, że jest to 105. Następnie poprawiłem logikę raportowania i twittera. Ponieważ nie jestem pewien, czy dostanę pakiety, czy dobre pakiety, zdecydowałem się zgłaszać tymczasowe co godzinę. Zakładam, że za jakiś czas to ograniczę. Obecnie skrypt działa jako normalny użytkownik. W końcu będę chciał przenieść go do serwisu.

Krok 8: Kolejne kroki

Jest kilka oczywistych dalszych kroków:

1) Wymień sitko do warzyw Minionki potrzebują swoich warzyw! b. Ten i tak był stary. 2) Umieść antenę jacuzzi pod pokładem. Pokład może sprawić, że będzie jeszcze „dalszy”, ale pozwoli na brzydszą konfigurację. b. Następnie mogę poprowadzić termistor do spodu i znaleźć lepsze miejsce. 3) Dodaj więcej czujników Najłatwiejszy jest czujnik temperatury zewnętrznej. b. Ale nie ma powodu, dla którego nie moglibyśmy wykryć stanu paneli sterowania, zwłaszcza czujnika ciepła, który w magiczny sposób zostaje dotknięty, gdy dzieci skończą. C. c. inne czujniki pogodowe (wiatr, wilgotność itp.) Byłoby miło kontrolować wannę z hydromasażem i mogłem wyłączyć ogrzewanie na większą część nocy i dnia. 4) Potrafię dostosować oprogramowanie Minionki już chcą lepszych wiadomości w zależności od temperatury. b. Powinniśmy być w stanie odpowiedzieć na odpowiedzi i DM. C. Powinienem tweetować inteligentniej (mniej niż raz na godzinę). D. Mam zaplanowane inne fajne rzeczy.

Zalecana: