Урок 16. Подключение датчика DHT11 к Arduino UNO. Выводим температуру и влажность на LCD 1602 I2C дисплей

Arduino Билиотека для подключения нескольких датчиков к Ардуине, к разным пинам. Скачать библиотеку. Пример: Схема подключения, на рисунке выше. Если резисторов нет, то можно и без них. Важно! Между чтением датчиков необходимо делать паузу не менее 2 сек. Можно подключать столько датчиков, сколько есть «цифровых» пинов. Внутри датчиков серии DHT установлены два сенсора — влажности (sens.readHumidity) и температуры (sens.readTemperature). Данные можно считывать независимо. Например, с одного датчика читать только влажность, а с другого только температуру: Что переделано За основу была взята эта библиотека. Убраны числа с плавающей запятой (float заменён на int), то есть показывает только целые числа. Увеличена скорость чтения с 270мс до 70мс. (можно ещё уменьшать) Если возникнут проблемы (у меня не возникало), то попробуйте «поиграться» этим значением, редактируя файл DHT.cpp. На этом всё, если что-то не понятно, то пишите в комментариях… Вступайте в Telegram-группу Arduino

  • 4 сентября 2015, 10:20
  • 65710

–> Поддержать автора Telegram-чат istarik Задать вопрос по статье Telegram-канал istarik Известит Вас о новых публикациях Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.07 02.2017 Рубрика: Arduino и IDE

Самые частые измеряемые параметры в промышленности и быту — это температура и влажность. Эти значения очень важны в сушке древесины, выпечке кондитерских изделий, в холодильных камерах. В быту измеряют в теплицах и в контурах отопления и горячего водоснабжения. Датчик DHT11 Ардуино прекрасно справляется со своими задачами и определяет более-менее точно температуру и влажность.

Из этой статьи вы узнаете:

Датчик DHT11 Подключение датчика DHT11 Описание кода программы

Датчик DHT11

DHT11 — это маленький сенсор в небольшом пластиковом корпусе. На выходе сенсора находится цифровой сигнал, причем сразу два параметра и температура и влажность. Смысл общения с контроллером Ардуино заключается в следующем:

  1. Микроконтроллер запрашивает показания и меняет сигнал с 0 на 1.
  2. Датчик видит запрос, и отвечает ему, меняя битовый сигнал с 0 на 1.
  3. Когда они договорились между собой, датчик выдаёт ему пакет данных в размере 5 байт(40 бит), при чем в двух первых байтах температура, в третьем и четвертом влажность. Пятый байт — контрольная сумма для исключения ошибок измерения.

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

  • Определение влажности в диапазоне 20-80%
  • Определение температуры от 0°C до +50°C
  • Частота опроса 1 раз в секунду

Недостаток сенсора в том, что он не обладает высокой точностью и быстродействием. Большой плюс — это цена. Ну, я думаю, вы и без меня это знаете)).

В составе сенсора находится ёмкостной датчик для измерения влажности и термистор для измерения температуры. Все показания снимает чип АЦП и выдает цифровой сигнал.

Промышленные датчики обычно выдают аналоговый сигнал на 4-20 мА или 0-10 В. Это такие сенсоры которые измеряют два параметра в паре. Например продукция компании ОВЕН ПВТ10:

Напишите в комментариях, какие вы применяете в своих проектах? Очень интересно ваше мнение…

В продаже вы можете встретить и вторую модификацию Ардуиновского сенсора — DHT22. Скажу, что диапазон измерения значительно больше, чем у старой версии.

  • определение влажности в диапазоне 0-100%
  • определение температуры от -40°C до +125°C
  • частота опроса 1 раз в 2 секунды

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

Датчики зачастую изготавливают в виде готовых шильдов. На выходе он имеет 3 пина:

  • Питание 5 В
  • Сигнал (S)
  • Земля GND

Сопротивление в 10 кОм ставить не нужно, так как оно уже впаяно в плату. Схема подключений датчика и Ардуино UNO.

Описание кода программы

Для работы Arduino UNO с нашим датчиком требуется подключение специальной библиотеки. Она называется DHT.h. Скачать можете вот по этой ссылке.

А теперь рассмотрим с вами скетч программы для работы с сенсором.

Загрузите скетч в контроллер и проверьте сенсор при помощи сервис — монитор.

Вот что у меня получилось:

Мониторинг порта в Arduino IDE:

В программе можно включить один интересный инструмент для просмотра графики. Его можно включить так Инструменты — Плоттер по последовательному соединению. Не знаю, у меня он отображает только температуру. Если кто знает, как можно задействовать несколько графиков, поделитесь в комментариях. Вот такая картинка получилась:

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

На этом я заканчиваю свой пост. В следующей статье я напишу о корейском таймере AT8N. Пишите комментарии, задавайте вопросы, подписывайтесь!

Успехов вам!!!

С уважением, Гридин Семён.

Сегодня поговорим о том, как подключить датчик давления BMP280 к Ардуино, для чего он необходим, какие библиотеки и прошивки применяются для его работы. Мы уже рассматривали с вами подобные приборы – а именно цифровой барометр BMP180. Герой сегодняшнего обзора имеет определенное сходство с тем устройством, но больше всего – конечно же преимущества перед ним. Этот метеодатчик активно внедряется в инженерные и конструкторские проекты, связанные с мобильными радиоуправляемыми гаджетами. Он имеет достаточно компактный размер, экономный режим энергопотребления, высокий уровень стабильности и точности измерения. Таким образом его можно эффективно использовать в полетных контроллерах различных радиоуправляемых летательных аппаратов (дронов, квадрокоптеров), в качестве высотомера, для сбора информации о погоде и т.д. Разберем технические параметры модуля:

  • напряжение питания: 3 – 3,3 V;
  • измеряемое давление: 300-1100 гПа;
  • тип шины: I2C и SPI;
  • средний ток: 2,7 мкА;
  • диапазон рабочих температур: -40 – 65 С;
  • высотомер:   -500 ~ +9000 м.;
  • шаг контактов: 2,54 мм;
  • размеры: 2 х 2,5 х 0,95мм.

Датчик атмосферного давления содержит два мини-сенсора (собираются данные о температуре и давлении). Также он имеет несколько режимов работы – SLEEP (режим сна), FORCED (этапы измерений и считывания значений), NORMAL (автоматический режим проведения расчетов, вывод и сохранение данных).

Подключение BMP280 к Arduino через I2C

Электрическая схема выглядит следующим образом: Для создания принципиальной схемы используем такие аппаратные компоненты: плата расширения Arduino Uno (или другие совместимые микроконтроллеры), модуль датчика давления, соединительные провода (комплект), плата расширения, USB-кабель для подключения к ноутбуку ∕ компьютеру. Схематически наша конструкция выглядит вот так: Для дальнейшей работы и ускоренного процесса программирования (прошивки) будем использовать специализированный софт, а именно библиотеки – Wire и SPI (для управления интерфейсами), Adafruit_Sensor, Adafruit_BMP280. https://github.com/adafruit/Adafruit_Sensor https://github.com/adafruit/Adafruit_BMP280_Library Их можно скачать и просто добавить разархивированные файлы в среду разработки Ардуино IDE (одноименная папка libraries). Заливаем скетч:

#include  #include  #include  #include    #define BMP_SCK 13 #define BMP_MISO 12 #define BMP_MOSI 11  #define BMP_CS 10   Adafruit_BMP280 bme; // I2C //Adafruit_BMP280 bme(BMP_CS); // hardware SPI //Adafruit_BMP280 bme(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);   void setup() {   Serial.begin(9600);   Serial.println(F("BMP280 test"));     if (!bme.begin()) {       Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));     while (1);   } }   void loop() {     Serial.print(F("Temperature = "));     Serial.print(bme.readTemperature());     Serial.println(" *C");          Serial.print(F("Pressure = "));     Serial.print(bme.readPressure());     Serial.println(" Pa");       Serial.print(F("Approx altitude = "));     Serial.print(bme.readAltitude(1013.25)); // this should be adjusted to your local forcase     Serial.println(" m");          Serial.println();     delay(2000); }

Результаты и нужные нам значения можно посмотреть в мониторе последовательного порта (Ctrl+Shift+M). Если информация не доступна, советуем еще раз пересмотреть правильность соединения всех элементов. Надеемся, вы справитесь! Удачи! Похожие новости FPM10A и Arduino

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет…

Arduino и BMP180

