Çö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
0

Aslında sorun şu 57 veri boyutunda bir arrayi aynı anda gönderip alıcı portumda aynı anda basmasını istiyorum. fakat verilerim float ve alıcı portu basmıyor. Ben de ayrı ayrı struct açarak parça parça göndermeyi deniyorum aşağı kodları bırakıyorum.

#include “Arduino.h”
#include “LoRa_E32.h”
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
LoRa_E32 e32ttl(&mySerial);

void printParameters(struct Configuration configuration);
void printModuleInformation(struct ModuleInformation moduleInformation);

void setup()
{

Serial.begin(9600);
e32ttl.begin();
Serial.println(“GONDERICI”);
delay(3000);
}

struct paket1
{
byte sayi[10];

};
struct paket2
{
byte sayi[10];

};
struct paket3
{
byte sayi[10];

};
struct paket4
{
byte sayi[10];

};
struct paket5
{
byte sayi[10];

};
struct paket6
{
char bitis;
byte sayi[7];

};
struct paket1 veri1;
struct paket2 veri2;
struct paket3 veri3;
struct paket4 veri4;
struct paket5 veri5;
struct paket6 veri6;

void loop()
{
float j = 0.0;

for (int i = 0; i < 10; i++)
{

veri1.sayi[i] = j;
Serial.println(veri1.sayi[i]);
j++;
}
ResponseStatus rs = e32ttl.sendFixedMessage(0, 3, 7, &veri1, sizeof(paket1));
delay(1000);
for (int i = 0; i < 10; i++)
{

veri2.sayi[i] = j;
Serial.println(veri2.sayi[i]);
j++;
}
rs = e32ttl.sendFixedMessage(0, 3, 7, &veri2, sizeof(paket2));
delay(1000);
for (int i = 0; i < 10; i++)
{

veri3.sayi[i] = j;
Serial.println(veri3.sayi[i]);
j++;
}
rs = e32ttl.sendFixedMessage(0, 3, 7, &veri3, sizeof(paket3));
delay(1000);
for (int i = 0; i < 10; i++)
{

veri4.sayi[i] = j;
Serial.println(veri4.sayi[i]);
j++;
}
rs = e32ttl.sendFixedMessage(0, 3, 7, &veri4, sizeof(paket4));
delay(1000);
for (int i = 0; i < 10; i++)
{

veri5.sayi[i] = j;
Serial.println(veri5.sayi[i]);
j++;
}
rs = e32ttl.sendFixedMessage(0, 3, 7, &veri5, sizeof(paket5));
delay(1000);
for (int i = 0; i < 7; i++)
{

veri6.sayi[i] = j;
Serial.println(veri6.sayi[i]);
j++;
}
rs = e32ttl.sendFixedMessage(0, 3, 7, &veri6, sizeof(paket6));
delay(1000);

}

#include “Arduino.h”
#include “LoRa_E32.h”
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
LoRa_E32 e32ttl(&mySerial);
String readString = “”;

void setup()
{
Serial.begin(9600);
e32ttl.begin();
Serial.println(“ALICI”);
delay(3000);
}

struct paket1
{
byte sayi[10];

};
struct paket2
{
byte sayi[10];

};
struct paket3
{
byte sayi[10];

};
struct paket4
{
byte sayi[10];

};
struct paket5
{
byte sayi[10];

};
struct paket6
{

byte sayi[7];

};
struct paket1 veri1;
struct paket2 veri2;
struct paket3 veri3;
struct paket4 veri4;
struct paket5 veri5;
struct paket6 veri6;

void loop()
{
if (e32ttl.available() > 0)
{
ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(paket1));
veri1 = *(paket1*) rsc.data;

}
for (int i = 0; i < 10; i++) {
readString += String(veri1.sayi[i]);
readString += “;”;
}
Serial.print(readString);
readString = “”;
delay(100);
if (e32ttl.available() > 0)
{
ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(paket2));
veri2 = *(paket2*) rsc.data;

}
for (int i = 0; i < 10; i++) {
readString += String(veri2.sayi[i]);
readString += “;”;

}
Serial.print(readString);
readString = “”;
delay(100);
if (e32ttl.available() > 0)
{
ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(paket3));
veri3 = *(paket3*) rsc.data;

}
for (int i = 0; i < 10; i++) {
readString += String(veri3.sayi[i]);
readString += “;”;

}
Serial.print(readString);
readString = “”;
delay(100);
if (e32ttl.available() > 0)
{
ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(paket4));
veri4 = *(paket4*) rsc.data;

}
for (int i = 0; i < 10; i++) {
readString += String(veri4.sayi[i]);
readString += “;”;

}

Serial.print(readString);
readString = “”;
delay(100);
if (e32ttl.available() > 0)
{
ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(paket5));
veri5 = *(paket5*) rsc.data;

}
for (int i = 0; i < 10; i++) {
readString += String(veri5.sayi[i]);
readString += “;”;

}

Serial.print(readString);
readString = “”;
delay(100);
if (e32ttl.available() > 0)
{
ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(paket6));
veri6 = *(paket6*) rsc.data;

}
for (int i = 0; i < 7; i++) {
readString += String(veri6.sayi[i]);
readString += “;”;

}
Serial.println(readString);
readString = “”;
delay(100);

}

Mehmet Karacaoğlan Cevaplanan soru Ağustos 8, 2021
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.