Метеостанция на ардуино с дисплеем 1602: Метеостанция (Arduino pro mini, BME280, LCD1602) / Хабр

Содержание

LCD Keypad Shield для Arduino

Популярная плата расширения для Arduino, с не менее популярным текстовым экраном Wh2602A и несколькими кнопками.

Характеристики:

  • Текстовый LCD экран Wh2602A с возможностью регулировки контрастности и яркости подсветки.
  • Резистивная клавиатура из пяти кнопок и кнопка Reset.
  • Дополнительные «штырьки» для подключение периферии, разъем ICSP.

Подключение:

Совместим со всеми arduino совместимыми платами,которые имеют стандартное для arduino подключение шилдов, за одним небольшим исключением, разъем ICSP на шилде не дублирует ICSP платы, а соединен с 11, 12 и 13 цифровыми выходами, работать он будет с платами серии UNO.

Резистивная клавиатура подключена к аналоговому входу А0, клавиатура представляет собой делитель напряжения с группой резисторов, сопротивление делителя и напряжение на входе А0 зависит от нажатой кнопки. Более подробно на схеме ниже.

Регулировка яркости подсветки экрана осуществляется ШИМ сигналом с 10 цифрового выхода ардуино, также можно полностью выключить подсветку подав на 10 выход логическую единицу.

Все задействованные выходы, включая выходы LCD экрана указаны в таблице ниже.

ПинФункция
A0Резистивная клавиатура, кнопки select, up, right, down and left
D4LCD 1602 — DB4
D5LCD 1602 — DB5
D6LCD 1602 — DB6
D7LCD 1602 — DB7
D8LCD 1602 — RS
D9LCD 1602 — Enable
D10Управление подсветкой LCD 1602

Основные элементы шилда:

Дополнительные штырьки для подключения периферии, обычно не распаяны.

 


Софт:

Пример для работы с шилдом от производителя:

Код примера

//Sample using LiquidCrystal library
#include <
LiquidCrystal
.h> /*******************************************************This program will test the LCD panel and the buttonsMark Bramwell, July 2010********************************************************/ // select the pins used on the LCD panel LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // define some values used by the panel and buttons int lcd_key     = 0; int adc_key_in  = 0; #define btnRIGHT  0 #define btnUP     1 #define btnDOWN   2 #define btnLEFT   3 #define btnSELECT 4 #define btnNONE   5 // read the buttons int read_LCD_buttons() { adc_key_in = analogRead(0);      // read the value from the sensor // my buttons when read are centered at these valies: 0, 144, 329, 504, 741 // we add approx 50 to those values and check to see if we are close if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result // For V1.
1 us this threshold if (adc_key_in < 50)   return btnRIGHT;   if (adc_key_in < 250)  return btnUP; if (adc_key_in < 450)  return btnDOWN; if (adc_key_in < 650)  return btnLEFT; if (adc_key_in < 850)  return btnSELECT;   // For V1.0 comment the other threshold and use the one below: /* if (adc_key_in < 50)   return btnRIGHT;   if (adc_key_in < 195)  return btnUP; if (adc_key_in < 380)  return btnDOWN; if (adc_key_in < 555)  return btnLEFT; if (adc_key_in < 790)  return btnSELECT;   */ return btnNONE;  // when all others fail, return this... } void setup() { lcd.begin(16, 2);              // start the library lcd.setCursor(0,0); lcd.print("Push the buttons"); // print a simple message } void loop() { lcd.setCursor(9,1);            // move cursor to second line "1" and 9 spaces over lcd.print(millis()/1000);      // display seconds elapsed since power-up lcd.
setCursor(0,1);            // move to the begining of the second line lcd_key = read_LCD_buttons();  // read the buttons switch (lcd_key)               // depending on which button was pushed, we perform an action {   case btnRIGHT:     {     lcd.print("RIGHT ");     break;     }   case btnLEFT:     {     lcd.print("LEFT   ");     break;     }   case btnUP:     {     lcd.print("UP    ");     break;     }   case btnDOWN:     {     lcd.print("DOWN  ");     break;     }   case btnSELECT:     {     lcd.print("SELECT");     break;     }     case btnNONE:     {     lcd.print("NONE  ");     break;     } } }

Купить:

на али



Запись опубликована автором admin в рубрике Обзоры с метками LCD, lcd keypad shield.

Решил сделать метеостацию на Ардуино в программе XOD, выкладываю инструкцию: шаг за шагом | Электрик по-жизни

Привет, друзья!

Если вы думаете, что я перестал писать статьи о программировании Arduino, то сильно ошиблись.

Я решил продолжить серию статей о программировании микроконтроллеров, и сегодня статья из цикла «Программируем в XOD».

Все дело в том, что появилось больше времени для написания статей и появилась необходимость сделать небольшой девайс, о назначении которого я пока ничего не скажу. Подписывайтесь на мой канал и вы сами в скором времени узнаете.

Как я же сказал, сегодня программируем в программе XOD. Скачайте, установите, если хотите попробовать то, о чем пойдет речь в статье.

Сегодня речь пойдет о измерение температуры и влажности с помощью Arduino и датчика #DHT11.

Скриншот с сайта https://aliexpress.ru/ Распиновка датчика DHT 11 на плате CNT 5

Скриншот с сайта https://aliexpress.ru/

Будьте внимательны!
Распиновка датчиков DHT11 в зависимости от платы на которой он распаен, разная, смотри фото в галерее.

Вывод данных с датчика будет осуществляться на дисплей LCD 1602 по I2C соединению, такое соединение дает возможность дает возможность освободить до 6 пинов на микроконтроллере, которые как вы знаете на #Arduino лишними не бывают.

Для реализации данного проекта нам потребуется:

  • Плита Arduino Uno;
  • Дисплей LCD 1602 по I2C;
  • Датчика измерения температуры и влажности DHT11;
  • Макетную плату;
  • Провода для соединения.

Схема соединения компонентов будет следующая:

Измерение температуры и влажности с помощью Arduino и датчика DHT11

Измерение температуры и влажности с помощью Arduino и датчика DHT11