Подключение BMP180 к Arduino – процесс не сложный, но вполне практичный. Если вы всерьез занимаетесь проектами на базе этой программной среды, считаете себя…

BMP280 и ESP2866

Подключение BMP280 к ESP2866 позволит вам создать практичный и увлекательный проект, а именно – домашнюю метеостанцию. О подобных датчиках мы уже говорили,…

Подключение SIM800L к Arduino

В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно…

Описание

Данный дисплей представляет из себя ЖК монитор с диагональю 3,5 дюйма. Основная задача дисплея – работа с простой графикой (рисование фигур, текста, линий), однако, также предусмотрен вывод на дисплей полноцветных фотографий и анимации. Данный дисплей выполнен в форм-факторе шилда для контроллеров линеек UNO, Mega, Leonardo, Due, что представляет дополнительное удобство в подключении.

На плате также расположен разъём для размещения SD-карт памяти, таким образом данный дисплей совмещает в себе три устройства – экран, шилд и модуль карт памяти.

Технические характеристики

  • Рабочее напряжение: 5 В
  • Потребляемый ток: 300 мА
  • Диагональ: 3,5'
  • Разрешение: 320 х 480
  • Тип карты памяти: microSD
  • Максимальный объём карты памяти: 32 Гб
  • Модель контроллера экрана: ILI9481 (8 бит)

Физические размеры

  • Модуль с дисплеем и выводами (Д х Ш х В): 86 х 56 х 14 (мм)

Плюсы использования

  • Удобство подключения к контроллерам в качестве шилда
  • Наличие разъёма для подключения карт памяти

Минусы использования

  • Невозможность подключения к маленьким контроллерам напрямую

Библиотеки для работы с дисплеем

  • Скачать Графическое ядро
  • Скачать библиотеку для работы с дисплеем

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

Пример: В примере иллюстрируются основные возможности по выводу информации на дисплей с использованием контроллера Smart UNO. Дисплей подключается к контроллеру в качестве шилда.

Для этого нам понадобится:

Что нужно: Кол-во, шт
Контроллер 1
Дисплей 1

Пример кода:

