| Ваш IP: 34.234.207.100 | Online(36) - гости: 28, боты: 8 | Загрузка сервера: 1.84 ::::::::::::

Погодная станция на BME280 (Arduino)

На датчике BME280 можно сделать очень простую, но достаточно информативную и точную погодную станцию.  Этот датчик предназначен для использования в помещении, для измерения температуры воздуха на улице будет использовать простой но надежный цифровой датчик DS18B20. Датчик BME280 позволяет измерять сразу три параметра — температуру, влажность и давление.

Технические характеристики датчика BME280:

  • Напряжение питания: 3.3 В – 5 В
  • Рабочий ток: 1 мA
  • Диапазон измерения давления: 300 гПа – 1100 гПа (точность ±1.0 гПа)
  • Диапазон измерения температуры: -40 °C до +85 °C (точность ±0.5 °C)
  • Диапазон измерения влажности: 20 % до 80 % (точность ±3 %)
  • Интерфейс: I2C
  • Обратите внимание на маркировку датчика BME280, существует две маркировки BME280-3.3V и BME280-5V, поэтому для питания используйте напряжение 3,3 В или 5 В соответственно.  

BME280-3.3V

BME280-5V

(имеет на плате стабилизатор 3,3 В)

Технические характеристики датчика DS18B20:

  • Погрешность измерения не больше 0,5 С (для температур от -10С до +85С).
  • Температурный диапазон измерений  от -55 С до +125 С.
  • Напряжение питания от 3,3 В до 5 В.
  • Программируемое разрешение от 9 до 12 bit.
  • Можно подключить сразу до 127 датчиков к одной линии связи.
  • Информация передается по протоколу 1-Wire.

Так же следует отметить что датчик DS18B20 выпускается в виде модуля и в различных корпусах, корпусное исполнение не имеет внешних элементов в отличии от модуля, поэтому для нормальной работы датчика необходимо подать +5В на цифровой выход через резистор номиналом 4,7 кОм.

Информация выводится LCD дисплей 84×48 Nokia 5110.

(Подключение подсветки LCD дисплея 84×48 Nokia 5110 может отличаться от указанной на схеме, контакт LIGHT нужно соединить с контактом GND перемычкой)

Плата Arduino Nano и датчик BME280 обмениваются данными на шине I2C по линиям SDA (data — данные) и SCL (clock — синхронизация).

Плата Пин SDA Пин SCL
Arduino Uno, Nano, Pro и Pro Mini A4 A5

Цифровой выход датчика DS18B20 подключается к аналоговому входу Arduino A0.

#include <Wire.h> 
#include <SPI.h>
#include <OneWire.h>          // https://rcl-radio.ru/wp-content/uploads/2018/07/OneWire.zip
#include <DallasTemperature.h>// https://rcl-radio.ru/wp-content/uploads/2018/07/DallasTemperature.zip
#include <Adafruit_Sensor.h>  // https://github.com/adafruit/Adafruit_Sensor
#include <Adafruit_BME280.h>  // https://github.com/adafruit/Adafruit_BME280_Library
#include <PCD8544.h>          // https://rcl-radio.ru/wp-content/uploads/2019/01/pcd8544.zip
 PCD8544 lcd; // RST,CE,DC,DIN,CLK   VCC,BL,GND (3,4,5,6,7   +3.3V,200 OM +3.3V, GND)
 Adafruit_BME280 bme;
 OneWire oneWire(A0);// вход датчика 18b20
 DallasTemperature temp(&oneWire);
 static const byte gradus[] = { B00000110,B00001001,B00001001,B00000110,B00000000 };// градус
 float t1,t2,hpa,h;
 
 void setup() {
  Serial.begin(9600);                                  
 if (!bme.begin(0x76)) {Serial.println("Could not find a valid BME280!"); while (1);}
  temp.begin(); temp.setResolution(10);//10 бит   
  lcd.begin(84, 48); 
  lcd.createChar(0, gradus);
  lcd.setContrast(60);//  контрастность 0-127
 
 }
 
 void loop() {
    temp.requestTemperatures();// опрос 18b20
    t1 = temp.getTempCByIndex(0); // снятие показаний 18b20
    t2 = bme.readTemperature();  // снятие показаний температуры с bme280
    hpa = bme.readPressure() / 100.0F;                                      
    h = bme.readHumidity();                                                   
 
  lcd.setCursor(0,1);// вывод темп 18b20 на экран, первая строка
  lcd.print("Temp 1:");if(t1>=0){lcd.print(" ");}if(t1>0&&t1<10||t1<0&&t1>-10){lcd.print(" ");}lcd.print(t1,1); lcd.write(0);lcd.print("C");
  lcd.setCursor(0,2);
  lcd.print("Temp 2:");if(t2>=0){lcd.print(" ");}if(t2>0&&t2<10||t2<0&&t2>-10){lcd.print(" ");}lcd.print(t2,1); lcd.write(0);lcd.print("C");
  lcd.setCursor(0,3);
  lcd.print("P ");lcd.print(hpa*0.75,1);lcd.print(" mmHg"); // давление
  lcd.setCursor(0,4);
  lcd.print("H ");lcd.print(h,1);lcd.print(" %"); // влажность                               
 }

Как правило адрес датчика BME280 0x76, но он может отличаться, если возникнут сложности с запуском скетча, то необходимо определить верный адрес датчика при помощи I2C сканера — http://forum.rcl-radio.ru/viewtopic.php?id=64

Форум — http://forum.rcl-radio.ru/viewtopic.php?id=76

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Электронный измеритель пульса

    Для измерения частоты пульса можно собрать простой электронный прибор, который рассчитан на измерение частоты пульса от 30 до 240 импульсов в минуту с погрешностью не более 5%. Измеритель пульса питается от батареи КРОНА и потребляет во время работы не более 20мА. Принцип работы измерителя пульса основан на фиксации изменения освещенности …Подробнее...
  • Цифровой термометр

    На рисунке показана схема простого цифрового термометра. Термометр построен на трех микросхемах CA3162, CA3161 и LM35. Микросхемы CA3162, CA3161 в схеме предоставляют собой аналого цифровой (A / D) преобразователь. LM35 представляет собой преобразователь температуры. Выход LM35 весьма линейный и имеет масштабный коэффициент 10 мВ / C. Цифровой термометр Подстроечный R2 …Подробнее...
  • Тестер для проверки транзисторов и диодов

    Тестер предназначен для проверки биполярных транзисторов, так же предусмотрена проверка на исправность диодов. При проверке исправного диода будет гореть только один светодиод в зависимости от полярности, если диод пробит то гореть будут оба светодиода, если обрыв то светодиоды не будут гореть. Для определения полярности светодиоды располагаются напротив контактор XS4 XS5. …Подробнее...
  • Простое переговорное устройство

    Основным преимуществом переговорного уст-ва является то, что громкоговорители ВА1 и ВА2 являются одновременно микрофонам и громкоговорителем. Переключение режимов ПРИЕМ-ПЕРЕДАЧА происходит при помощи переключателя S1. Уст-во состоит из предварительного усилителя на VT1 и усилителя мощности собранного на ИМС К174УН7. Правильно собранное уст-во начинает работать сразу, при необходимости можно отрегулировать чувствительность с …Подробнее...
  • Широкополосной малошумящий усилитель диапазона 20…600МГц

    На рис.1 показана принципиальная схема широкополосного малошумящего усилителя, в котором изменена традиционная последовательность включения корректирующих цепей и транзисторов. На рис.2 показан чертеж печатной платы, на рис.3 – расположение элементов, а на рис.4 – фотография внешнего вида усилителя. Технические характеристики усилителя Полоса рабочих частот………………………………20…600 МГц Неравномерность амплитудно-частотной характеристики………………………………………………..±1 дБ Коэффициент усиления …Подробнее...