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
а носом ткунуть можете ? или исправить код в рабочее состояние. пока полный ноль в ардуино но вроде шагаю пока в правильном направлении
У вас массив для передачи и приема по два байта. Сделайте три, и влажность суйте и высувайте из второго элемента, а не третьего.
float
data[2];
Ну а засовываете и читаете из какого номера?
так надо из 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$ это перебор. это первые шаги
ну если первые шаги - почему с более простого не начать.