#include     // Ядро графической библиотеки #include  // Специфика аппаратного обеспечения #include    // Специфика работы с разными чипами   // Ассоциируем шестнадцатиричные значения цветов в удобочитаемый вид #define BLACK   0x0000 // черный #define BLUE    0x001F // синий #define RED     0xF800 // красный #define GREEN   0x07E0 // зелёный #define CYAN    0x07FF // голубой #define MAGENTA 0xF81F // малиновый #define YELLOW  0xFFE0 // жёлтый #define WHITE   0xFFFF // белый   MCUFRIEND_kbv tft; //инициализация объекта дисплея   void setup(void) {     tft.reset(); //сброс дисплея     uint16_t identifier = tft.readID(); //чтение идентификатора чипа   tft.begin(identifier); //инициализация дисплея   tft.invertDisplay(true); //установка чёрной подсветки для ILI9481 }   void loop(void) { for(uint8_t rotation= ; rotation<</span>4; rotation++) { //попеременно установка поворота дисплея       tft.setRotation(rotation); //установить поворот       //Заливка дисплея цветами     tft.fillScreen(BLACK); //черным     tft.fillScreen(RED); //красным     tft.fillScreen(GREEN); //зелёным     tft.fillScreen(BLUE); //синим     tft.fillScreen(BLACK); //снова черным       //Написание текста     tft.setCursor( ,  ); //установить курсор в позицию 0,0 (левый верхний угол)     tft.setTextColor(WHITE); //установка цвета текста (белый)      tft.setTextSize(1); //установка размера текста     tft.println("Hello World!"); //вывести надпись       //Вывод числовых значений     tft.setTextColor(YELLOW); //установить цвет текста     tft.setTextSize(2); //установить размер текста     tft.println(1234.56); //вывести число       //Вывод шестнадцатиричного значения     tft.setTextColor(RED); //цвет текста (красный)         tft.setTextSize(3); //размер текста     tft.println(0x9876BEEF, HEX); //вывод значения     tft.println(); //вывод пустой строки       //Надписи разным шрифтом      tft.setTextColor(GREEN); //установка цвета текста     tft.setTextSize(5); //размер текста     tft.println("Display"); //надпись     tft.setTextSize(3); //размер текста     tft.println("SmartElements"); //надпись     tft.setTextColor(BLUE); //цвет текста     tft.setTextSize(3); //размер текста     tft.println("Visit our"); //надпись     tft.setTextColor(BLUE); //цвет текста     tft.setTextSize(2); //размер текста     tft.println("ofificial store:"); //надпись     tft.setTextColor(CYAN); //цвет текста     tft.setTextSize(2); //размер текста     tft.println("smartelements.ru"); //надпись       delay(5000); //задержка 5 секунд       //Начертить линию     tft.fillScreen(BLACK); //дисплей залить черным //           х1     у1   х2    у2  цвет     tft.drawLine( ,  ,  , 100, GREEN); //нарисовать линию от точки 1 и точки 2, цвет     tft.drawLine( , 100, 100, 100, RED); //нарисовать линию от точки 1 и точки 2, цвет     tft.drawLine(100, 100, 100,  , BLUE); //нарисовать линию от точки 1 и точки 2, цвет     tft.drawLine(100,  ,  ,  , MAGENTA); //нарисовать линию от точки 1 и точки 2, цвет       delay(5000); //задержка 5 секунд       //Быстрые линии (на всю длину или высоту)     tft.fillScreen(BLACK); //дисплей залить черным //5 горизонтальных линий int w = tft.width();     tft.drawFastHLine( ,  , w, GREEN);     tft.drawFastHLine( , 5, w, GREEN);     tft.drawFastHLine( , 10, w, GREEN);     tft.drawFastHLine( , 15, w, GREEN);     tft.drawFastHLine( , 20, w, GREEN);       //5 вертикальных линий int h = tft.height();     tft.drawFastVLine( ,  , h, RED);     tft.drawFastVLine(5,  , h, RED);     tft.drawFastVLine(10,  , h, RED);     tft.drawFastVLine(15,  , h, RED);     tft.drawFastVLine(20,  , h, RED);       delay(5000); //задержка 5 секунд       //Рисование квадрата     tft.fillScreen(BLACK); //дисплей залить черным     tft.drawRect( ,  , 100, 100, YELLOW); //пустой квадрат из точки (0, 0) со сторонами 100 пикселей     tft.fillRect( , 120, 100, 200, CYAN); //заполненный прямоугольник из точки (0, 120) со сторонами по Х - 100, по У - 200       delay(5000); //задержка 5 секунд       //Рисование кругов     tft.fillScreen(BLACK); //дисплей залить черным     tft.fillCircle(100, 100, 50, BLUE); //залитый круг радиусом 50 пикселей из точки (100, 100)     tft.drawCircle(100, 100, 100, WHITE); //пустой круг радиусом 100 пикселей из точки (100, 100)       delay(5000); //задержка 5 секунд       //Рисование треугольников     tft.fillScreen(BLACK); //дисплей залить черным     tft.fillTriangle( //нарисовать заполненный треугольник 100 ,  , // верхняя точка 50, 100, // нижняя левая 150, 100, // нижняя правая         tft.color565(65, 122, 23)); //залить цветом по схеме RGB     tft.drawTriangle( 100,  , // верхняя точка  , 100, // нижняя левая 200, 100, // нижняя правая         tft.color565( ,  , 255)); //залить цветом по схеме RGB       delay(5000); //задержка 5 секунд     } }

Уровень концентрации углекислого газа (CO2) в атмосфере Земли увеличивается с каждым годом, что косвенно приводит к проблеме глобального потепления. Также углекислый газ играет важную роль в процессах, происходящих в современном мире. Поэтому измерение его концентрации в окружающем воздухе является достаточно важной и актуальной задачей.

image

