Данные передаются только при включении передатчика. И потом тишина. Т.е. дал питание данные передались один раз и все, хотелось бы что б постоянно шли В сериале выдает: Listening Humidity : 36 Temperature :25 Всего один раз, а должно быть циклично Передатчик: Код (Text): #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #define CE_PIN 9 #define CSN_PIN 10 #include "DHT.h" #define DHTTYPE DHT11 #define DHTPIN 2 DHT dht(DHTPIN, DHTTYPE); const uint64_t pipe = 0xE8E8F0F0E1LL; RF24 radio(CE_PIN, CSN_PIN); int dannye[3]; void setup() { Serial.begin(9600); dht.begin(); radio.begin(); radio.openWritingPipe(pipe); } void loop() { dannye[0]=dht.readHumidity(); dannye[1]=dht.readTemperature(); radio.write(dannye, sizeof(dannye) ); //Serial.print("Humidity :"); //Serial.println(dannye[0]); // Serial.print("Temperature :"); // Serial.println(dannye[1]); } Приемник: Код (Text): #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #define CE_PIN 9 #define CSN_PIN 10 const uint64_t pipe = 0xE8E8F0F0E1LL; RF24 radio(CE_PIN, CSN_PIN); int dannye[3]; void setup() { Serial.begin(9600); radio.begin(); radio.openReadingPipe(1,pipe); radio.startListening(); Serial.print("Listening"); } void loop() { if ( radio.available() ) { bool done = false; while (!done) { done = radio.read( dannye, sizeof(dannye) ); Serial.print("Humidity :"); Serial.println(dannye[0]); Serial.print("Temperature :"); Serial.println(dannye[1]); } } }
я делаю проект, в котором передаются данные с dht22 c arduino nano v3 на mega 2560 посредством nrf24l01+. пока все еще в начальной стадии использую вот эти библиотеки от maniacbug https://github.com/maniacbug/RF24 https://github.com/maniacbug/RF24Network мой тестовый код приемника Код (Text): #include <SPI.h> // библиотека для SPI интерфейса #include <RF24.h>// библиотека для беспроводного передатчика nRF24L01+ #include <RF24Network.h> //////Подключение nRF24L01+///////////// /* Передатчик | arduino nano v3 1 Gnd | Gnd (минус) 2 Vcc | + 3.3 В (только 3.3!!!!) 3 CE | D9 4 CSN | D10 5 SCK | D13 6 MOSI | D11 7 MISO | D12 8 IRQ | в данной программе не используется */ #define CE 9 #define CSN 10 //////Инициализация и первичная настройка nRF24L01+////// RF24 radio(9, 10); // Network uses that radio RF24Network network(radio); // Address of our node const uint16_t this_node = 0; // Address of the other node const uint16_t other_node = 1; //float humidity = 9999; // влажность //float temperature = 9999; // температура (в градусах цельсия) //int serial_command = 0; // Structure of our payload struct payload_t { float a; float b; }; void setup(){ Serial.begin(9600); SPI.begin(); radio.begin(); network.begin(/*channel*/ 90, /*node address*/ this_node); } void loop(){ // Pump the network regularly network.update(); // Is there anything ready for us? while ( network.available() ) { // If so, grab it and print it out RF24NetworkHeader header; payload_t payload; network.read(header,&payload,sizeof(payload)); Serial.print("Received ...."); Serial.print(" \t"); Serial.print(payload.a); Serial.print(" \t"); Serial.println(payload.b); } } передатчика Код (Text): #include <SPI.h> // библиотека для SPI интерфейса #include <RF24.h>// библиотека для беспроводного передатчика nRF24L01+ #include <RF24Network.h> #include "DHT.h" // библиотека для работы с датчиком температуры и влажности DHT DHT dht; // инициализация датчика DHT22 #define dnt_pin 4 float humidity; // влажность float temperature; // температура (в градусах цельсия) //////Подключение nRF24L01+///////////// /* Передатчик | arduino nano v3 1 Gnd | Gnd (минус) 2 Vcc | + 3.3 В (только 3.3!!!!) 3 CE | D9 4 CSN | D10 5 SCK | D13 6 MOSI | D11 7 MISO | D12 8 IRQ | в данной программе не используется */ #define CE 9 #define CSN 10 //////Инициализация и первичная настройка nRF24L01+////// RF24 radio(9, 10); RF24Network network(radio); const uint16_t this_node = 1; // Address of our node const uint16_t other_node = 0; // Address of the other node boolean query = false; // статус запроса на измерение температуры и влажности и передачу данных int serial_command; // команда, принятая через serial порт struct payload_t { float a; float b; }; void setup() { Serial.begin(9600); dht.setup(dnt_pin); // data pin 4 // вход для датчика DHT22 SPI.begin(); radio.begin(); //настройка nRF24L01+ network.begin(/*channel*/ 90, /*node address*/ this_node); } void read_sensor(){ //выполняем измерение температуры и влажности delay(dht.getMinimumSamplingPeriod()); temperature = dht.getTemperature(); humidity = dht.getHumidity(); Serial.println("read seansor"); Serial.print(temperature, 1); // 1 - количество знаков после запятой Serial.print(" \t"); // табуляция, отступ Serial.println(humidity, 1); } void loop() { read_sensor(); // Pump the network regularly network.update(); payload_t payload = {temperature, humidity}; RF24NetworkHeader header(/*to node*/ other_node); bool ok = network.write(header,&payload,sizeof(payload)); if (ok) Serial.println("ok."); else Serial.println("failed."); }
Код (Text): DHT dht; // инициализация датчика DHT22 #define dnt_pin 4 float humidity; // влажность float temperature; // температура (в градусах цельсия) Мне кажется тут ошибка у Вас #define dnt_pin 4
библиотеку брал тут https://github.com/markruys/arduino-DHT автоопределение используемого датчика, требуется только указать пин а что имеено Вас смутило?
#define dnt_pin 4#define dnt_pin 4#define dnt_pin 4#define dnt_pin 4#define dnt_pin 4#define dnt_pin 4 Там не должно быть #define dht_pin 4 может и нет, я только начинаю осваивать. Спасибо за ответы
заработало!!!!!! Огромное вам спасибо за помощь. Насколько я понял можно несколько передатчиков в сеть включить?
код приёмника не компилируется. Как же это может работать. Что-то done не нравится void value not ignored as it ought to be