Многофункциональные LCD Часы с Raspberry Pi | Полный DIY-проект
Многофункциональные LCD Часы с Raspberry Pi | Полный DIY-проект
С помощью всего двух простых файлов Python, недорогого дисплея LCD и недорогого цифрового датчика температуры вы можете включить Raspberry Pi превратили в красивые часы LCD с адресом IP и функцией индикации температуры. По-прежнему будет доступно несколько GPIO для подключения других систем, таких как сигнализация, срабатывающая по порогу температуры или времени. Поскольку мы будем использовать довольно много данных, лучше использовать четырехстрочный дисплей LCD с количеством символов не менее 16 в строке. На рис. 1 показан авторский прототип.
Рис. 1: Авторский прототип Многофункциональных часов LCD
Цепь и работа
Рис. 2 показана конфигурация контактов Raspberry Pi. Разъем GPIO имеет семь настоящих контактов GPIO, интерфейс I2C, интерфейс SPI, последовательные контакты TX/RX и контакты PWM, которые можно использовать для управления внешним оборудованием.
Рис. 2: Конфигурация контактов Raspberry Pi
Рис. 3 показана схема подключения часов. Основными используемыми компонентами являются плата Raspberry Pi, датчик температуры DS18B20 (IC1) и модуль LCD 4×20. IC1 представляет собой тепловой датчик с рабочим диапазоном от -55°C до +125°C. Он может получать питание непосредственно от линии передачи данных, устраняя необходимость во внешнем источнике питания. Но в этом проекте мы использовали выходное напряжение 3,3 В от Raspberry Pi для его питания. Система работает по однопроводному протоколу. Выход датчика температуры IC1 считывается через GPIO4 (контакт 7) Raspberry Pi.
Рис. 3: Схема подключения многофункциональных часов LCD с Raspberry Pi
Выполните все подключения согласно рис. 3 и убедитесь, что между контактом данных 2 и контактом питания 3 микросхемы IC1 подключен небольшой резистор (от 4,7 до 10 кОм) для понижения сигнала вывода данных.
Включите Raspberry Pi и прикоснитесь к датчику (IC1), чтобы убедиться, что он не перегревается из-за неправильного подключения. После проверки всех соединений следуйте инструкциям в разделе программного обеспечения ниже, чтобы загрузить модуль датчика температуры и часы. IP и температура появятся на LCD.
Программное обеспечение
Предполагается, что на вашем Raspberry Pi уже установлена операционная система Raspbian «wheezy». Если нет, вы можете обратиться к статье «Начало работы с Raspberry Pi», опубликованной в апрельском номере 2013 года, чтобы настроить ее.
Теперь все, что вам нужно, — это сетевое подключение к Raspberry Pi для установки всего программного обеспечения. Чтобы настроить сетевое подключение на Raspberry Pi, обратитесь к разделу «Настройка сети для Raspberry Pi», опубликованному в выпуске за май 2013 года. После этого вы можете либо подключить клавиатуру и дисплей к Raspberry Pi и начать следить за установкой с помощью терминала Lx, либо вы можете получить удаленный доступ к Raspberry Pi с помощью SSH и выполнить все команды напрямую.
После входа в Raspberry Pi загрузите модуль DS18B20 и подготовьте данные о температуре для просмотра, используя команды:
$ sudo modprobe w1-gpio $ sudo modprobe w1-therm
Для считывания температуры с помощью прикладной программы вам понадобится идентификационный номер модуля DS18B20. Вы можете получить идентификатор с помощью команды, указанной ниже, как показано на рис. 5:
$ ls /sys/bus/w1/devices/
Идентификатор в нашем case — 28-000004ee2c8a. В вашем case он будет похожим, но определенно другим. Запомните этот идентификатор, поскольку он будет использоваться в прикладной программе для получения данных о температуре.
Рис. 4. Загрузка модуля DS18B20Рис. 5: Идентификатор модуля датчика температуры
Прикладная программа написана с использованием языка программирования Python. Загрузите исходный код (iptalk1.py и iptalk2.py).
Создайте новый файл с именем iptalk1.py и откройте его в редакторе nano, используя указанную ниже команду, как показано на рис. 6:
Рис. 6. Создание файла iptalk1.py
$ sudo nano iptalk1.py
Скопируйте исходный код из загруженного файла iptalk1.py в этот новый файл, созданный в Raspberry Pi. Сохраните его, нажав Ctrl+O, а затем выйдите, нажав Ctrl+X.
Аналогично создайте еще один файл с именем iptalk2.py в том же каталоге и откройте его в редакторе nano, используя указанную ниже команду, как показано на рис. 7:
Рис. 7. Создание файла iptalk2.py
$ sudo nano iptalk2.py
Скопируйте исходный код из загруженного файла iptalk2.py в этот новый файл, созданный в Raspberry Pi. В этом коде вам нужно будет внести изменения в идентификатор температурного модуля, указанный на рис. 5. Измените идентификатор в разделе, указанном ниже, сохраните файл, используя Ctrl+O, а затем выйдите, нажав Ctrl+X.
попробуйте:
while Верно: tfile = open(“/sys/bus/w1/ devices/28-0000049582dd/w1_slave")
text = tfile.read()
tfile.close()
вторая строка = text.split(“\n”)[1]
температурные данные = вторая строка. split(» «)[9]
температура = float(temperaturedata[2:])
температура = температура / 1000
temp = ‘Tmp:’+str(temperature)+’ C’
Обратите внимание, что отступы скопированного кода в двух файлах выше должны быть одинаковыми. Python чувствителен к отступам.
Наконец, запустите исходный код с помощью команды ниже, как показано на рис. 8, и вы увидите экран LCD, показанный на рис. 1:
Рис. 8. Запуск кода Python
$ sudo python iptalk2.py
Чтобы он работал при каждой загрузке, откройте файл «/etc/rc.local» в редакторе nano, как показано на рис. 9. Затем добавьте в начало строку «sudo python /where-your-file-is/iptalk2.py».
Рис. 9. Редактирование файла rc.local
Теперь каждый раз, когда вы загружаете компьютер Raspberry Pi, программа будет выполняться автоматически, и LCD будет отображать всю информацию, как показано на рис. 1. Коснитесь датчика температуры и увидите, как температура на LCD увеличивается.
Автор является заядлым пользователем программного обеспечения с открытым исходным кодом. По профессии он является экспертом в области теплоэнергетики и работает дополнительным генеральным менеджером в NTPC Limited.
Этот проект был впервые опубликован 29 декабря 2014 г. и обновлен 20 мая 2020 г.
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба