| Ваш IP: 18.207.249.15 | Online(41) - гости: 20, боты: 21 | Загрузка сервера: 0.82 ::::::::::::

Погодная станция на 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

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

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

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

  • К140УД9 (справочные данные)

    К140УД9 (справочные данные)

    К140УД9 относят к ОУ средней точности, К140УД9 это усовершенствованный вариант К140УД2, в ОУ имеется защита входа от перенапряжения, а выхода от короткого замыкания в нагрузке. Электрические параметры: Uпит. ном — 2*12,6В I пот — 8мА Ku — 35*10³ Uсм — 5мВ TKUсм — 20мкв/Сº Iвх — 350нА ΔIвх — 100нА …Подробнее...
  • Импульсный источник питания для УМЗЧ 150Вт

    Импульсный источник питания для УМЗЧ 150Вт

    При использовании ИИП в УМЗЧ иногда возникают проблемы с электромагнитной совместимостью. Предлагаемый ИИП отличается от других хорошей фильтрацией выходного напряжения и защитой от перегрузок и короткого замыкания. ОСНОВНЫЕ ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ Напряжение сети – 220В Выходное напряжение – 2*25В Максимальный ток нагрузки – 3А Ток срабатывания защиты – 3,3А Максимальная выходная …Подробнее...
  • LA4425A — УМЗЧ 5 Вт

    LA4425A — УМЗЧ 5 Вт

    LA4425A — усилитель мощности звуковой часты. Схема усилителя содержит минимальное кол-во внешних компонентов, всего три конденсатора. Выходная мощность усилителя 5 Вт. Рабочий диапазон питающего напряжения от 5 до 16 В. ИМС LA4425A имеет защиту от пернапряжения, тепловую защиту и защиту от КЗ. Микросхема выполнена в корпусе SIP5H. Основные характеристики Максимальное напряжение питания …Подробнее...
  • Кодовая маркировка емкости импортных конденсаторов

    Кодовая маркировка емкости импортных конденсаторов

    В соответствии со стандартами IEC на практике применяется четыре способа кодировки номинальной емкости. 1. Кодировка 3-мя цифрами Первые две цифры указывают на значение емкости в пикофарадах (пф), последняя — количество нулей. Когда конденсатор имеет емкость менее 10 пФ, то последняя цифра может быть «9». При емкостях меньше 1.0 пф первая …Подробнее...
  • Тестер для транзисторов

    Тестер для транзисторов

    На рисунке показана схема простого тестера для транзисторов, который может определить годность биполярных транзисторов различной структуры (p-n-p, n-p-n). На элементах DD1.1, DD1.2 и DD1.3 выполнен генератор, работающий на частоте 1 кГц. Проверка транзисторов различной структуры без переключения возможна благодаря подаче на эмиттер и коллектор испытуемого  транзистора то низкого, то высокого …Подробнее...