Всем доброго времени суток.
После долгого обдумывания ,какой бы создать интересный и достаточно функциональный проект .Посмотрев множество видеороликов Alex Gyver и ещё некоторых видеоблогеров ,решил что создам метеостанцию или Smart-Hours(умные часы) .В которых будет мой функционал и моя идея.
Функционал.
Важно!!!Чтобы графики работали нужно переклацать все окна(одна из нерешённых проблем ,но я думаю над этим).
Питание 5V 2A;
Устройство умеет выводить точное время и дату ( можно настроить в самом скетче) ,температуру и влажность воздуха в помещении ,атмосферное давление (hPa и
mmHg) и высоту .На основе данных с bmp280 ,а именно атмосферного давления программа строит график и выводит на главный экран ( где часы и дата) символ с примерной погодой .
Есть функция - выключение (3 нажатия на кнопку),и включение (1 нажатие на кнопку) подсветки.
Алгоритм работы.
-Вывод даты и точного (ну почти точного ,зависит как вы настроите в скетче) времени ,также примерной погоды;
-Вывод на разных окнах дисплея данных с датчиков и графиков;
-Переключение между окнами реализовано с помощью кнопки (и библиотеки Alex Gyver - EncButton.h) и оператором switch.
Схема проекта :
Реализация :
1).Когда включаю станцию , идет быстрая загрузка и выводится главный экран(дата ,время , и примерная погода в нижнем правом углу дисплея);
2).При нажатии на кнопку второй раз идёт очистка дисплея;
3).При нажатии на кнопку третий раз выводится температура в помещении;
4).При нажатии на кнопку четвёртый раз идёт очистка дисплея( и так каждый раз после следующего вывода данных);
5).При нажатии на кнопку пятый раз выводится влажность в помещении;
6).Очистка дисплея;
7).При нажатии на кнопку седьмой раз выводится атмосферное давление;
8).Очистка дисплея;
9).При нажатии на кнопку девятый раз выводится график на основе значений с bmp280 ,а именно атмосферного давления;
10).Очистка дисплея и главный экран;
Реализовано с помощью оператора switch .Все выводы информации написал в функциях ,и функции вписал в case для удобного переключения кнопкой.
Использовал такую простенькую функцию :
Создал ,чтобы команда lcd.clear(); не очищала данные графика.
Скетч на данный момент:
- Smart-Hours_V2.2 ;
Там же есть ещё версии скетча.
Какие модули использовал :
-Arduino nano 3.0 Mega328p с припаянными контактами;
-Дисплей 1602 5V Зеленый экран с интерфейсной шиной IIC/I2C;
-Модуль часов реального времени DS1302;
-BMP280 Модуль цифрового датчика атмосферного давления;
-Модуль датчика температуры и влажности AHT20;
-Тактильные кнопки 6*6*5мм сквозной монтаж;
---------------------------------------------------------------------------------------------------------------
≈ 593,47 руб + доставка;
В планах :
-Добавить солнечную батарею;
-Добавить акум и модуль зарядки;
-Добавить датчик CO2 и в качестве индикаторов 3 светодиода (зелёный ,жёлтый ,красный);
-Добавить WiFi модуль;
-Добавить фоторезистор;
-Оптимизировать скетч;
И много различных функций и других типов этой станции .Со временем буду добавлять ещё идеи и версии кода .Надеюсь Gyver и админы одобрят.
После долгого обдумывания ,какой бы создать интересный и достаточно функциональный проект .Посмотрев множество видеороликов Alex Gyver и ещё некоторых видеоблогеров ,решил что создам метеостанцию или Smart-Hours(умные часы) .В которых будет мой функционал и моя идея.
Функционал.
Важно!!!Чтобы графики работали нужно переклацать все окна(одна из нерешённых проблем ,но я думаю над этим).
Питание 5V 2A;
Устройство умеет выводить точное время и дату ( можно настроить в самом скетче) ,температуру и влажность воздуха в помещении ,атмосферное давление (hPa и
mmHg) и высоту .На основе данных с bmp280 ,а именно атмосферного давления программа строит график и выводит на главный экран ( где часы и дата) символ с примерной погодой .
Есть функция - выключение (3 нажатия на кнопку),и включение (1 нажатие на кнопку) подсветки.
Алгоритм работы.
-Вывод даты и точного (ну почти точного ,зависит как вы настроите в скетче) времени ,также примерной погоды;
-Вывод на разных окнах дисплея данных с датчиков и графиков;
-Переключение между окнами реализовано с помощью кнопки (и библиотеки Alex Gyver - EncButton.h) и оператором switch.
Схема проекта :
Реализация :
1).Когда включаю станцию , идет быстрая загрузка и выводится главный экран(дата ,время , и примерная погода в нижнем правом углу дисплея);
2).При нажатии на кнопку второй раз идёт очистка дисплея;
3).При нажатии на кнопку третий раз выводится температура в помещении;
4).При нажатии на кнопку четвёртый раз идёт очистка дисплея( и так каждый раз после следующего вывода данных);
5).При нажатии на кнопку пятый раз выводится влажность в помещении;
6).Очистка дисплея;
7).При нажатии на кнопку седьмой раз выводится атмосферное давление;
8).Очистка дисплея;
9).При нажатии на кнопку девятый раз выводится график на основе значений с bmp280 ,а именно атмосферного давления;
10).Очистка дисплея и главный экран;
Реализовано с помощью оператора switch .Все выводы информации написал в функциях ,и функции вписал в case для удобного переключения кнопкой.
Использовал такую простенькую функцию :
Простая функция:
void clearLCD() { //функция для очистки дисплея
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
}
Скетч на данный момент:
- Smart-Hours_V2.2 ;
Там же есть ещё версии скетча.
Какие модули использовал :
-Arduino nano 3.0 Mega328p с припаянными контактами;
-Дисплей 1602 5V Зеленый экран с интерфейсной шиной IIC/I2C;
-Модуль часов реального времени DS1302;
-BMP280 Модуль цифрового датчика атмосферного давления;
-Модуль датчика температуры и влажности AHT20;
-Тактильные кнопки 6*6*5мм сквозной монтаж;
---------------------------------------------------------------------------------------------------------------
≈ 593,47 руб + доставка;
В планах :
-Добавить солнечную батарею;
-Добавить акум и модуль зарядки;
-Добавить датчик CO2 и в качестве индикаторов 3 светодиода (зелёный ,жёлтый ,красный);
-Добавить WiFi модуль;
-Добавить фоторезистор;
-Оптимизировать скетч;
И много различных функций и других типов этой станции .Со временем буду добавлять ещё идеи и версии кода .Надеюсь Gyver и админы одобрят.
Изменено: