Çözüldü4.53K 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
0

hoca bu nasıl kod kusacağım, çabuk sil gözüm kanadı :). şu en son yazımızdaki gibi 1 tane struct yapısının içine doldur tek tek değişkenlerini. ben burda 3 tane yazmışım aynı şekilde sen alt alta doldur.

https://fixaj.com/hdc1080-ile-sicaklik-ve-nem-olcup-lora-ile-gonderme/

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

Hocam şu şekilde düşünmüştüm. 57 veri aynı anda hızlı bir şekilde float veri almak istiyorum 2-3 saat boyunca. Fakat alıcı 27 veriden sonra aynı anda almıyor verileri. Ben de ayrı ayrı paketler halinde göndermek istedim. Yorumunuz çok doğru 😀 baya uğraştırıcı bir kod ama her türlü şeyi denedikten sonra böyle denemek istemiştim. delaysiz 57 farklı float sayıyı nasıl gönderebilirim? aynı anda veya çok düşük bir gecikmeyle.

4 cevaptan 1'ini inceliyorsun, tüm cevapları görmek için buraya tıklayın.