Скетч сканера шины I2C и скетч метеостанции вместе с библиотеками к статье "Arduino метеостанция на BMP180, DHT11 и LCD1602".
В схеме использован дисплей LCD 1602 с адаптером I2C.
Если проект не заработал, то сначала проверьте в Менеджере плат, правильно ли выбрана плата. Затем просмотрите сообщения, выдаваемые в монитор порта. Если вы получаете нечитаемые сообщения, то проверьте в настройках монитора скорость порта и выставьте её в соответствие с установленной в скетче.
Если фон на индикаторе светится и больше ничего нет, то отрегулируйте яркость экрана потенциометром на адаптере I2C платы LCD. После этого должны появится знакоместа. Если знакоместа есть, а никаких символов нет, то скорее всего неправильно задан адрес индикатора LCD 1602 на шине I2C. Для проверки адресов запустите скетч I2C_Scanner. Скетч выдает в монитор порта шестнадцатеричные адреса устройств, найденных на шине I2C. Должен быть 0x3f – адрес индикатора LCD 1602. Если полученный адрес отличается от этого, то исправьте в скетче адрес на свой.
Для первоначальной установки времени раскомментируйте строку rtc.setTime, пропишите время и перезагрузите скетч. После корректировки снова закомментируйте эту строку.
P.S. Не устанавливайте датчики в корпус вместе с платой Arduino. Датчики в корпусе будут давать неверные показания, даже если корпус имеет вентиляционные отверстия. Установите датчики снаружи корпуса, чтобы был обеспечен свободный доступ окружающего воздуха.
P.P.S. Во многих статьях в скетчах с датчиком DHT11 встречал одну и ту же ошибку в описании датчика (далее в тексте она выделена и подчеркнута):
#define DHTPIN 10
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
Ошибка некритическая, скетч запускается и работает, но через несколько часов вылетает с ошибкой, в которой вскользь упоминается DHT11.
В указании типа датчика надо указывать только цифры без букв DHT, т.е.
#define DHTPIN 10
#define DHTTYPE 11 // 11 - DHT11, 22 - DHT22
DHT dht(DHTPIN, DHTTYPE);
Схема метеостанции
Метеостанция в сборе
Использованные ресурсы
https://cxem.net/arduino/arduino.php
|