Skocz do zawartości

Lora E32 problem z komunikacją na Attiny


nebraska

Pomocna odpowiedź

Witajcie 

Panowie nie ogarniam tego chciałem zrobić prosty test i sprawdzić działanie biblioteki Lora E32.

Gdy podłącze dwa wemosy jako nadajnik i odbiornik wszystko działa. Dane ze struktury wysyła i odbiera.

Jeśli zmienię w odbiorniku z wemosa na Attiny 3226 to ucina mi dane.

Dostaje tylko wilgotność, a temp to już jakieś bzdury typu -1054478.00

Attiny3226 ma dwa seriale sprzętowe sprawdzałem wszytko software serial i seriale sprzętowe i dalej to samo.

Nie wiem gdzie szukać przyczyny.

Poniżej prymitywny kod żeby spr działanie.

 

Nadajnik


#include "Arduino.h"
#include "LoRa_E32.h"

LoRa_E32 e32ttl(4, 5); // wemos d1 mini RX, TX


struct weatherData {
  int humidity;
  float temp;
};

weatherData currentWeather;


void setup()
{

  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB
  }
  delay(100);

 pinMode(14, INPUT_PULLUP);
  e32ttl.begin();

}

void loop()
{

    if(digitalRead(14) == LOW){
      delay(500);
      
      currentWeather.humidity = 56;
      currentWeather.temp = 23.6;

      Serial.println(currentWeather.humidity);
      Serial.println(currentWeather.temp);
      
 
      ResponseStatus rs = e32ttl.sendFixedMessage(0, 2, 23, &currentWeather, sizeof(currentWeather));
      delay(200);
}}







//---------------------------------------------------------------------------------------------------------------------------------------------------


Odbiornik



#include "Arduino.h"
#include "LoRa_E32.h"

LoRa_E32 e32ttl(&Serial1); 


struct weatherData {
  int humidity;
  float temperature;
 
};



void setup() {
  Serial1.swap(1);
  Serial1.begin(9600);
  Serial.begin(9600);
  pinMode(PIN_PA2, INPUT_PULLUP);
  pinMode(PIN_PB5, OUTPUT);
  digitalWrite(PIN_PB5, HIGH);
  
  while (!Serial) {
      ; // wait for serial port to connect. Needed for native USB
    }
  delay(100); 


  e32ttl.begin();

  // ---------------------------
    
}

void loop() {

//if(digitalRead(PIN_PA2) == LOW ){
//  delay(10);


    if (e32ttl.available()  > 1 ){

    ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(weatherData));
    weatherData currentWeather = *(weatherData*) rsc.data;
    delay(200);
    Serial.print("Humidity: ");
    Serial.println(currentWeather.humidity);
    Serial.print("Temperature: ");
    Serial.println(currentWeather.temperature);
    
    }
}

 

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.