Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Я недавно вставал рано, много раз на улице все еще темно, но я не хочу включать свет, чтобы повлиять на отдых моей жены, поэтому я подумал о покупке ночника. Я искал много магазинов ночников, но не думаю, что это мне нужно, но я увидел ночник под названием DockerPi в магазине на Amazon, которым управляет Raspberry Pi. Это очень хорошо и может предоставить функции DIY. Я прочитал вики-описание этого продукта, им можно напрямую управлять из командной строки, как программист, использующий систему Linux, я думаю, что это очень круто, поэтому я купил его и начал этот проект.
Шаг 1. Шаг 1. Подготовьте все необходимое
После распаковки я снимаю защитную крышку с акриловой пластины, а затем прикрепляю этот модуль DockerPi к моему Raspberry Pi с помощью винтов и медной палки. это зафиксировано стабильно.
Шаг 2: Шаг 2: прошейте последний образ ОС Rasbpian на SD-карту
Я загружаю последний образ Raspbian по адресу:
а затем прошейте изображение с помощью программного обеспечения под названием: etcher
вы можете скачать здесь:
разархивируйте файл образа из пакета gzip, и вы получите файл *.img, выберите образ и выберите диск, на котором ваш компьютер распознал карту TF, просто нажмите «Flash» и подождите несколько минут, это будет сделано.
а затем извлеките карту TF, вставьте ее в Raspberry Pi и включите.
Шаг 3: Шаг 3: Включите функцию I2C из Raspi-config
Когда Raspberry pi запустился, я открыл терминал и набрал эту команду: sudo raspi-config
и перешел в «Параметры интерфейса», выбрал «I2C» и включил его. почему я должен использовать эту команду?
Поскольку модуль ночника DockerPi использует протокол I2C для связи с Raspberry Pi.
Шаг 4: Шаг 4: вставьте акриловую панель в прорезь
Он очень хорошо подходит для слота, и на картинке видно, что акриловая панель может оставаться в слоте.
Следующий шаг - запуск тестового кода, чтобы проверить, правильно ли он работает.
Я загрузил пример кода с github, набрав эту команду в терминале на raspberry Pi.
cd ~
git clone
cd dockerpi / Nightlight /
sudo./Nightligh.sh
а затем мой ночник включается и светится.
Я прочитал инструкцию на его вики и нашел всю диаграмму регистров светодиодов.
Следующим шагом будет самая забавная часть, я хочу добавить инфракрасный пироэлектрический датчик человеческого тела, пусть он обнаружит, что я загорелся, чтобы зажечь этот маленький ночник ~
Шаг 5: Шаг 5: Настройка инфракрасного пироэлектрического датчика
Здесь мы используем датчик движения PIR. PIR означает пассивный инфракрасный порт. Этот датчик движения состоит из линзы Френеля, инфракрасного детектора и вспомогательной схемы обнаружения. Линза на датчике фокусирует любое инфракрасное излучение, присутствующее вокруг нее, в направлении инфракрасного датчика. Наши тела генерируют инфракрасное тепло, и в результате это тепло улавливается датчиком движения. Датчик выдает сигнал 5 В в течение одной минуты, как только обнаруживает присутствие человека. Он предлагает ориентировочную дальность обнаружения около 6–7 метров и отличается высокой чувствительностью. Когда датчик движения PIR обнаруживает человека, он выдает сигнал 5 В на Raspberry Pi через его GPIO, и мы определяем, что Raspberry Pi должен делать, когда он обнаруживает злоумышленника с помощью кода Python. Здесь мы просто печатаем «Злоумышленник обнаружен».
После того, как вы настроили свой Raspberry Pi, мы можем начать возиться с его контактами GPIO. Здесь мы попробуем мигать светодиодом с помощью скрипта Python. Скопируйте и вставьте следующий код в свой Raspberry Pi. Вы можете сделать это, открыв текстовый редактор «Блокнот» на Raspberry Pi, скопировав в него этот код и сохранив его как файл Python: nightlight.py:
#import libararies.
импортировать RPi. GPIO как GPIO
время импорта
импортировать smbus
DEVICE_BUS = 1
DEVICE_ADDR = 0x15
GPIO.setwarnings (Ложь)
GPIO.setmode (GPIO. BOARD)
GPIO.setup (11, GPIO. IN) # Считать вывод с датчика движения PIR
bus = smbus. SMBus (DEVICE_BUS) # экземпляр smbus для устройства i2c, означает ночник.
в то время как True:
пытаться:
i = GPIO.вход (11)
if i == 0: # Когда выходной сигнал датчика движения НИЗКИЙ
print ("Злоумышленникам запрещено", i)
для i в диапазоне (1, 25):
bus.write_byte_data (DEVICE_ADDR, i, 0x00) # Выключить светодиод
time.sleep (0,2)
time.sleep (0,1)
elif i == 1: # Когда выходной сигнал датчика движения ВЫСОКИЙ
print («Злоумышленник обнаружен», i)
для i в диапазоне (1, 25):
bus.write_byte_data (DEVICE_ADDR, i, 0xFF) # Выключить светодиод
time.sleep (0,2)
time.sleep (0,1)
кроме KeyboardInterrupt как e:
print ("Выйти из цикла")
а затем сохраните его и запустите во время загрузки raspberry pi.
sudo vim.tiny /etc/rc.local
и добавьте эту строку перед выходом 0:
sudo python /home/pi/nightlight.py &
а затем сохраните его и перезагрузите Pi, он будет работать правильно …
Спасибо за просмотр ~