rf24 + bme280
- Войдите на сайт для отправки комментариев
Чт, 20/12/2018 - 16:32
подскажите пожалуйста где косяк ? передаю данные по rf24 с датчика bme280 , в мониторе передатчика (Arduino Nano CH340 ATmega328) все норм отображается и температура и давление и влажность но в мониторе порта приемника (Arduino UNO) влажность ноль и на экран не могу вывести
PS.в ардуино пока полный ноль. помогите доделать
приемник
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <OLED_I2C.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <Wire.h>
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
unsigned long delayTime;
const uint64_t pipe = 0xF0F1F2F3F4LL;
RF24 radio(9,10);
OLED oled(SDA, SCL, 8); //
extern uint8_t SmallFont[];
String txt1="";
void setup()
{
Serial.begin(9600);
radio.begin();
radio.setChannel(0x60);
delay(2);
radio.setChannel(0x60);
radio.setDataRate(RF24_1MBPS);
radio.setPALevel(RF24_PA_HIGH);
radio.openReadingPipe(1, pipe);
radio.startListening();
oled.begin();
oled.setFont(SmallFont);
}
void loop() {
float data[2];
if (radio.available())
{
radio.read(&data, sizeof(data));
Serial.print("Humidity: ");
Serial.println(data[3]);
Serial.print("Temperat: ");
Serial.println(data[0]);
Serial.print("Pressure: ");
Serial.println(data[1]);
delay(1000);
txt1="Temp=";
txt1= txt1+String(data[3]);
txt1= txt1+" *C";
oled.print(txt1, CENTER, 10);
}
}
передачик
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <Wire.h>
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
unsigned long delayTime;
const uint64_t pipe = 0xF0F1F2F3F4LL;
RF24 radio(9,10);
void setup()
{
bme.begin();
Serial.begin(9600);
radio.begin();
radio.setChannel(0x60);
delay(2);
radio.setChannel(0x60);
radio.setDataRate(RF24_1MBPS);
radio.setPALevel(RF24_PA_HIGH);
radio.openWritingPipe(pipe);
radio.stopListening();
}
void loop()
{
float data[2];
data[0] = bme.readTemperature();
data[1] = bme.readPressure() / 100.0F;
//data[3] = bme.readAltitude(SEALEVELPRESSURE_HPA)();
data[3] = bme.readHumidity();
radio.write(&data, sizeof(data));
Serial.print("Humidity: ");
Serial.println(data[3]);
Serial.print("Temperat: ");
Serial.println(data[0]);
Serial.print("Pressure: ");
Serial.println(data[1]);
delay(10000);
}
del
а носом ткунуть можете ? или исправить код в рабочее состояние. пока полный ноль в ардуино но вроде шагаю пока в правильном направлении
У вас массив для передачи и приема по два байта. Сделайте три, и влажность суйте и высувайте из второго элемента, а не третьего.
floatdata[2];Ну а засовываете и читаете из какого номера?
radio.read(&data, sizeof(data)); // читаем данные Serial.print("Humidity: "); Serial.println(data[3]); // выводим данные влажности Serial.print("Temperat: "); Serial.println(data[0]); // выводим данные температуры Serial.print("Pressure: "); Serial.println(data[1]); // выводим данные давления delay(1000);float data[3]; data[0] = bme.readTemperature(); //читаем данные температуры data[1] = bme.readPressure() / 100.0F; //читаем данные давления //data[3] = bme.readAltitude(SEALEVELPRESSURE_HPA)(); data[3] = bme.readHumidity(); //читаем данные влажности radio.write(&data, sizeof(data)); // отправляем данные по радиосигналу Serial.print("Humidity: "); Serial.println(data[3]); // выводим данные влажности Serial.print("Temperat: "); Serial.println(data[0]); // выводим данные температуры Serial.print("Pressure: "); Serial.println(data[1]); // выводим данные давлениятак надо из 2-го, а не третьего.
Не
а
Найди одно отличие.
А как это в код вставить? (С)
о , блин. я думал это не на ,что не влияет.
а не подскажите как вывести на экран ? я отталкиваюсь от этой статьи https://3d-diy.ru/wiki/arduino-datchiki/datchik-bme280/ но безуспешно
р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии
а не подскажите как вывести на экран ? я отталкиваюсь от этой статьи https://3d-diy.ru/wiki/arduino-datchiki/datchik-bme280/ но безуспешно
подскажем. За 100 долларов.
Если вы не поняли - вы написали в платный раздел. Ваш счет за уже оказанные услуги - 5000. Каждому. (с)
то что не в том разделе я помощи поросил , я виноват и понял ! ну а 5к и 100$ это перебор. это первые шаги
то что не в том разделе я помощи поросил , я виноват и понял ! ну а 5к и 100$ это перебор. это первые шаги
ну если первые шаги - почему с более простого не начать.