Листинг программы #XOD будет выглядеть следующим образом.

Листинг программы измерения температуры и влажности с помощью датчика DHT11

Листинг программы измерения температуры и влажности с помощью датчика DHT11

Если вы не разу не программировали в XOD, советую прочитать статьи здесь, если программа вам уже знакома, объясняю значение расположенных в ней блоков, которые в XODe называются #ноды

  • Датчик DHT 11 в программе представлен нодой dht11-hygrometer, именно с помощью этой ноды ведется опрос датчика подключенного к цифровому пину 7 платы Arduino Uno.
  • Чтобы установить ноду в рабочее поле можно найти нужную ноду в столбце Project Browser или двойным кликом на рабочем поле открыть строку поиск и вписать в строку нужную ноду.
Двойной щелчек по рабочему полю открывает строку поискав которую можно написать название ноды

Двойной щелчек по рабочему полю открывает строку поискав которую можно написать название ноды

  • Нода clock задает интервал опроса датчика с периодичностью в 3 секунды.
  • Сигнал с ноды dht11-hygrometer с числового канала Тс передается сразу на ноду concat для передачи данных в первую строку дисплея LCD 1602 #I2C представленного в листинге нодой text-lcd-i2c-16×2.
  • Сигнал с числового канала RH ноды dht11-hygrometer предается на ноду to-percent для преобразования в проценты и передачи на ноду concat, а с нее опять в первую строчку дисплея.
  • Таким образом данные с датчика DHT11 выводятся на дисплей LCD 1602.
  • Ноду concat с помощью специальной перетяжки можно изменить в размерах для добавления необходимых данных.
Как увеличивать ноду concat и вносить в нее дополнительные данные

Как увеличивать ноду concat и вносить в нее дополнительные данные

Дополнительные данные написания можно вносить в инспекторе нода concat (дисплей, поддерживает только написание латиницей).

Вот такой получился проект для измерения температуры и влажности.

Напрашивается вопрос, почему я использовал только верхнюю строчку дисплея.

Ответ прост, вторая строчка понадобится для в дальнейшем, так что подписывайтесь, продолжение следует …

Проект «Метеостанция» на макетной плате

Проект «Метеостанция» на макетной плате

Скачать файл проекта «Метеостанция» можно здесь

Купить датчик DHT11, о так же другие компоненты можете на Joom.

Подписывайтесь на канал и узнавайте первыми о новых опубликованных материалах.

ЕСЛИ СЧИТАЕТЕ СТАТЬЮ ПОЛЕЗНОЙ,

НЕ ЛЕНИТЕСЬ СТАВИТЬ ЛАЙКИ И ДЕЛИТЬСЯ С ДРУЗЬЯМИ

Миниатюрный дисплей 1602

Это обзор снова для самоделкиных. Сегодня я расскажу о миниатюрных LCD дисплеях. Недорогие экранчики на микросхеме Hitachi HD44780 (и их клонах) в 90-е годы практически завоевали рынок недорогих устройств отображения информации.
Их ставили в принтеры, факсы, копиры, различное сетевое оборудование и в бытовую технику. Позднее эти дисплеи стали вытеснятся устройствами с последовательным интерфейсом I2C и SPI, а также цветными графическими дисплеями, но до сих пор они пользуются большой популярностью среди радиолюбителей благодаря низкой цене.
Дешевые модули «для Ардуино», прадающиеся во всех магазинах, имеют довольно большие габариты.
При размере области цифр 58 x 10 мм габариты платы такого модуля 80 x 36 мм, при толщине в 1 см. При встраивании в миниатюрные корпуса такие модули не всегда удобны. Как то наткнулся на интересные индикаторы от Microtips Technology — MTC-S16208XFYHSGY. О них и будет этот обзор

Нашел такие модули на ТАОБАО по $1.3. Стоимость доставки варьируется от общего объема посылки. У меня стоимость одного дисплея с доставкой составила около $2.5.

На Алиэкспресс нашел немного похожие по размеру индикаторы. Но цена, ИМХО, великовата.

Компания Microtips Technology Inc производит целую линейку миниатюрных текстовых дисплеев

Заказанные мной MTC-S16208XFYHSGY — монохромные дисплеи с желто-зеленой подсветкой экрана 16 символов на 2 строки очень компактного размера.



При размере цифр 47 x 10 мм габаритный размер 59 x 29 мм, а толщина всего 5 мм



В сравнении с «обычными» 1602 эти дисплеи очень маленькие


Напрягает только 15-контактный разъем с шагом 1.27мм, довольно сложный для макетирования. К счастью, как раз для таких случаев прикуплена «гребенка» с шагом 1.27мм

Для тестирования экранчика подпаиваюсь проводочками к «гребенке» и вставляю ее в разъем дисплея


Контакты как и у «взрослого 1602»: 8 разрядная шина данных (достаточно использовать только 4 старших разряда), три управляющих сигнала, питания, земля и аналоговый вход контрастности дисплея. Вместо двух выводов подсветки один контакт, который при подтягивании к земле включает подсветку. К микроконтроллерам данный дисплей подключается как и все, использующие Hitachi HD44780.

Схему подключение и описание работы можно взять с сайта arduino.cc

Библиотеку для Ардуино Adafruit_LiquidCrystal на github

После подключения и выставления пинов Ардуино в библиотеке получаем работающий такой вот работающий экранчик.



Переменным резистором выставляется нужная контрастность

Подтягиванием первой ноги к земле включаем подсветку. Никто не мешает подключить этот вход к любому цифровому выход микроконтроллера и включать/отключать подсветку из программы.

Подсветка желто-зеленая и довольно равномерная, хотя и не идеальная, но гораздо лучше чем во многих дешевых дисплеях.

Потребление дисплея с отключенной подсветкой — 1 мА

С включенной — порядка 22 мА

Очень хорошие показатели для использования в приборах на батарейках, где подсветку можно включать/отключать.

Проверка встроенных шрифтов чуда не принесла — европейские и кириллические шрифты данное устройство не поддерживает, как и большинство 1602 дисплеев, продающихся в Китае




