Skocz do zawartości

ESP32 Biblioteka RC Switch


nebraska

Pomocna odpowiedź

Cześć

Czy probował ktoś z Was użyć biblioteki RC switch do odczytywania kodów pilota z esp32.

Próbuje, ale nie chce sie kompilować pod esp32, domyślam się ze ma to związek z przerwaniem na pin odbiornika?

 

#define RXD 27

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
 
  mySwitch.enableReceive(RXD);  // Receiver on interrupt 0 => that is pin #2

  
}

void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    if (value == 0) {
      Serial.print("Unknown encoding");
    } else {
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
    }

    mySwitch.resetAvailable();
  }
}

 

Link do komentarza
Share on other sites

Wersje board 3.x nie działają z niektórymi (zdaje się że wszystkimi) starymi bibliotekami do IR.

Wydłub sobie kod z mojej pogodynki (jest na githubie), ten działa ładnie.

  • Lubię! 2
Link do komentarza
Share on other sites

1 godzinę temu, ethanak napisał:

Wersje board 3.x nie działają z niektórymi (zdaje się że wszystkimi) starymi bibliotekami do IR.

Wydłub sobie kod z mojej pogodynki (jest na githubie), ten działa ładnie.

Dziękuję za info.

Podeslesz link? Szukalem, kopałem na jednym github i nic nie znalazłem. Nie wiem czy to był właściwy.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

ethanak jeszcze mam pytanie.

Jak to działa w kwestii zasięgu? Radio wifi ESP32 nie zakłóca się z 433mHz?

Ile mniej więcej metrów można uzyskać?

Link do komentarza
Share on other sites

ethanak próbowałem coś skleić z Twojego gita, ale to nie mój level.

Znalazłem taki przykład ale nie kompiluej się cały czas sypie błędem, że brak biblioteki, ale przecież ona jest w core ESP? Poratuj 

#include <RMT.h>

// Set the RMT channel number
#define RMT_CHANNEL 0

void setup() {
  // Initialize the RMT peripheral
  RMT.begin();

  // Set the input pin
  pinMode(RMT.rxChannelToInput(RMT_CHANNEL), INPUT);

  // Set the carrier frequency (38 kHz)
  RMT.addCarrier(RMT_CHANNEL, 38000);

  // Set the decoder
  RMT.setDecoder(RMT_CHANNEL, RMT_MODE_RX, RMT_MEM_64);

  // Enable the RMT receiver
  RMT.enableRx(RMT_CHANNEL);
}

void loop() {
  // Wait for a signal to be received
  if (RMT.getRxState(RMT_CHANNEL) == RMT_RX_ACTIVE) {
    // Get the received signal
    rmt_item32_t* items = NULL;
    uint32_t numItems = 0;
    if (RMT.read(RMT_CHANNEL, &items, &numItems) == ESP_OK) {
      // Convert the signal to a byte array
      uint8_t data[numItems / 2];
      for (int i = 0; i < numItems / 2; i++) {
        uint8_t high = items[i * 2].duration1 > items[i * 2].duration0 ? 1 : 0;
        uint8_t low = items[i * 2 + 1].duration1 > items[i * 2 + 1].duration0 ? 1 : 0;
        data[i] = (high << 1) | low;
      }

      // Print the received data
      Serial.print("Received data: ");
      for (int i = 0; i < numItems / 2; i++) {
        Serial.print(data[i], HEX);
        Serial.print(" ");
      }
      Serial.println();
    }

    // Reset the receiver
    RMT.rxReset(RMT_CHANNEL);
  }
}

 

Link do komentarza
Share on other sites

Polecenia z biblioteki wybudowanej mają inną postać.

Tu musi chodzić o jakąś inną, zewnętrzną bibliotekę której nie masz zainstalowanej.

Link do komentarza
Share on other sites

(edytowany)
16 minut temu, orb777 napisał:

@nebraska , spójrz tu, gościu używa tych samych wywołań, doinstalowuje też biblioteki z linku.

@orb777 Właśnie stąd wziąłem przykład i nie wiem jaką biblioteke dodać ciągle mam 

RMT.h: No such file or directory

 

Edytowano przez nebraska
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.