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
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.