В данной статье мы рассмотрим подключение датчика MQ-135 к плате Arduino и измерение с его помощью концентрации углекислого газа (CO2). Ранее на нашем сайте мы уже рассматривали измерение концентрации CO2 с помощью инфракрасного датчика, но инфракрасный датчик достаточно дорого стоит, поэтому в данном проекте мы для измерения концентрации CO2 будем использовать значительно более дешевый датчик MQ-135. Мы уже рассматривали его подключение к плате Arduino в проекте системы мониторинга качества воздуха, но этот проект будет немного отличаться – в нем мы будем использовать для отображения концентрации CO2 OLED дисплей и не будем передавать эти данные в сеть интернет. Также на нашем сайте вы можете посмотреть другие проекты, в которых рассматривается измерение каких либо веществ в окружающем воздухе:

  • анализатор качества воздуха с определением частиц PM2.5 и PM10 на Arduino и датчике SDS011;
  • измерение TVOC (летучих соединений) и CO2 с помощью Arduino и датчика качества воздуха CCS811;
  • детектор алкоголя (алкотестер) на Arduino;
  • измерение уровня аммиака в воздухе с помощью датчика газа MQ-137 и Arduino;
  • детектор дыма на Arduino и датчике газа MQ2.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. Датчик газа MQ135 (купить на AliExpress).
  3. 0.96’ SPI OLED Display Module – модуль OLED дисплея с диагональю 0.96’ и поддержкой интерфейса SPI (купить на AliExpress – если будете покупать по приведенной ссылке, то выбирайте модель OLED дисплея с 7 контактами).
  4. Резистор 22 кОм (купить на AliExpress).
  5. Макетная плата.
  6. Соединительные провода.

Модуль OLED дисплея (0.96’ OLED Display Module)

OLED (Organic Light-Emitting Diodes, органический светоизлучающий диод) – это светоизлучающая технология, которая применяется в большинстве современных телевизоров. В OLED дисплеях используется тот же принцип формирования изображения, что и в современных телевизорах, только количество пикселей в них значительно меньше.

image

Для нашего проекта мы использовали монохромный 7-ми контактный OLED дисплей SSD1306 с диагональю 0.96”. Он может использовать 3 различных коммуникационных протокола: 3-х проводный SPI, 4-х проводный SPI и I2C.

Назначение его контактов (распиновка) приведены в следующей таблице.

Номер контакта Название контакта Альтернативное название контакта Назначение контакта
1 Gnd Ground земля (общий провод)
2 Vdd Vcc, 5V напряжение питания (в диапазоне 3-5 В)
3 SCK D0, SCL, CLK контакт синхронизации (clock pin). Применяется в интерфейсах I2C и SPI
4 SDA D1, MOSI контакт данных. Применяется в интерфейсах I2C и SPI
5 RES RST, RESET контакт сброса модуля. Применяется в интерфейсе SPI
6 DC A0 контакт команд (Data Command pin). Применяется в интерфейсе SPI
7 CS Chip Select (выбор чипа) используется когда несколько устройств взаимодействуют по интерфейсу SPI

Подключение данного дисплея к плате Arduino рассматривалось в этой статье, а все проекты с использованием данного дисплея на нашем сайте вы можете посмотреть по следующей ссылке.

Технические характеристики OLED дисплея SSD1306:

  • драйвер микросхемы OLED: SSD1306;
  • разрешение: 128 x 64;
  • угол зрения: >160°;
  • входное напряжение: 3.3V ~ 6V;
  • цвет пикселов: синий;
  • диапазон рабочих температур: -30°C ~ 70°C.

Подготовка датчика MQ-135 к измерению углекислого газа

Датчик газа MQ-135 способен обнаруживать широкий диапазон различных газов в окружающем воздухе: NH3, NOx, алкоголь, бензол, дым и углекислый газ (CO2). Датчик MQ-135 можно купить как в виде модуля, так и в виде отдельного датчика. В нашем проекте мы будем использовать его в виде модуля для измерения концентрации CO2 в единицах PPM (parts per million – частей на миллион). Схема модуля датчика MQ-135 показана на следующем рисунке:

image

В этой схеме весьма важную роль играет нагрузочный резистор RL – его сопротивление может изменяться в зависимости от концентрации газа. В соответствии с даташитом на датчик MQ-135 сопротивление нагрузочного резистора может изменяться от 10 кОм до 47 кОм. Даташит рекомендует чтобы вы калибровали датчик для 100ppm NH3 или для 50ppm концентрации алкоголя в воздухе и использовали значение нагрузочного резистора RL примерно 20 кОм. Но если вы внимательно посмотрите на плату модуля MQ-135, то вы увидите что значение резистора RL на ней составляет 1 кОм (102).

image

Поэтому, чтобы корректно измерять концентрацию CO2, вам необходимо заменить этот резистор 1 кОм на резистор сопротивлением 22 кОм.