Расширенная таблица символов такая

Загрузить свой знакогенератор в HD44780 полностью нельзя. Но есть восемь пользовательских символов с кодами 0-7, которые помогают организовать интерфейс в большинстве случаев

Код для загрузки своих символов можно взять у меня в блоге

Данный дисплей можно подключить по последовательному интерфейсу через микросхему-расширитель портов. К сожалению, обычная платка на PCF8574 не подойдет по контактам. Там разведена стандартная «гребенка» на 16 контактов 2.54мм. Но всегда можно сделать свою плату

Из обрезков тектолита быстро утюгом изготовил платку-переходник

Даже без расширителя портов по шести выводам данный дисплей можно напрямую подключить к тому же ESP8266. Я задействовал для подключения GPIO4,5,12,13,14,16. При этом, остается еще 3 свободных GPIO, аналоговый вход и последовательный интерфейс — более чем достаточно для подключения различных реле и датчиков.

Подведем итог

Достоинства дисплея
  • Весьма скромная стоимость
  • Компактный размер
  • Равномерная подсветка
  • Удобное управление подсветкой одним выводом
Недостатки неудобства
  • Разъемы 1.27мм неудобные для макетирования
  • Отсутствие последовательного интерфейса
Конкретное применение данный дисплейчик очень скоро найдет в переносной метеостанции, которую планирую брать с собой в походы.
Об этом я напишу на страницах своего блога

Традиции, традиции …

«Посмотрим что там за дисплейчик …»

«Ну что такой маленький то?»

«Давай лучше эти VFD обозревать!»

Но VFD — это уже совсем другая история

Полезные ссылки

Подключение датчиков DHT11 и DHT22 к Arduino

/*

  *********************************

  * Интернет-магазин Arduinka.Pro *

  *********************************

Вывод значений влажности и температуры

на LCD 1602 I2C с датчика DHT11 или DHT22

*/

// подключение библиотек

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include «DHT.h»

 

// назначение PIN и выбор типа датчика DHT

#define DHTPIN 2 //

// раскомментировать нужную строку

#define DHTTYPE DHT11 // DHT 11

//#define DHTTYPE DHT22 // DHT 22 (AM2302)

//#define DHTTYPE DHT21 // DHT 21 (AM2301)

 

DHT dht(DHTPIN, DHTTYPE);   // инициализация сенсора DHT

LiquidCrystal_I2C lcd(0x27,16,2);  // инициализация дисплея

 

byte symb_grad[8] =      // кодирование символа градуса

{

B00111,

B00101,

B00111,

B00000,

B00000,

B00000,

B00000,

};

 

void setup()

{

lcd. init();  // инициализация lcd

lcd.createChar(1, symb_grad);  // регистрируем собственный символ с кодом 1

Serial.begin(9600);   // запуск передачи данных

dht.begin();  //  запуск датчика DHT

}

 

void loop()

{

// добавляем паузы в 2 секунды между измерениями

delay(2000);

 

float h = dht.readHumidity();   // считывание влажности

float t = dht.readTemperature();   // считывание температуры

 

// Выводим показания влажности и температуры

lcd.clear();  // очистка экрана

lcd.setCursor(0, 0);  //  установка курсора в начало 1 строки

lcd.print(«Humidity:      %»);  // вывод текста

lcd.setCursor(10, 0);  // установка курсора на 10 позицию

lcd.print(h, 1);  // вывод на экран значения влажности

lcd.setCursor(0, 1);  // установка курсора в начало 2 строки

lcd.print(«Temperat:      C»);  // вывод текста

lcd.setCursor(14, 1);  // установка курсора на 14 позицию

lcd. print(«\1»);   // вывод символа градуса

lcd.setCursor(10, 1);  // установка курсора на 10 позицию

lcd.print(t,1);  // вывод значения температуры

}

Как сделать простую метеостанцию ​​

Видео

Как сделать простую метеостанцию ​​

Здравствуйте, ребята, в этом видео я покажу вам, как сделать простую метеостанцию ​​для измерения температуры и влажности с помощью датчика DHT11

Расходные материалы:

Список деталей : -Arduino UNO -16 × 2 ЖК-МОДУЛЬ-Соединительный кабель -DHT 11 —

Шаг 1: О датчике DHT11

DHT11 — это датчик влажности и температуры. Его можно использовать как датчик влажности, а также как датчик температуры. На рынке вы можете найти датчик dht11 двух типов.Один с 4 контактами, а другой с 3 контактами. В 3-х контактный датчик dht11 уже добавлен резистор 10 кОм внутри модуля. Рабочее напряжение этого модуля составляет 3,3 В. Выход этого датчика цифровой.

Шаг 1: О DHT11 SensorDHT11 — это датчик влажности и температуры. Его можно использовать как датчик влажности, а также как датчик температуры. На рынке вы можете найти датчик dht11 двух типов. Один с 4 контактами, а другой с 3 контактами. В 3-х контактный датчик dht11 уже добавлен резистор 10 кОм внутри модуля.Рабочее напряжение этого модуля составляет 3,3 В. Выход этого датчика цифровой.

Шаг 2: Подключение DHT11 к Arduino

Подключите DHT 11 к Arduino UNO

DHT11 ARDUINO UNO

GND TO GND

VCC TO 3.3V

OUTPIN TO D11

Connecting Step

Добавить TipAsk DHT11 с Arduino Подключите DHT 11 к Arduino UNO DHT11 ARDUINO UNOGND TO GNDVCC TO 3.3VOUTPIN TO D11Add TipAsk QuestionCommentDownload

Шаг 3: I2C LCD Display

Это ЖК-дисплей 16×2 с интерфейсом I2C.Он может отображать символы 16×2 в 2 строки, белые символы на синем фоне.

Обычно проекты ЖК-дисплеев Arduino быстро исчерпывают ресурсы контактов, особенно с Arduino Uno. А еще очень сложно с пайкой и подключением проводов. Этот ЖК-экран I2C 16×2 Arduino использует интерфейс связи I2C. Это означает, что для ЖК-дисплея требуется всего 4 контакта: VCC, GND, SDA, SCL. Это сэкономит минимум 4 цифровых / аналоговых контакта на Arduino. Все разъемы стандартные Хх3.54 (макетного типа). Вы можете подключиться напрямую с помощью перемычки.

