Çözüldü3.89K görüntülenmeArduinoLora
0

Gönderici loradan gönderdiğim bütün veriler gidiyor fakat alıcıda yazdırdıktan sonra belli bir yerden sonra donma oluyor. Fakat arduinoyu resetlediğimde düzeliyor. B

#include "Arduino.h"<br />#include <math.h><br />#include "LoRa_E32.h"<br />#include <SoftwareSerial.h><br />SoftwareSerial mySerial(10, 11);<br />LoRa_E32 e32ttl(&mySerial);<br /> void printParameters(struct Configuration configuration);<br />void printModuleInformation(struct ModuleInformation moduleInformation);<br /> void setup()<br />{<br />  pinMode(A0, INPUT);<br />  Serial.begin(9600);<br />  while (!Serial);<br />  e32ttl.begin();<br />  Serial.println("GONDERICI");<br /> }<br />double Termistor(int analogOkuma) {<br />  double sicaklik;<br />  sicaklik = log(((10240000 / analogOkuma) - 10000));<br />  sicaklik = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * sicaklik * sicaklik)) * sicaklik);<br />  sicaklik = sicaklik - 273.15;<br />  return sicaklik;<br />}<br /> struct paket<br />{<br />  double sayi[10];<br /> };<br /> struct paket veri1;<br />struct paket veri2;<br /> void loop()<br />{<br />  for (int i = 0; i < 10; i++)<br />  {<br />    int deger = analogRead(A0);<br />    double sicaklik = Termistor(deger);<br />    veri1.sayi[i] = sicaklik;<br />    ResponseStatus rs = e32ttl.sendFixedMessage(0, 3, 7, &veri1, sizeof(paket));<br />    delay(1000);<br />    for (int i = 0; i < 10; i++)<br />    {<br />      Serial.println(veri1.sayi[i]);<br />     }<br />  }<br />     for (int i = 0; i < 10; i++)<br />     {<br />       int deger = analogRead(A0);<br />       double sicaklik = Termistor(deger);<br />       veri2.sayi[i] = sicaklik;<br />       ResponseStatus rw = e32ttl.sendFixedMessage(0, 3, 7, &veri2, sizeof(paket));<br />       delay(1000);<br />             for (int i = 0; i < 10; i++)<br />      {<br />        Serial.println(veri2.sayi[i]);<br />       }<br />     }<br />    }<br /> #include "Arduino.h"<br />#include "LoRa_E32.h"<br />#include <SoftwareSerial.h><br />SoftwareSerial mySerial(10, 11);<br />LoRa_E32 e32ttl(&mySerial);<br /> void setup()<br />{<br />  Serial.begin(9600);<br />  while (!Serial);<br />  e32ttl.begin();<br />  Serial.println("ALICI");<br />}<br /> struct paket<br />{<br />   double sayi[10];<br /> };<br /> struct paket veri1;<br />struct paket veri2;<br /> void loop()<br />{<br />  if (e32ttl.available()  > 1) {<br />     for (int i = 0; i < 10; i++) {<br />      ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(paket));<br />      veri1 = *(paket*) rsc.data;<br />      delay(1000);<br />           for (int i = 0; i < 10; i++) {<br />        Serial.println(veri1.sayi[i],1);<br />      }<br />    }

unun sebebi ne olabilir açıklar mısınız. Teşekkür ederim.

Soru yeni cevaplara kapalıdır.
Mehmet En iyi cevap olarak seçildi Ağustos 19, 2021
1

Üretici firma ile de konuştum hatta Lora kütüphanesini yazan arkadaş ile de görüştüm. Lora ile tek sefer 58 byte üstü bir veriyi yollamak imkansızmış.

github daki sorum : https://github.com/xreef/LoRa_E32_Series_Library/issues/31

Ama şu var. parça parça yapıp yollayabiliriz. Şöyle ki elimizde 100byte lık bir veri olsun. struct yapımızda data1, data2, data3… data20 kadar gittiğini düşünelim. ilk data1 in içine paket numarası yazılar misal 1 paket biri ifade eder ve ilk gelen paket1 ise data2 den başlayarak bizim ilk 19 değişkenimiz olur. ilk paket gönderildikten sonra yine aynı struct yapısı ile verilerimizi göndeririz bu sefer data1 bizim 2. paketimiz olur öyle öyle bütün verileri atabilirsin. her bir paket gönderimi sırasında toplam gönderilen byte bölü air rate hızı kadar bekleme yapmayı  unutma yoksa veriler çakışır.

Mehmet Karacaoğlan Yeni yorum gönderildi Ağustos 21, 2021

Çok teşekkür ederim mehmet abi. Bu aralar atölye yoğun bir tempoda olduğu için yen görebildim mesajını. Aldığım bilgiler çok değerli oldu çok çok teşekkür ederim.

4 cevaptan 1'ini inceliyorsun, tüm cevapları görmek için buraya tıklayın.
Whatsapp'tan Yaz
1
Ürün Danışmanı Burada!
fixaj.com Ürün Danışmanı
Merhaba,

Ben sadece "Satın Alma" konularında destek vermekteyim.

Kodlama yardımı, haberleşme hataları, bağlantı şemaları vb. konularla ilgili "Soru&Cevap" https://fixaj.com/sorucevap/ sayfamızı ziyaret edebilirsiniz.