Схема проекта

Схема подключения датчика MQ-135 к плате Arduino представлена на следующем рисунке.

imageКак видите, схема достаточно проста, в ней необходимо подключить к плате Arduino датчик MQ-135 и OLED дисплей. Датчик газа MQ-135 и OLED дисплей оба запитываются от контактов +5V и GND платы Arduino. Аналоговый выход датчика MQ-135 подключен к контакту A0 платы Arduino Nano. OLED дисплей подключен к плате Arduino Nano по интерфейсу SPI, схема их соединений показана в следующей таблице.

OLED дисплей Плата Arduino
GND Ground
VCC 5V
D0 10
D1 9
RES 13
DC 11
CS 12

После сборки схемы на макетной плате у нас получилась конструкция следующего вида:

image

Расчет значения Ro датчика MQ135

Теперь, когда мы знаем сопротивление резистора RL, давайте рассмотрим как рассчитать значение Ro для чистого воздуха. В нашем проекте бы будем использовать библиотеку MQ135.h для измерения концентрации CO2 в окружающем воздухе. Скачайте указанную библиотеку и дайте датчику MQ-135 прогреться в течение 24 часов перед считыванием значений Ro. После завершения процесса предварительного прогрева используйте следующий код программы для считывания значений Ro:

Теперь, когда вы получили значение Ro, откройте папку Documents > Arduino > libraries > MQ135-master, в ней откройте файл MQ135.h и в нем измените значения RLOAD и RZERO.

После этого прокрутите файл вниз и замените в нем значение ATMOCO2 на текущее (в настоящее время) значение концентрации CO2 в атмосфере – 411.29.

Объяснение программы для измерения концентрации CO2 с помощью Arduino и датчика MQ-135

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В коде программы мы будем использовать библиотеки Adafruit_GFX, Adafruit_SSD1306 и MQ135.h. Первые две из них можно скачать и установить с помощью менеджера библиотек (Library Manager) Arduino IDE. Для этого запустите Arduino IDE и в ней откройте пункт меню Sketch < Include Library < Manage Libraries. Откроется окно, в нем запустите поиск Adafruit GFX, после ее нахождения установите библиотеку Adafruit GFX от компании Adafruit.

image

Аналогичным образом установите библиотеку Adafruit SSD1306 от компании Adafruit. Библиотеку MQ135 можно скачать по этой ссылке.

После этого укажем в программе ширину и высоту OLED дисплея, в нашем случае мы используем дисплей 128×64 с поддержкой интерфейса SPI. Вы можете изменить значения SCREEN_WIDTH и SCREEN_HEIGHT если используете OLED дисплей с другим разрешением.

Затем укажем контакты платы Ардуино, к которым дисплей подключен по интерфейсу SPI.

После этого создадим объект OLED дисплея с необходимыми характеристиками.

Затем дадим название контакту, к которому подключен датчик MQ-135.

После этого в функции setup() инициализируем последовательную связь со скоростью 9600 бод для целей отладки. Также инициализируем OLED дисплей с помощью функции begin().

Внутри функции loop() мы будем считывать значение с выхода датчика MQ-135 на выходе АЦП контакта A0 с помощью функции analogRead().

Затем мы будем вызывать функцию gasSensor.getPPM() для расчета значения углекислого газа в единицах PPM (частей на миллион), которое рассчитывается на основе сопротивления нагрузочного резистора, значения Ro и считанного с контакта A0 значения.

После этого установим размер текста и его цвет на OLED дисплее с помощью функций setTextSize() и setTextColor().

Затем установим позицию курсора с помощью функции setCursor(x,y) и будем выводить значения концентрации CO2 на экран OLED дисплея с помощью функции display.println().

И, наконец, вызовем функцию display() для отображения необходимого текста на экране OLED дисплея.

Тестирование работы проекта

После того как аппаратная часть проекта будет готова, загрузите программу в плату Arduino. Затем откройте окно монитора последовательной связи (serial monitor) и подождите некоторое время, необходимое для предварительного прогрева датчика. После этого вы в окне монитора последовательной связи сможете наблюдать окончательные (правильные) значения CO2. Также эти значения будут отображаться и на экране OLED дисплея:

image

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

1 053 просмотров

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий