Hocam merhaba biz alıcı verici projesi yapıyoruz. Projemiz çalışıyordu ama bir anda recieverda veri alamamaya başladık. Devreyi defalarca baştan kurduk. Alıcı ve vericideki lora modüllerini birbiri arasında değiştirdik,verici tarafı datayı gönderiyor ama alıcı kısmındayken datayı alamaz olduk. loralarda sıkıntı yok gibi. “if (e32ttl.available() > 1){ ” kodda bu bloğa giremez oldu maalesef. Sıkıntının nerede olduğunu anlayamadık. Yardımcı olabilir misiniz ? Lora ayarlamarını usb stick ile değil arduino ile yapmıştık oradan kaynaklıda bişey olabilir mi?
Soru yeni cevaplara kapalıdır.
Yunus Emre Mavi En iyi cevap olarak seçildi Mayıs 29, 2021
“transmitter”
#include "LoRa_E32.h" #include "Arduino.h" #include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3); LoRa_E32 e32ttl(2, 3); void setup() { pinMode(7,INPUT); Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB } delay(100); e32ttl.begin(); } struct Message { byte gas; byte flame; }; int i =0; void loop() { delay(2500); i++; byte gasValue = analogRead(A0); byte flameValue = digitalRead(7); Message box ; box.gas=gasValue; box.flame=flameValue; Serial.println(box.flame); Serial.println(box.gas); //Serial.println(box.device); ResponseStatus rs = e32ttl.sendFixedMessage(0,3,4,&box, sizeof(Message)); Serial.println(rs.getResponseDescription()); }
“Reciever”
#include "Arduino.h" #include "LoRa_E32.h" #include <SoftwareSerial.h> #include "UbidotsESPMQTT.h" SoftwareSerial mySerial(D6, D7); LoRa_E32 e32ttl(D6, D7); /**************************************** * Define Constants ****************************************/ #define TOKEN "*gizli*" // Your Ubidots TOKEN #define WIFINAME "yunusemre" // Your SSID #define WIFIPASS "yunusemre" // Your Wifi Pass Ubidots client(TOKEN); void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } void setup() { //-----------Haberleşme ve Bağlantılar-------------------- pinMode(D4,INPUT); // alev sensörü Serial.begin(9600); client.setDebug(true); // Pass a true or false bool value to activate debug messages client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); while (!Serial) { ; // wait for serial port to connect. Needed for native USB } delay(100); e32ttl.begin(); Serial.println(); Serial.println("Start listening!"); } struct Message { byte device; byte gas; byte flame; }; void loop() { if (e32ttl.available() > 1){ ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Message)); struct Message box = *(Message*) rsc.data; rsc.close(); Serial.println("Flame"); Serial.println(box.flame); Serial.println("Gas"); Serial.println(box.gas); // Serial.println("Device"); //Serial.println(box.device); // reciever için ateş ve gaz sensörü int gasValue_rec = analogRead(A0); int flameValue_rec = 1; //int flameValue_rec = digitalRead(D4); // KARAR MEKANİZMASI int alarm_t = 0; int alarm_r = 0; if(box.flame == 0 || box.gas >= 350){ // transmitter tarafında yangını kontrol ediyoruz. alarm_t = 1; } if(gasValue_rec >= 350 || flameValue_rec == 0){// reciever tarafında yangını kontrol ediyoruz. alarm_r = 1; } if (!client.connected()) { client.reconnect(); } //transmitter'ı ubidots'a yükleme client.add("flame_t", box.flame); // Insert your variable Labels and the value to be sent client.add("gas_t", box.gas); client.add("alarm_t", alarm_t); client.ubidotsPublish("transmiter"); // reciever'ı ubidots'a yükleme client.add("flame_r", flameValue_rec); // Insert your variable Labels and the value to be sent client.add("gas_r", gasValue_rec); client.add("alarm_r", alarm_r); client.ubidotsPublish("reciever"); client.loop(); delay(1000); } }
Yunus Emre Mavi Cevaplanan soru Mayıs 22, 2021