Шаг 3: ЖК-дисплей I2C Это ЖК-экран 16×2 с интерфейсом I2C. Он может отображать символы 16×2 в 2 строках, белые символы на синем фоне. Обычно проекты ЖК-дисплеев Arduino легко исчерпывают ресурсы контактов, особенно с Arduino Uno. А еще очень сложно с пайкой и подключением проводов. Этот ЖК-экран I2C 16×2 Arduino использует интерфейс связи I2C. Это означает, что для ЖК-дисплея требуется всего 4 контакта: VCC, GND, SDA, SCL.Это сэкономит минимум 4 цифровых / аналоговых контакта на Arduino. Все разъемы стандартные Xh3.54 (макетного типа). Вы можете подключиться напрямую с помощью перемычки.

Шаг 4: Подключение ЖК-дисплея I2C к Arduino

ЖК-дисплей I2C Arduino

GND <---> GND

VCC <---> 5V

SDA <---> A4

SCL <---> A5

Шаг 4: Подключение ЖК-дисплея I2C к ArduinoI2C LCD ArduinoGND <---> GNDVCC <---> 5VSDA <---> A4SCL <---> A5

Шаг 5: Код

Код

Шаг 6 : Завершить создание и работу

Видео

Мне нравится, делиться и подписываться Мой канал

Добавить Подсказка Задать вопрос КомментарийЗагрузить

Шаг 6: Завершить создание и работать с видео Как, поделиться и подписаться на мой канал

Шаг 7: Спонсор NEXTPCB

Если вы этого не сделаете Не делайте свои печатные платы самостоятельно, где вы их делаете? Лично у меня нет ни места, ни смелости (ни навыков), чтобы делать их самому. Что касается SF, я обращаюсь к Util-Pocket, потому что считаю, что качество отличное по цене. Что касается DF (с металлическими отверстиями), я пробовал несколько компаний, все из которых делают хорошую работу, но стоит дорого. На этот раз я обратился к себе здесь. Мне нужно было сделать 3 схемы общей площадью 49 см2. Когда я увидел, что минимальное количество для заказа составляет 5 печатных плат, я продолжил заказ из любопытства, просто чтобы увидеть предложение. И когда я увидел запрашиваемую цену, Я разместил заказ.NEXTPCB

Добавить TipAsk QuestionCommentDownload

e Вы их делаете? Лично у меня нет ни места, ни смелости (ни навыков), чтобы сделать их самому.Что касается SF, я обращаюсь к Util-Pocket, потому что считаю, что качество отличное по цене. Что касается DF (с металлическими отверстиями), я пробовал несколько компаний, все из которых делают хорошую работу, но стоит дорого. На этот раз я обратился к себе здесь. Мне нужно было сделать 3 схемы общей площадью 49 см2. Когда я увидел, что минимальное количество для заказа составляет 5 печатных плат, я продолжил заказ из любопытства, просто чтобы увидеть предложение. И когда я увидел запрашиваемую цену, Я разместил заказ. Влажность на ЖК-дисплее

*******

Посетите https: // proteshea.com / display-temp-and-влажность-on-lcd-with-arduino-uno / для получения полного списка материалов, необходимых для этого проекта.

*******

Введение

В этом проекте мы собираемся подключить датчик температуры и влажности DHT11 и отобразить данные на ЖК-дисплее 16×2. Если вы не читали Project 9 для Arduino Uno Rev3, сначала прочтите его, потому что в нем рассказывается, как взаимодействовать с ЖК-дисплеем 16×2 символов в 4-битном режиме. Затем мы заменим ЖК-дисплей 16×2 ЖК-дисплеем 20×4, чтобы отображать влажность и температуру в градусах Цельсия, Фаренгейта и Кельвина.Датчик DHT11 можно использовать для метеостанции, метеозонда, дрона или теплицы.

16×2 символьный ЖК-дисплей

В нашем предыдущем проекте мы показали вам, как подключить ЖК-дисплей 16×2 к Uno. У вас должны быть контакты 4, 6 и 11-14 ЖК-дисплея, подключенные к контактам 2, 3 и 4-7 Uno соответственно. Вы можете подключить ЖК-дисплей с помощью беспаечной макетной платы или модуля Modulus Canister. Ниже показано изображение, подключенное к модулю.

Символьный ЖК-дисплей 20×4

ЖК-дисплей 20×4 добавляет две дополнительных строки и четыре дополнительных столбца на строку по сравнению с ЖК-дисплеем 16×2.Подобно 16×2, ЖК-дисплей 20×4 использует контроллер Hitachi, поэтому команды и интерфейсы такие же. Он также имеет тот же 16-контактный разъем, что позволяет отключать ЖК-дисплей 16×2 и подключать 20×4 без изменения проводки. Единственное, что нам нужно изменить, — это одна строка кода, lcd.begin (20, 4) , которая определяет столбцы (первый аргумент) и строки (второй аргумент) ЖК-дисплея. Изображение ЖК-дисплея 20×4 показано ниже.

Датчик температуры и влажности DHT11

Существуют различные типы датчиков DHT, такие как DHT11, DHT21, DHT22, DHT33 и DHT44.Все они измеряют как температуру, так и влажность, но разница в основном заключается в их точности и частоте дискретизации. Например, мы показываем параллельное сравнение в таблице ниже двух самых популярных датчиков DHT, DHT11 и DHT22. DHT22 имеет лучшую точность и диапазон, но у него более низкая частота дискретизации, он больше по размеру и вдвое дороже DHT11.

Для измерения температуры и влажности используются термистор и емкостной датчик влажности соответственно. Сопротивление термистора изменяется при изменении температуры — с повышением температуры сопротивление уменьшается.Для датчика влажности сопротивление между двумя электродами изменяется с изменением влажности. Оба этих изменения сопротивления измеряются интегральной схемой датчика и отправляются на хост через однопроводный интерфейс. Каждая выборка состоит из 40-битного пакета данных.

Мы используем 3-контактный датчик DHT11, как показано на изображении ниже. Контакты — это «+», «OUT» и «-». Датчик может питаться как от +5 В постоянного тока, так и от +3,3 В постоянного тока — мы будем подавать на него + 5 В постоянного тока.

DHT11 Подключение

Мы устанавливаем датчик DHT11 на 2.Секция Modulus с шагом 54 мм с угловым (R / A) охватывающим заголовком, как показано на изображении ниже. Припаяйте 4-контактную розетку R / A к краю платы. Затем припаяйте 4-контактный штекер рядом с гнездом. После того, как вы припаяли разъемы, переверните плату и сделайте перемычку между соседними контактами разъемов.

Оберните проводом «+» контакт к + 5Vdc, который является любым из контактов в столбце 20 на разветвлении 4×26 контактов. Затем обмотайте вывод «-» на вектор GND чуть ниже разветвления 4×26 контактов.Используйте 12-дюймовую перемычку F / M для подключения вывода «OUT» к контакту 8 Uno. Если вы используете макетную плату, схема подключения показана ниже. область прототипирования FuelCan, продолжайте и делайте это. Если вы используете макетную плату вместо модуля, поместите макет в нижний отсек для хранения, чтобы ограничить длину перемычек. Вам потребуется подать + 5 В и GND к шинам питания и заземления на макетной плате, используя прилагаемый банановый разъем для зажима кабелей тестовых выводов.Для крепления зажимов тестовых выводов на стороне макетной платы вам потребуются два штыря штекера. Подключите сторону типа A кабеля USB к разъему USB1, а сторону типа B — к разъему Uno. Включите FuelCan с помощью адаптера питания переменного / постоянного тока.

Программное обеспечение

После того, как подключение завершено и FuelCan включен, мы можем загрузить эскиз в Uno. Первый набросок используется с ЖК-дисплеем 16×2. Второй эскиз используется с ЖК-дисплеем 20×4. Сенсор DHT11 производит выборку каждые две секунды, поскольку более быстрое измерение вызывает ошибки.

Вам понадобится библиотека DHT для использования функций DHT в скетче, который доступен на веб-сайте Arduino .

Метеостанция NodeMCU на Arduino IDE — Робо Индия || Учебники || Изучите Arduino |

Этот учебник по Robo India предназначен для создания онлайн-метеостанции на NodeMCU с помощью Arduino IDE.

Подробное руководство
1. Введение:

В этом руководстве объясняется, как создать онлайн-метеостанцию ​​с помощью модуля Wi-Fi ESP8266.Это автономная метеостанция, которая собирает обновления погоды с openweathermap.org и отображает полученную информацию на ЖК-дисплее I2C 16X2.

Это руководство предназначено для NodeMCU в среде Arduino IDE. Обратите внимание, что это же руководство можно выполнить и на LUA.

1,2 Требуемое оборудование
S. No. Артикул Кол-во
1 NodeMCU 1
2 Макет 1
3 Рюкзак i2c с ЖК-дисплеем. 1
4 ЖК-дисплей 16 × 2 с внутренней головкой 1
5 Перемычка между мужчинами и женщинами 4
2. Схема здания 2.

Выполните подключение, как указано выше

S.NO. NodeMCU I2C LCD
1. Vin VCC
2. GND GND
3. D2 SDA
4. D1 SCL
Схема 9013 Схема цепи:
3. Получение ключа API

1. Перейдите на http://openweathermap.org/ и создайте учетную запись, если у вас ее нет.

2. Войдите в свою учетную запись. Вы найдете API Key на вкладке HOME> SETUP.

3. Скопируйте и вставьте этот ключ в отдельный файл блокнота, который понадобится позже.

4. Получение кода города из OpenWeather

Найдите свой город в поле поиска на openwheather.org. Нажмите на свой город в результатах поиска, и вот код вашего города, как показано на следующем изображении.

Другой способ получить код города —

http://bulk.openweathermap.org/sample/city.list.json.gz

Загрузите список кодов городов из файла выше.После скачивания распакуйте файл и откройте его в Блокноте или WordPad и найдите код своего города.

5. Программирование:

После того, как часть схемы готова, нужно запрограммировать NodeMCU. Вот код для запуска этой схемы на NodeMCU.

Вы можете скачать этот код (Arduino Sketch) отсюда.

 // Обучающие программы Robo India
// Аппаратное обеспечение: NodeMCU
// простой код для чтения информации с openweathermap. org

# включить 
#include < LiquidCrystal_I2C  .h>
#include 
#include 



const char * ssid = "Имя вашей сети"; // SSID локальной сети
const char * password = "Ваш пароль"; // Пароль в сети
Строка APIKEY = "Ключ API";
Строка CityID = "CityID"; // Идентификатор вашего города


Клиент WiFiClient;
char servername [] = "api.openweathermap.org"; // удаленный сервер, к которому мы будем подключаться
Строковый результат;

int counter = 60;

Строка weatherDescription = "";
Строка weatherLocation = "";
Строка Country;
температура поплавка;
поплавок Влажность;
давление поплавка;

  LiquidCrystal_I2C  дисплей (0x3F, 16, 2); // Адрес вашего рюкзака i2c LCD должен быть обновлен.void setup () {
  Серийный . Начало (115200);
 int cursorPosition = 0;
 lcd.begin (16, 2);
 lcd.init ();
 lcd.backlight ();
 lcd.print («Подключение»);
  Серийный номер  .println («Подключение»);
  WiFi . Начать (ssid, пароль);
 
 пока ( WiFi  .status ()! = WL_CONNECTED)
 {
 задержка (500);
 lcd. setCursor (cursorPosition, 2);
 lcd.print (".");
 cursorPosition ++;
 }
 lcd.clear ();
 lcd.print («Подключено!»);
  Серийный .println ("Подключено");
 задержка (1000);
}

void loop () {
 if (counter == 60) // Получаем новые данные каждые 10 минут
 {
 счетчик = 0;
 displayGettingData ();
 задержка (1000);
 getWeatherData ();
 }еще
 {
 счетчик ++;
 displayWeather (weatherLocation, weatherDescription);
 задержка (5000);
 displayConditions (температура, влажность, давление);
 задержка (5000);
 }
}

void getWeatherData () // клиентская функция для отправки / получения данных GET-запроса.{
 если (client.connect (имя сервера, 80))
 {// запускает соединение с клиентом, проверяет соединение
 client.println ("GET /data/2.5/weather?id="+CityID+"&units=metric&APPID="+APIKEY);
 client.println ("Хост: api.openweathermap.org");
 client.println («Пользовательский агент: ArduinoWiFi / 1.1»);
 client.println ("Соединение: закрыть");
 client.println ();
 }
 еще {
  Serial  .println («соединение не удалось»); // сообщение об ошибке, если клиент не подключается
  Серийный . println ();
 }

 в то время как (client.connected () &&! client.available ())
 задержка (1); // ждем данных
 в то время как (client.connected () || client.available ())
 {// подключено или данные доступны
 char c = client.read (); // получает байт из буфера Ethernet
 результат = результат + c;
 }

client.stop (); // останавливаем клиента
result.replace ('[', '');
результат.заменять(']', ' ');
  Serial  .println (результат);
char jsonArray [результат.length () + 1];
result.toCharArray (jsonArray, sizeof (jsonArray));
jsonArray [result.length () + 1] = '\ 0';
StaticJsonBuffer <1024> json_buf;
JsonObject & root = json_buf.parseObject (jsonArray);

если (! root.success ())
 {
  Серийный  .println ("сбой parseObject ()");
 }

Расположение строки = корень ["имя"];
Строка country = root ["sys"] ["country"];
температура с плавающей точкой = корень ["основной"] ["темп"];
float влажность = корень ["основная"] ["влажность"];
Строка weather = root ["погода"] ["основная"];
Строка description = root ["погода"] ["описание"];
давление с плавающей запятой = корень ["основной"] ["давление"];
weatherDescription = описание;
weatherLocation = местоположение;
Country = страна;
Температура = температура;
Влажность = влажность;
Давление = давление;

}

void displayWeather (расположение строки, описание строки)
{
 ЖКЧисто();
 lcd. setCursor (0,0);
 lcd.print (расположение);
 lcd.print (",");
 lcd.print (Страна);
 lcd.setCursor (0,1);
 lcd.print (описание);
}

Пустой дисплей Условия (температура поплавка, влажность поплавка, давление поплавка)
{
 lcd.clear (); // Температура печати
 lcd.print ("Т:");
 lcd.print (Температура, 1);
 lcd.print ((char) 223);
 lcd.print ("C");
 
 lcd.print ("H:"); // Печать влажности
 lcd.print (Влажность, 0);
 ЖКРаспечатать(" %");
 
 lcd.setCursor (0,1); // Давление печати
 lcd.print ("P:");
 lcd.print (Давление, 1);
 lcd.print ("гПа");
}

void displayGettingData ()
{
 lcd.clear ();
 lcd.print («Получение данных»);
}



 
6. Выход

Вывод следующего кода будет отображать температуру, влажность и давление (в выбранном городе) на ЖК-дисплее I2C 16X2, а также на последовательном мониторе.

Если у вас есть какие-либо вопросы, напишите нам по адресу support @ roboindia.ком

Благодарности и приветы
Команда разработки контента
Robo India
https://roboindia. com

Проект удаленной метеостанции 433 МГц — Первый этап — Лаборатория Volthaus Electronics

Завершена первая фаза проекта удаленной метеостанции Volthaus Labs 433 МГц. В данный момент на приемник (приемник) отправляются данные о температуре и влажности. На ЖК-дисплее 1602 отображаются данные о температуре в градусах Фаренгейта и Цельсия.Пока вы читаете это, я перешел ко второй фазе, которая включает добавление BMP180 к TX (передатчику) и отображение данных внутри лаборатории на ЖК-дисплее приемника 1602.

На дисплее приемника поочередно вращаются три экрана.

— Первый экран —

— Экран Два —

— Экран Три —

На первом экране отображается имя проекта. На втором экране отображается температура в градусах Цельсия с влажностью, а на третьем экране снова отображается температура в градусах Фаренгейта и влажность.У меня он работает, но где-то есть ошибки, мешающие отображению правильных данных. Все это будет рассмотрено во втором туториале. Создание этой системы было полезным опытом. Цель состоит в том, чтобы иметь массив удаленных датчиков на солнечной энергии, который передает данные, включая температуру, влажность, скорость и направление ветра, атмосферное давление, высоту и индикатор дождя. Вместо использования Arduino я использую ATMEL ATMEGA328P-PU как на моем передатчике, так и на моем приемнике. Использование библиотеки малой мощности Rocket Scream является частью плана.Петля собирает данные с датчиков, передает их по радио, а затем снова переходит в спящий режим. Но неиспользуемые контакты на Atmega 328 необходимо заземлить с помощью резистора. Я не делал этого на текущем TX, поэтому солнечная панель не держит 18650 заряженной более нескольких дней. Другими словами, он работает хорошо, но у меня проблемы с питанием. Так что я поделюсь с вами своим прогрессом в этом вопросе.

Единственными изменениями приемника, запланированными на будущее, будут обновления кода.

Я нашел эти онлайн-статьи очень полезными при разработке этого проекта.

Мини-метеостанция от indigod0g

ПОГОДНАЯ СТАНЦИЯ ARDUINO НА СОЛНЕЧНОМ ЭЛЕКТРОПИТАНИИ, автор: deba168


Самый лучший из них принадлежит молодому человеку по имени Влад, который живет в Канаде. Было бы намного проще просто использовать его систему, но я действительно хочу разработать свою собственную и узнать как можно больше в процессе. Вот ссылка на хорошо документированную систему Влада.

http://denialmedia.ca/weather-station/


Первое испытание схемы передатчика на солнечной энергии 433 МГц.Используя Arduino Uno.

