Open ABiatov opened 6 years ago
Взяли пример вашего скрипта с https://github.com/nextgis/nextgislogger/wiki/External-sensors-(Arduino)#sketch
Заменили в нем Bluetooth TX и RX на UART пины 0 и 1, т.к. программные порты уже заняты, пример скрипта ниже.
Что не правильно в скрипте?
Почему данные по Bluetooth не приходят в NGL ?
#include <SoftEasyTransfer.h> #include <SoftwareSerial.h> #define DIR 8 // переключатель прием\передача SoftwareSerial myRS485(7, 6); // RX, TX Serial для RS485 //SoftwareSerial bt(10, 11); // Bluetooth at TX = 10, RX = 11 EasyTransfer ET; // order, short and full name, unit of all sensors in json String pnp = "{\"0\":{\"short\":\"Temp\",\"full\":\"Temperature\",\"unit\":\"°C\"},\"1\":{\"short\":\"Hum\",\"full\":\"Humidity\",\"unit\":\"%\"}}"; struct RECEIVE_DATA_STRUCTURE{ float MAG_X; float MAG_Y; float MAG_Z; float ACC_X; float ACC_Y; float ACC_Z; }; RECEIVE_DATA_STRUCTURE sensdata; void setup(){ Serial.begin(9600); myRS485.begin(9600); //bt.begin(9600); ET.begin(details(sensdata), &Serial); pinMode(DIR, OUTPUT); digitalWrite(DIR, LOW); } void loop(){ if(ET.receiveData()){ float mx = sensdata.MAG_X; float my = sensdata.MAG_Y; float mz = sensdata.MAG_Z; float ax = sensdata.ACC_X; float ay = sensdata.ACC_Y; float az = sensdata.ACC_Z; if (az > 0){ digitalWrite(13, !digitalRead(13)); } delay(500); } if (Serial.available()) { int val = Serial.read(); // get json if (val == 'h' || val == 'H') { Serial.println(pnp); } // get data if (val == 'd' || val == 'D') { // send it to Bluetooth Serial.print(mz, 2); Serial.print(';'); Serial.println(az, 2); } delay(10); } }
Взяли пример вашего скрипта с https://github.com/nextgis/nextgislogger/wiki/External-sensors-(Arduino)#sketch
Заменили в нем Bluetooth TX и RX на UART пины 0 и 1, т.к. программные порты уже заняты, пример скрипта ниже.
Что не правильно в скрипте?
Почему данные по Bluetooth не приходят в NGL ?