Spisu treści:
- Krok 1: Le Montage
- Krok 2: Le Code Arduino
- Krok 3: Infos Sur Les Codes Infra-Rouge
- Krok 4: Informacje Sur Kody RX433
Wideo: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Le but est d’afficher les code des télécommandes du style commande de lampe, porte de garage et autre fonctionnant sous 433 mhz (RX433) mais aussi ceux des télécommandes infra-rouge de télévision au autre.
On pourra donc ensuite, grace à une autre montage, envoyer ces code et piloter n’importe quoi!
Krok 1: Le Montage
Prosty, Arduino Nano, jednodiodowy odbiornik podczerwieni i odbiornik 433 MHz.
Krok 2: Le Code Arduino
//InfraRouge
#włączać
int recvPin = 11; //pin Arduino do gniazda InfraRouge (TOSP4838)
IRrecv nieodwoł(recvPin);
//RX433
#włączać
RCSwitch mójPrzełącznik = RCSwitch();
decode_results wyniki;
pusta konfiguracja ()
{
Serial.początek(9600);
nieodwoł.enableIRIn();
irrecv.blink13(true);//allume la LED infra lors de l'envoie InfraRouge
mySwitch.enableReceive(0); // Receptur RX433 (XY-MK-5V) na pin 2 Arduino Uno i Nano
}
// umieszczenie kodów InfraRouge
void ircode (decode_results *wyniki)
{
// Panasonic
if (results->decode_type == PANASONIC) {
Serial.print(wyniki->adres, HEX);
Serial.print(":");
}
Serial.print(wyniki->wartość, HEX);
}//próżnia
// afficahge des codes encodes
void kodowanie (decode_results *results)
{
przełącznik (wyniki->typ_dekodowania) {
domyślny:
przypadek NIEZNANY: Serial.print("Inconnu"); przerwa;
przypadek NEC: Serial.print("NEC"); przerwa;
case SONY: Serial.print("SONY"); przerwa;
przypadek RC5: Serial.print("RC5"); przerwa;
przypadek RC6: Serial.print("RC6"); przerwa;
case DISH: Serial.print("DISH"); przerwa;
case SHARP: Serial.print("SHARP"); przerwa;
case JVC: Serial.print("JVC"); przerwa;
przypadek SANYO: Serial.print("SANYO"); przerwa;
przypadek MITSUBISHI: Serial.print("MITSUBISHI"); przerwa;
sprawa SAMSUNG: Serial.print("SAMSUNG"); przerwa;
sprawa LG: Serial.print("LG"); przerwa;
case WHYNTER: Serial.print("WHYNTER"); przerwa;
sprawa AIWA_RC_T501: Serial.print("AIWA_RC_T501"); przerwa;
case PANASONIC: Serial.print("PANASONIC"); przerwa;
przypadek DENON: Serial.print("Denon"); przerwa;
}
}
// zrzuć wyniki
void dumpInfo (decode_results *results)
{
// Sprawdź, czy bufor się przepełnił
if (wyniki->przepełnienie) {
Serial.println("Kod IR jest za długi. Edytuj IRremoteInt.h i zwiększ RAWBUF");
powrót;
}
// Pokaż standard kodowania
Serial.print("Kodowanie: ");
kodowanie(wyniki);
Serial.println("");
// Pokaż kod i długość
Serial.print("Kod: ");
ircode(wyniki);
Serial.print(" (");
Serial.print(wyniki->bity, DEC);
Serial.println("bity)");
}
//Struktura
void dumpRaw (decode_results *results)
{
// Drukuj surowe dane
Serial.print("Czas [");
Serial.print(wyniki->rawlen-1, DEC);
Serial.println("]: ");
for (int i = 1; i rawlen; i++) {
unsigned long x = results->rawbuf * USECPERTICK;
if (!(i i 1)) { // parzyste
Serial.print("-");
if (x < 1000) Serial.print(" ");
if (x < 100) Serial.print(" ");
Serial.print(x, DEC);
} inny { // nieparzysty
Serial.print(" ");
Serial.print("+");
if (x < 1000) Serial.print(" ");
if (x < 100) Serial.print(" ");
Serial.print(x, DEC);
if (i rawlen-1) Serial.print(", "); //', ' nie potrzebne dla ostatniego
}
if (!(i % 8)) Serial.println("");
}
Serial.println(""); // Nowa linia
}
//+=============================================================================
// Zrzuć strukturę decode_results.
//
void dumpCode (decode_results *results)
{
// Rozpocznij deklarację
Serial.print("unsigned int "); // typ zmiennej
Serial.print("rawData["); // nazwa tablicy
Serial.print(wyniki->rawlen - 1, DEC); // rozmiar tablicy
Serial.print("] = {"); // Rozpocznij deklarację
// Zrzuć dane
for (int i = 1; i rawlen; i++) {
Serial.print(wyniki->rawbuf * USECPERTICK, DEC);
if (i rawlen-1) Serial.print(", "); // ', ' nie potrzebne na ostatnim
if (!(i & 1)) Serial.print(" ");
}
// Końcowa deklaracja
Serial.print("};"); //
// Komentarz
Serial.print(" // ");
kodowanie(wyniki);
Serial.print(" ");
ircode(wyniki);
// Nowa linia
Serial.println("");
// Teraz zrzuć "znane" kody
if (wyniki->typ_dekodowania != NIEZNANE) {
// Niektóre protokoły mają adres
if (results->decode_type == PANASONIC) {
Serial.print("unsigned int addr = 0x");
Serial.print(wyniki->adres, HEX);
Serial.println(";");
}
// Wszystkie protokoły mają dane
Serial.print("unsigned int data = 0x");
Serial.print(wyniki->wartość, HEX);
Serial.println(";");
}
}
pusta pętla ()
/************************************************** * InfraRouge ***********************************************/
{
decode_results wyniki; // Gdzieś do przechowywania wyników
if (irrecv.decode(&results)) { // Złap kod IR
dumpInfo(&wyniki); // wyślij wyniki
dumpRaw(&wyniki); // Prześlij wyniki w formacie RAW
dumpCode(&wyniki); // Wypisz wyniki jako kod źródłowy
Serial.println(""); // Pusta linia między wpisami
nieodzysk.wznowienie(); // Przygotuj się na następną wartość
}
/************************************************** *** RX433 **************************************************/
jeśli (mySwitch.available())
{
int wartość = mySwitch.getReceivedValue();
Serial.println("RX433");
jeśli (wartość == 0) {
Serial.print("Kod inconnu");
} w przeciwnym razie
{
Serial.print("Reçu");
Serial.print(mySwitch.getReceivedValue());
Serial.print(" / ");
Serial.print(mySwitch.getReceivedBitlength());
Serial.print("bit");
Serial.print("Protokół: ");
Serial.println(mySwitch.getReceivedProtocol());
}
mójPrzełącznik.resetDostępny();
}//RX433
}//pętla
Krok 3: Infos Sur Les Codes Infra-Rouge
Protokoły plusieurs:
NEC: 32 bity (szczegóły protokołu)
Sony: 12 lub 20 bitów (szczegóły protokołu) (Zrozumienie kodów zdalnych Sony IR).
RC5: 12 bitów (szczegóły protokołu)
RC6: 20 lub 36 bitów (szczegóły protokołu)
Wlać Sony et RC5/6, transmisja chaque doit être répétés 3 fois!
UWAGA: la librairie IRremote.h ne semble pas pouvoir envoyer des codes codés sur plus de 32bits. Les RC6, 36 doivent donc êtres envoyer en raw, qui prennent plus de taille mémoire.
L’envoie des code se fera avec la librairie IRremote.h
Przykład: (0x kod devant) i nazwa bitów irsend.sendNEC (0xA55A38C7, 32);
Krok 4: Informacje Sur Kody RX433
L'envoie se fera z biblioteką RCSwitch.h
Przykład mySwitch.send(1975778, 24);
Na peut facilement pilot avec cela des prises commandés.
Zalecana:
Pierwsze kroki z IDE STM32f767zi Cube i prześlij własny szkic: 3 kroki
Rozpoczęcie pracy z IDE STM32f767zi i przesłanie własnego szkicu: KUP (kliknij test, aby kupić/odwiedzić stronę internetową) OPROGRAMOWANIE STM32F767Z WSPIERANE· IDE STM32CUBE· KEIL MDK ARM µVISION· EWARM IAR EMBEDDED WORKBENCH· Dostępne różne oprogramowanie ARDUINO służy do programowania mikrokontrolerów STM
Jak zrobić podwójną antenę 4G LTE BiQuade Proste kroki: 3 kroki
Jak zrobić podwójną antenę 4G LTE BiQuade Proste kroki: W większości przypadków nie mam dobrej siły sygnału w mojej codziennej pracy. Więc. Szukam i próbuję różnych typów anten, ale nie działa. Po zmarnowanym czasie znalazłem antenę, którą mam nadzieję zrobić i przetestować, bo to zasada budowy nie
Sterowanie radiowe RF 433MHZ za pomocą HT12D HT12E - Tworzenie pilota RF za pomocą HT12E i HT12D z 433mhz: 5 kroków
Sterowanie radiowe RF 433MHZ za pomocą HT12D HT12E | Tworzenie pilota RF za pomocą HT12E i HT12D z 433mhz: W tej instrukcji pokażę ci, jak zrobić pilota RADIO za pomocą modułu odbiornika nadajnika 433mhz z kodowaniem HT12E i amp; Dekoder HT12D IC. W tej instrukcji możesz wysyłać i odbierać dane za pomocą bardzo, bardzo tanich KOMPONENTÓW, TAKICH JAK: HT
Moduł RF 433MHZ - Wykonaj odbiornik i nadajnik z modułu RF 433 MHZ bez żadnego mikrokontrolera: 5 kroków
Moduł RF 433MHZ | Stwórz odbiornik i nadajnik z modułu RF 433 MHz bez żadnego mikrokontrolera: Czy chcesz przesyłać dane bezprzewodowo? łatwo i bez mikrokontrolera? Zaczynamy, w tym instruktażowym pokażę Ci podstawowy nadajnik i odbiornik rf gotowy do użycia! W tej instrukcji będziesz mógł wysyłać i odbierać dane za pomocą bardzo ver
ESP-12 Infra Red Blaster: 7 kroków
ESP-12 Infra Red Blaster: Infra Red Blaster zdalnego sterowania wykorzystujący esp8266Przesyła kody zdalnego sterowania otrzymane z sieci, obsługując wiele urządzeń wyjściowych. Wbudowana prosta strona internetowa głównie do testowania. Normalne użycie to wiadomości POST, które mogą pochodzić ze stron internetowych lub z IFTT