Начало приемника на базе Atmega 328. Потенциометр 10К еще не добавлен. Как только это произойдет, можно будет управлять контрастностью ЖК-дисплея 1602.

Панель, обращенная на юг, получает много солнечного света

Это дело временное. Устанавливается в тенистом сухом месте.

Приемник 433 МГц обнаружен.

Если вы заинтересованы в создании версии этого проекта для себя, вам потребуется:
  • Два баребона Arduino Unos (покупка) или два ATMEL ATMEGA328P-PU (покупка).
  • Пара ВЧ передатчик-приемник 433 МГц (купить)
  • Один датчик температуры / влажности DHT11 (купить) или DHT22 (купить)
  • Один повышающий блок питания 0,9–5–5 В постоянного тока (купить)
  • Модуль зарядки Li-Ion аккумулятора (купить)
  • 1602 LCD дисплей (купить)
  • Солнечная панель — 1.6w 5.5v 266ma (Amazon)

Код Arduino для передатчика и приемника проекта можно скачать ЗДЕСЬ

Метеостанция в сборе:

Сторона передатчика:

Подключение DHT11
При использовании модуля DHT11 нет необходимости добавлять резистор между выводами данных и напряжения на DHT11, как это требуется при использовании голого датчика.

Connect:
— вывод VCC на выходе 5V Arduino или, если вы используете базовые устройства Atmega328, просто подключитесь к источнику 5VDC.

— Отрицательный вывод / заземление к GND Arduino или точке заземления вашего проекта.

— Вывод DATA на цифровой вывод 4 Arduino / Atmega328

Подключение преобразователя RF433

Подключение:

— вывод VCC на выходе 5 В Arduino или, если вы используете базовые устройства Atmega328, просто подключитесь к источнику 5 В постоянного тока.

— Контакт GND к GND Arduino или точке заземления вашего проекта.

— Вывод DATA на цифровой вывод 12 Arduino / Atmega328

Сторона приемника:

Подключение приемника RF433

Подключение:

— вывод VCC на выходе 5 В Arduino или, если вы используете базовые устройства, Atmega328, просто подключитесь к источнику 5 В постоянного тока.

— Контакт GND к GND Arduino или точке заземления вашего проекта.

— вывод DATA на цифровой вывод 11 Arduino — если у вас есть два вывода данных, вам нужно подключить только один из них.

Подключение ЖК-дисплея

Для правильного подключения ЖК-дисплея необходимо подключить следующее:

— вывод VCC ЖК-дисплея на вывод 5V

— вывод GND ЖК-дисплея на вывод GND

— Вывод RS ЖК-дисплея на цифровой вывод 7

— вывод включения ЖК-дисплея на цифровой вывод 6

— вывод D4 ЖК-дисплея на цифровой вывод 5

— вывод D5 ЖК-дисплея на цифровой вывод 4

— вывод D6 ЖК-дисплея на цифровой вывод 3

— вывод D7 ЖК-дисплея на цифровой вывод 2

— Подсветка ЖК-дисплея: контакт A к 5 В постоянного тока и контакт K к GND / земле

Подключение потенциометра

Подключение:

— один из внешних контактов выхода 5 В на Arduino

— внешний контакт, противоположный GND и

Arduino

— средний контакт ЖК-дисплея VO

Потенциометр используется для управления контрастностью ЖК-дисплея

На этом завершается первый этап строительства метеостанции 433 МГц лаборатории Volthaus Electronics. Вопросы, комментарии и т. Д. Приветствуются.

Метеостанция

с датчиком BMP280 и Raspberry Pi Pico

Мы видели несколько метеостанций, которые можно построить с использованием Arduino, Raspberry Pi, ESP8266 и многих других плат для разработки. Есть несколько других датчиков, которые можно использовать для создания метеостанции. В этом уроке мы научимся создавать метеостанцию ​​с датчиком BMP280 и Raspberry Pi Pico. Мы будем использовать код Micro Python для запуска этой метеостанции и отображения данных на ЖК-дисплее.

Необходимые вещи

Для создания этого проекта вам понадобятся следующие модули:

Датчик BMP280

Этот датчик произведен компанией Bosch. Это обновление следующего поколения популярного датчика BMP085 / BMP180 / BMP183. BMP280 — датчик атмосферного давления и высоты. Он имеет возможность общаться с использованием протокола I2C / SPI. Это доступно в модуле для облегчения взаимодействия. Это один из самых дешевых и крошечных датчиков атмосферного давления, доступных на рынке.

Этот прецизионный датчик может определять давление с абсолютной точностью ± 1 гПа и температуру с ± 1.Точность 0 ° C. Давление изменяется с высотой, и измерения давления в этом модуле очень точны. Этот датчик можно использовать для измерения высоты. Он может работать как высотомер с точностью ± 1 метр.

Размер этого модуля очень маленький и компактный. Этот датчик может измерять атмосферное давление и температуру. Этот сенсорный модуль BMP280 может использоваться для мониторинга внутренних / наружных условий, прогнозирования погоды, домашней автоматизации. Этот датчик можно использовать для мониторинга личного здоровья и благополучия.

Для измерения высоты этот датчик обеспечивает низкий уровень шума на высоте 0,25 м с малым временем преобразования. Интерфейс I2C позволяет легко подключить этот сенсорный модуль к другим платам. Несколько датчиков должны быть подключены с использованием протокола SPI, поскольку I2C может создавать конфликты адресов.

Технические характеристики и функции

  • Измеряет температуру, атмосферное давление и приблизительные данные о высоте

  • Улучшение GPS-навигации

  • Внутренняя навигация (обнаружение пола, обнаружение лифта)

  • приложения для отдыха и спорта

  • Прогноз погоды и приложения для здравоохранения

  • Библиотеки и учебные пособия для Arduino и других микроконтроллеров

  • Рабочее напряжение: 1. От 71 В до 3,6 В — обычно работает от 3,3 В

  • Рабочая температура: от -40 до +85 град. Цельсия (полная точность от 0 до +65 ° C)

  • Пиковый ток: 1,12 мА

  • Рабочее давление: от 300 до 1100 гПа

  • Точность от 700 до 900 гПа и от 25 до 40 градусов. C: ± 0,12 гПа и ± 1,0 м

