Возможно, вы захотите, контролировать более сложные сценарии проекта домашней автоматизации, для этого очень пригодится контроллер сцен.
В этом примере мы использовали сенсорный экран для отображения сцены параметров запуска. Кнопки могут быть настроены в коде скетча с вашими предпочтениями. С небольшими усилиями вы могли бы даже изменить функции кнопок в зависимости от времени дня или создать полноценную систему меню.
Если вы предпочитаете сохранить контроллер простым, вы можете не подключать сенсорный дисплей, а просто прикрепить несколько кнопок к вашему вашего Arduino для выполнения команд сцены.
Приведенный пример также показывает время в правом верхнем углу. Если вам нужно больше места для вашей кнопки вы можете удалить эту часть.
Сенсорный экран, который используется здесь, не любят делиться SPI с радио с nrf24l01. Нам пришлось переместить радио в отдельный программный интерфейс на основе SPI . В инструкции ниже показано, куда что подключать.
Демонстрация
Данное короткое видео показывает контроллер сцен в действии.
[su_youtube url=»https://youtu.be/lyTrtuxdA7k»]
Для проекта простого контроллера с кнопками, можете посмотреть проект petewills здесь
[su_youtube url=»https://youtu.be/KMGj5Bi7vL0″]
Подключение
Этот датчик в основном состоит из Atmega 2650, shield и дисплея, который легко защелкиваются. Единственное, что осталось вы должны подключить радио. Мы решили припаять провода на дисплей экрана, но вы сможете временно подсоедините кабели с помощью проводов DuPont во время тестирования. В 3,3В выход ATMega2650 немного с помехами, поэтому мы решили использовать понижающий регулятор от 5В->3,3В, чтобы сгладить ситуацию немного.

| AtMega 2650 | Понижающий преобразователь для радио |
|---|---|
| GND | GND |
| 5V | Step Down module VCC |
| D14(цифровой выход) | SCK |
| D15(цифровой выход) | MOSI |
| D16(цифровой выход) | MISO |
| D17(цифровой выход) | CE |
| D18(цифровой выход) | CSN |
Пример
Этот пример использует внешние библиотеки UTFT, UTouch, UTFT_Buttons и TimeLib найти их можно здесь. Пожалуйста, установите их и перезагрузите устройство Arduino IDE, прежде чем пытаться компилировать. Он также зависит от внешнего источника файлов, найденных в папке примера.
Перевёл Антон Вотчицев