Spisu treści:
- Krok 1: Warunki wstępne
- Krok 2: Budowanie tablicy
- Krok 3: Schemat
- Krok 4: Dodaj Irremote Library do oprogramowania Arduino
- Krok 5: Zapisz kody z pilotów
- Krok 6: Utwórz stronę internetową dla pilota
- Krok 7: Prześlij kod zdalnego sterowania do Arduino
- Krok 8: Połącz się z serwerem internetowym z komputera
- Krok 9: Krok opcjonalny: Edytuj plik Hosts, aby był łatwiejszy w użyciu
Wideo: Zdalne sterowanie oparte na przeglądarce Arduino (linux): 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Mamy dzieci. Uwielbiam je do kawałków, ale kiedy włączają kanały dla dzieci, ukrywają pilota do satelity i telewizora. Po tym, jak to się działo na co dzień przez kilka lat i po tym, jak moja kochana żona pozwoliła mi mieć Arduino na święta, zdecydowałem, że nadszedł czas, aby zrobić coś użytecznego (w jej oczach!) z Arduino. Oto kulminacja tego: interfejs sieciowy do Arduino, który zastępuje moje piloty i jest dostępny z mojej sieci wewnętrznej. Kiedy dowiem się, dlaczego moja tarcza Ethernet nie pozwala mojemu arduino zachować szkicu, napiszę nowy szkic, który używa tarczy Ethernet jako serwera WWW, co oznacza, że nie potrzebuję zainstalowanego Apache na moim komputerze. Bądź na bieżąco, dotrę tam!
Krok 1: Warunki wstępne
Sprzęt: Strona Arduino: Arduino - używam płytki prototypowej Arduino Uno R2 - Twój lokalny sklep z elektroniką lub kuchnia, jeśli chcesz autentyczną płytkę stykową Obudowa montażowa - Użyłem starej plastikowej obudowy z przezroczystą pokrywką Komponenty: Podczerwień LED - wylutowałem jeden ze zepsutego pilota (dzięki dzieciom!) Odbiornik podczerwieni - Dostałem swój z przedłużacza magicznego oka Tranzystor - Użyłem rezystora BC547 - Użyłem rezystora zmiennego 1,5 kΩ ustawionego na przewody połączeniowe 1 kΩ Breadboard - mam swój ze szpuli z kablem solid core RJ45 Strona komputera: Komputer jako serwer Przewód USB do Arduino Oprogramowanie: Oprogramowanie Arduino - z biblioteki arduino.cc - z https://www.arcfn.com/2009/08/multi-protocol- infrared-remote-library.html (dzięki Ken, świetna robota!) Serwer WWW Apache z zainstalowanym PHP - apache.org Wewnętrzny adres IP - mój to 192.168.0.9 Zdjęcie pilota - google lub zdjęcie zrobione aparatem. Zapisałem swoją w rozdzielczości 200x600
Krok 2: Budowanie tablicy
Zalecane jest użycie płytki stykowej dla arduino. Zamontowałem Arduino i płytkę stykową w tej samej obudowie i podłączyłem wszystkie piny, których regularnie używam, bezpośrednio do płytki stykowej na stałe. Piny Arduino użyte w tym projekcie: 5v, masa Cyfrowe piny 3, 11 (pin 3 steruje diodą IR, pin 11 łączy z odbiornikiem IR)
Krok 3: Schemat
Ten schemat jest bardzo prosty, 4 elementy i 6 przewodów. Połączenia diody IR: Podłącz jedną z nóg rezystora do pinu cyfrowego Arduino 3 Podłącz drugą nogę rezystora do pinu bazy tranzystora (w moim przypadku środkowa) Podłącz emiter tranzystora do masy Podłącz kolektor tranzystora do ujemnej nogi diody LED (krótka noga, płaska strona diody LED) Podłącz dodatnią nogę (długa noga, zakrzywiona strona) diody LED do 5-pinowego złącza odbiornika podczerwieni (musisz znaleźć pinout dla Twój konkretny odbiornik podczerwieni): pin GND do uziemienia pin VS do pinu 5V VO do pinu cyfrowego Arduino 11
Krok 4: Dodaj Irremote Library do oprogramowania Arduino
irremote to wspaniała biblioteka napisana przez Kena Shirriffa i jest dostępna na jego blogu pod adresem https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Pobierz bibliotekę z https://arcfn.com/files/IRremote.zip i zainstaluj go tak, jak każdą inną bibliotekę dla arduino. Jego blog zawiera wiele przydatnych informacji na temat biblioteki i sposobu jej instalacji.
Krok 5: Zapisz kody z pilotów
Oto początek nudnej (ale nieuniknionej) części: naciśnięcie każdego przycisku na pilocie, zapisanie ciągu wyjściowego i przypisanie go do wirtualnego pilota. Musisz to zrobić tylko raz, spodziewaj się, że zajmie to około 20 minut. Uruchom edytor tekstu, aby zapisać wyniki. Utwórz nowy dokument i wpisz każdy przycisk na pilocie, po jednym w wierszu: Power Up Down Left Right.. i tak dalej Uruchom Arduino IDE i kliknij "Files->Examples->IRremote->IRrecvDump" i prześlij go do Twoje Arduino. Ten przykład zrzuci zdalne kody do portu szeregowego. Uruchom monitor portu szeregowego i naciśnij klawisz na pilocie. W oknie monitora szeregowego pojawi się ciąg znaków: "Dekodowane *: * (* bity)". Skopiuj ten wiersz i zapisz go w swoim dokumencie w odpowiednim wierszu. Powtarzaj, aż wszystkie klucze będą przechowywane w pliku tekstowym. Wiem jak fajnie jest ten bit, robiłem to już dwa razy:P Teraz musimy trochę poszukać i podmienić w pliku tekstowym: szukaj "Decoded" zamień na "" szukaj ":0x" zamień na ", " szukaj " (" zamień na ", " szukaj " bitów)" zamień na "" Tak więc dla linii takiej jak: Decoded NEC: 0x000110 (15 bitów) powinniśmy mieć teraz linię, która mówi: NEC, 000110, 15
Krok 6: Utwórz stronę internetową dla pilota
Teraz musimy zmapować przyciski na obrazie pilota.
Użyłem https://www.maschek.hu/imagemap/imgmap do mapowania przycisków i zmodyfikowałem kod, który daje strona internetowa, aby działał.
Kliknij „Użyj obrazu na swoim komputerze: [wybierz plik]”, wybierz obraz, kliknij [prześlij], kliknij [akceptuj] Upuść prostokąty, kółka itp. na każdy przycisk. Dla HREF wstaw /remote.php?command= i linię dla tego przycisku z dokumentu tekstowego, na przykład /remote.php?command=NEC, 000110, 15 Byłoby mądrze (i pomogłoby niezmiernie w debugowaniu) jeśli dodatkowo wypełnisz Alt: z nazwą przycisku, ale to zależy od Ciebie.
Powtórz dla każdego przycisku.
Wszystko gotowe? Wtedy będziemy kontynuować. Na dole tej strony znajduje się „Kod”, kliknij go, a otworzy się okno z kodem mapy obrazu. Skopiuj to i wklej do nowego dokumentu tekstowego. To jest główna część naszej strony internetowej.
Oto moja kompletna strona internetowa, wystarczy zastąpić…
z własnym kodem powyżej i zapisz go jako remote.php w katalogu sieciowym (/var/www na linux) wraz z obrazami pilota. Zmień linie dla własnych obrazów:
„https://www.w3.org/TR/html4/loose.dtd">
Sterowanie diodami Arduino
Krok 7: Prześlij kod zdalnego sterowania do Arduino
Utwórz nowy szkic i wklej do niego następujący kod: /* * WebRemote * Dioda podczerwieni musi być podłączona do pinu 3 Arduino PWM. * Wersja 0.1, lipiec 2009 r. * Prawa autorskie do tego kodu: Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * IRremote Library copyright 2009 Ken Shirriff, https://arcfn.com */ #include template inline Drukuj &operator <<(Drukuj &obj, T arg) { obj.print(arg); zwróć obj; } wartość logiczna zakończona = fałsz; char w danych[64]; // Odpowiedni rozmiar indeksu bajtu = 0; #define EOP "\n" IRsend irsend; void setup() { Serial.begin(9600); Serial << "Zainicjowano port szeregowy" << EOP; } void loop() { String pch, sType, sTemp; char inChar, stTest, k; int bity; długi szesnast; int i, j; while(1) { while(Serial.available() > 0) { inChar = Serial.read(); if(indeks == 0) { pch = ""; } if(inChar == '\r' || inChar == '\n' || inChar == '/') // EOP { end = true; indeks = 0; przerwa; } else { if(index < 64) // Rozmiar tablicy { pch += inChar; indeks++; } } } if(ended) { // Analizuj dane w inData here… pch.toUpperCase(); i = pch.indexOf(' ') != -1 ? pch.indexOf(' '): pch.indexOf(', '); sType = pch.substring(0, i); i++; // pomiń ', ' lub ' ' // i wskazuje teraz na początek hex j = pch.lastIndexOf(' ') != -1 ? pch.lastIndexOf(' '): pch.lastIndexOf(', '); // j teraz wskazuje na ', ' lub ' ' po hex sHex = 0; sTemp = pch.substring(i, j); if(sTemp.substring(0, 2) == String("0X")) sTemp = sTemp.substring(2); for(i = 0; i < sTemp.długość(); i++) { k = sTemp; if(!((k >= '0' && k = 'A' && k <= 'F'))) break; sześcian *= 16; if(k >= '0' && k <= '9') sHex += (k - '0'); inaczej if (k >= 'A' && k <= 'F') sHex += ((k - 'A') + 10); if(!((k >= '0' && k = 'A' && k <= 'F'))) break; } sTemp = pch.substring(j+1); sBity = 0; for(i = 0; i < sTemp.długość(); i++) { k = sTemp; sBity *= 10; if(k >= '0' && k <= '9') sBity += (k - '0'); } if(sType.length()>0) { Serial << pch << EOP << "Typ kodu: "<< sType << " Hex: "; Serial.print(sHex, HEX); Szeregowe << " Bity: " << sBity; } sendIt(sType, sHex, sBits); pch = ""; zakończony = 0; } } } void sendIt(String sType, long sHex, int sBits) { for(int i = 0; i < 2; i++) { if(sType.equals(String("RC6"))) { irsend.sendRC6(sHex, bity); } else if (sType.equals(String("RC5"))) { irsend.sendRC5(sHex, sBits); } else if(sType.equals(String("SONY"))) { irsend.sendSony(sHex, sBits); } else if(sType.equals(String("NEC"))) { if (!i) irsend.sendNEC(sHex, sBits); } else if(sType.equals(String("))) { Serial << "Opóźnienie" << EOP; opóźnienie(450); } opóźnienie(30); } }
Krok 8: Połącz się z serwerem internetowym z komputera
.. albo telefon albo android albo ipad lub cokolwiek innego: wejdź na https://adres IP serwera/remote.php U mnie adres to https://192.168.0.9/remote.php ale twój bez wątpienia będzie inny. Jeśli wszystko działa, powinieneś zobaczyć zdjęcie pilota z przyciskami, które możesz kliknąć.
Krok 9: Krok opcjonalny: Edytuj plik Hosts, aby był łatwiejszy w użyciu
Krokiem, który zrobiłem, była edycja pliku hosts (/etc/hosts w systemie Linux, C:\Windows\System32\Drivers\etc\hosts w systemie Windows). Zwróć uwagę, że ten plik można edytować tylko w administracyjnym wierszu poleceń (windows) lub su (linux) Dodaj wiersz ip.add.re.ss remote zastąp ip.add.re.ss adresem IP serwera i zapisz plik. Musisz to zrobić na każdym urządzeniu, na którym chcesz uzyskać dostęp do strony internetowej o krótkiej nazwie. Teraz możesz uzyskać dostęp do pilota za pomocą https://remote/remote.php To jest moja pierwsza odpowiednia instrukcja, bądź delikatny i daj mi znać, jeśli są jakieś problemy, abym mógł je naprawić.
Zalecana:
Arduino: Programy czasowe i zdalne sterowanie z aplikacji na Androida: 7 kroków (ze zdjęciami)
Arduino: Programy czasowe i zdalne sterowanie z aplikacji na Androida: Zawsze zastanawiałem się, co dzieje się z tymi wszystkimi płytkami Arduino, których ludzie nie potrzebują po zakończeniu swoich fajnych projektów. Prawda jest nieco denerwująca: nic. Zaobserwowałem to w domu mojej rodziny, gdzie mój ojciec próbował zbudować własny dom
Zdalne sterowanie i nadzór zdjęć przez MQTT: 8 kroków
Zdalne sterowanie i nadzór nad MQTT: Witam.Dzisiaj chciałbym opowiedzieć o tym, jak zrobić system zdalnego sterowania i monitoringu, który może służyć np. do sterowania bramami garażowymi, oświetleniem, ogrzewaniem, regulacją ciśnienia, temperaturą i wieloma innymi parametry. Ale główną cechą tego
Arduino IDE z dwurdzeniowym procesorem: zdalne sterowanie: 8 kroków
Arduino IDE z dwurdzeniowym procesorem: zdalne sterowanie: ten film dotyczy „multi”. Mamy do czynienia z wielozadaniowością, wielordzeniami i multiklientami. Jakiś czas temu zrobiłem pilota z dwoma ESP: klientem i punktem dostępowym. Na tej podstawie dzisiaj skonfigurujemy serwer multiclient. Oznacza to, że
Płytki PCB oparte na przeglądarce: 7 kroków
Płytki PCB oparte na przeglądarce: W miarę podejmowania lub tworzenia projektów, niektóre będą łatwe, a inne trudne. Niektóre będą jednorazowe, a inne będą musiały być wykonane na dużą skalę. W tym artykule zajmiemy się moim największym projektem, Distributed Symphony, i tym, jak mikrofon
Zdalne sterowanie robotem Arduino: 7 kroków
Zdalne sterowanie robotem Arduino: W tej instrukcji zamierzam użyć osłony silnika Adafruit dla Arduino V2 wraz z anteną nRF24L01, aby stworzyć zdalnie sterowanego robota dalekiego zasięgu. Używam starego Adafruit Arduino 101 CurrieBot z Arduino Uno zamiast