Рабочий

Датчик BMP280 измеряет температуру и атмосферное давление. Мы также можем рассчитать высоту, используя эти данные.Затем данные отправляются в Raspberry Pi PICO и оттуда отображаются на ЖК-дисплее.

Схема подключения

Подключение довольно простое и легко подключается через макетную плату.

Для получения полной информации об этом проекте щелкните здесь .

Для других проектов посетите IoT Starters

Arduino Weather Station # 1 — education8s.tv

Привет, ребята, добро пожаловать на сегодняшнее руководство! Сегодня мы создадим простую метеостанцию ​​на базе Arduino для мониторинга температуры и влажности окружающей среды с помощью ЖК-экрана Arduino Mega, 16 × 2 и датчика температуры и влажности DHT11.

По соображениям конфиденциальности YouTube требуется ваше разрешение для загрузки. Для получения дополнительной информации, пожалуйста, ознакомьтесь с нашей Политикой конфиденциальности. Я принимаю

Основным ингредиентом / деталями, которые будут использоваться в этом руководстве, является датчик температуры и влажности DHT11. Датчик способен измерять температуру и влажность окружающей среды в определенной области. DHT11 — это базовый сверхдорогой цифровой датчик температуры и влажности. Он использует емкостной датчик влажности и термистор для измерения окружающего воздуха и выдает цифровой сигнал на вывод данных (выводы аналогового ввода не требуются).Он довольно прост в использовании, но требует аккуратного выбора времени для сбора данных. Единственным реальным недостатком этого датчика является то, что вы можете получать от него новые данные только раз в 2 секунды.

DHT11 Датчик температуры и влажности

некоторые функции датчика перечислены ниже;

  • Низкая стоимость
  • Питание от 3 до 5 В и ввод / вывод
  • Максимальный ток 2,5 мА, используемый во время преобразования (при запросе данных)
  • Подходит для измерения влажности 20-80% с точностью 5%
  • Подходит для измерения температуры 0-50 ° C с точностью ± 2 ° C
  • Частота дискретизации не более 1 Гц (раз в секунду)

Необходимые детали и где купить

Компоненты / детали, перечисленные ниже, необходимы для создания этого проекта, и их можно купить по ссылке перед ними.

  1. Arduino Mega: https://educ8s.tv/part/ArduinoMega
  2. Дисплей клавиатуры: https://educ8s.tv/part/KeypadShield
  3. Датчик DHT11: https://educ8s.tv/part/DHT11
  4. OLED-мультиметр
  5. : https://educ8s.tv/part/UsbDoctorOLED
  6. Powerbank: https://educ8s.tv/part/Powerbank
  7. Провода: https://educ8s. tv/part/Wires

Полное раскрытие информации: все приведенные выше ссылки являются партнерскими. Я получаю небольшой процент от каждой продажи, которую они производят.Спасибо за поддержку!

[AdSense]

Схемы

Схема для этого проекта проста, нам нужно только подключить датчик температуры и влажности DHT11, как показано на схемах ниже.

ЖК-дисплей 16 × 2 имеет форму экрана, который упрощает установку дисплея на Arduino.

Код

Код этого проекта довольно прост, как я покажу вам, требуется всего 47 строк кода, включая комментарии и объявления, чтобы проект заработал.

Алгоритм, лежащий в основе кода для проекта, довольно прост, мы начинаем с установления связи с датчиком, после чего запрашиваем у него показания температуры и влажности. Эти показания получаются в градусах Цельсия и Фаренгейта и отображаются на экране ЖК-дисплея 16 × 2.

В этом проекте мы будем использовать две библиотеки: библиотеку DHT. h для упрощения взаимодействия с DHT11 и библиотеку liquidcrystal.h, чтобы упростить взаимодействие с экраном ЖК-дисплея 16 × 2.в то время как библиотека liquidcrystal.h поставляется предварительно собранной с Arduino, библиотека DHT — нет, но ее можно загрузить и установить по этой ссылке (https://github.com/adafruit/DHT-sensor-library)

Чтобы кратко объяснить код этого проекта, мы, как обычно, начнем с включения библиотек, которые будут использоваться (упомянутые выше).

 ///////////////////////////////////////////////// ////////////////
   // Метеостанция Arduino # 1 v1.02 //
  // Получить последнюю версию кода здесь: //
 // https: // education8s.тв / ардуино-метеостанция-1 / //
////////////////////////////////////////////////// ///////////////


#include "DHT.h"
#include 
 

Затем мы определяем выводы Arduino, к которым подключен сигнальный вывод DHT, затем создаем объект как библиотеки DHT, так и библиотеки LCD.

 #define DHTPIN 22 // к какому выводу мы подключены

#define DHTTYPE DHT11

DHT dht (DHTPIN, DHTTYPE);
ЖК-дисплей LiquidCrystal (8,9,4,5,6,7);
 

Далее идет функция void setup (). Мы просто инициализируем ЖК-дисплей и датчик DHT, чтобы начать обмен данными.

 void setup (void) {
  lcd.begin (16, 2);
  lcd.print («Датчик чтения»);
  dht.begin ();
}
 

В рамках функции void loop мы в основном проверяем текущие показания температуры и влажности от датчика, затем преобразуем полученные значения в строки с помощью функции dtostrf и печатаем на дисплее.

 void loop () {

температура поплавка, влажность;

влажность = dht.readHumidity ();
температура = dht.readTemperature ();
задержка (2000);

lcd.clear ();

char tempF [6];
char humF [6];
dtostrf (температура, 5, 1, tempF);
dtostrf (влажность, 2, 0, humF);

lcd.print ("Т:");
lcd.print (tempF);
lcd.print ((char) 223);
lcd.print ("C");
lcd.print ("H:");
lcd.print (humF);
lcd.print ("%");
}
 

Полный код этого проекта можно скачать по ссылке ниже.

——————–

КОД ПРОЕКТА


——————–