raspberry, куда, подключить, вентилятор

Домашний сервер на Raspberry Pi 4 с NVMe, RTC, UPS в DIY корпусе!

ОСТОРОЖНО: Из моего опыта следует что, если ставить ОС на USB и грузить с него Raspberry, то случайное выключение питания очень стремительно убивает USB диск, на 2ой-3ий раз. Так у меня погибли 1Gb noname mSATA на SupTronics X856 v1.0 256Gb KingSpec M.2 NVMe на Blueendless SSD M2 PCIe по неведомой причине через 30-60 часов работы X725 выключается питание, и начинают разряжаться батареи, хотя питание есть!

Что необходимо домашнему серверу — отказоустойчивое питание, большой резвый диск, не плохое остывание, небольшой размер, мобильность ну чтоб поставить всюду где есть хотябы питание! Это и буду делать — питание через X725 с аккумуляторами 18650, диск на NVMe сверхизбыточно резвый для USB3, остывание лучше не куда! И стильный маленький корпус — для Raspberry pi нет универсальных корпусов, под всю начинку, но можно взять стандартный и доработать его!

PC Raspberry Pi 4 Посмотрю что у меня за модель cat /sys/firmware/devicetree/base/model

Часы для Raspberry Pi У меня были довольно старые DS3231 RTC В часах стоит аккумуляторная батарейка LIR2032 должна бы под заряжаться, но не знаю как это проверить

UPS для Raspberry Pi У меня вот такой SupTronics X725 Power Management Board, не покупайте его, есть уже более новая молель, а у этой из заявленных функций работает только электропитание и выключение — включится может от любого прикосновения. Вот тут я его более подробно тестировал X725 Power Management Board так себе шильд под аккумуляторы 18650 для Raspberry Pi!

Блок питания Вот такой, подключается к x725 разъем круглый

USB диск для Raspberry Pi У меня в начале был mSATA в шильде SupTronics X856 и он отлично работал в тестовой сборке, но потом вдруг скорость на нем упала в 100 раз, стал выключаться…

Срочная замена Blueendless SSD M2 PCIe NVMe/NGFF Type C USB 3,1 и 256Gb KingSpec M.2 NVMe SSD NE Series 2280 PCIE Gen3x4 их тоже подробно тестировал во тут Выбираем USB диск для Raspberry Pi, под загрузку OS, на mSATA или NVMe!

Надеюсь что будет плюс, заработает полностью Wi-Fi так как SupTronics X856 вносит помехи в работу Wi-Fi на Raspberry Pi. С ним 2,4Mgz полностью не работает, не возможно подключиться к AP, а 5Mhz может частично работать.

В металлической части корпуса сверлю отверстия под RPI и шильд. Пожалел, что не подвинул их ближе к передней крышке, эти пару миллиметров очень бы помогли у задней крышки! Удобно сверлить отверстия аккумуляторным шуруповертом с режимом сверла, надо только помнить что он в обе стороны умеет вращать сверло…и так и так можно просверлить отверстия, но если сверло вращается по часов то сверлить гораздо проще и быстрее! Перед сверлением я накернил отверстия, надо это делать с осторожностью а то металла сразу прогибается. Места расположения портов продуманы с учетом, внутренностей и кабелей. Кабеля USB можно засунуть под x725, под RPI можно было засунуть USB NVMe, но буквально не хватает пару миллиметров, Connect USB очень длинный!

На пластмассовой крышке есть разметка внутри, это помогает проделывать отверстия под порты. Использовал шуруповерт и дремель с фрезой.

Разъем питания припаял к кабелю питания. В центре плюс красный, с боку земля черный — подсказка есть на блоке питания. На кабелях USB отрезал на коннекторах защиту от сгибания, а то не влезали

x725 и RPI соединил обычными ардуиновскими кабелями, первые 7 пинов(со стороны питания два ряда). Пару раз ошибался и кабеля у меня плавились… но RPI и x725(она и до этого фигово работала) выжили! К x725 подключаю часы DS3231 RTC, как раз в перекинутые на ней пины с RPI. Переднею панель присоединяю в последний момент, кнопку подключаю к соответствующему рзьему на x725

Внутри жуткая мешанина из кабелей, но все влезло! Сверху лежит USB NVMe. Вентилятор CPU перевернул, чтобы работал на выдув, на корупсе как раз рядом отверстия! На 3.3 он достаточно слабо, но дует, зато тихо!

Снаружи все прилично и красиво — специально для малинки брал красный корпус! Для включения нажимаем и отпускаем единственную кнопку! Для выключения нажимаем её же и держим 3-4 секунд, когда она начнет мигать, значит запущен процесс выключения. Если держать долго, принудительно выключится, если 1-2 секунлды то перезашрузится, все это работает только е сли тсаивть скрипты для x725.

Первичная установка на SD карту Надо ставить Raspberry Pi OS (32-bit) Lite (ранее известный как Raspbian) в этой версии нет Desktop окружения. Качаю последнею версию тут www.raspberrypi.org/downloads/raspbian/ А вот тут качаю установщик https://www.raspberrypi.org/downloads/

Чтобы ssh работал, на карте в BOOT разделе надо сделать пустой файл с именем ssh и оно после этого будет работать. После этого можно карту вставлять в малинку, подключать ethernet кабель, включать и смотреть какой малинка получила IP я посмотрел на роутере, можно и на малинку руками зайти и посмотреть коммандой ifconfig Имя для ssh: pi и пароль: raspberry

Подключение и загрузка с NVMe по USB Подключаюсь и гружусь пока с SD карты. Смотрим какая сейчас прошивка vcgencmd bootloader_version

Не последняя — обновляемся sudo apt update sudo apt full-upgrade sudo rpi-eeprom-update sudo rpi-eeprom-update.a

Можно и вручную, но только после апдейта всего. Должна появится новая прошивка и надо обновить её, для этого меняем в файле sudo vi /etc/default/rpi-eeprom-update слово critical на stable

смотрим какие прошивки есть в ls /lib/firmware/raspberrypi/bootloader/stable/

ставим последную pieeprom-2020-09-03.bin sudo rpi-eeprom-update.d.f /lib/firmware/raspberrypi/bootloader/stable/pieeprom-2020-09-03.bin

перезагружаемся смотрим vcgencmd bootloader_version

NVMe у нас с диском подключен и определятся как sda Как нибудь скачиваем и кладем на малинку последний образ 2020-08-20-raspios-buster-armhf-lite.zip на сайте нет прямой ссылки, так что как-нибудь! unzip 2020-08-20-raspios-buster-armhf-lite.zip

Пишем этот образ на NVMe sudo dd bs=4M if=2020-08-20-raspios-buster-armhf-lite.img of=/dev/sda conv=fsync

Монтируем первый раздел в папку например sudo mkdir /mnt/USB sudo mount /dev/sda1 /mnt/USB тут создаем файл для ssh sudo touch /mnt/USB/ssh

После этого выключаем малинку, вынимаем SD карту и включаемся! Все чудесным образом грузится

Делаем второй раздел и шифруем его Если вам второй раздел не нужен, то и не делайте его! Мне он нужен, чтобы хранить там все данные и вдруг не забить весь диск ими. Так же я буду его шифровать — потому что там будет личная информация, бекапы, пароли и пр.

Опять грузимся с SD. Как говорится операционна система Linux эта файлы — и нам надо всего лишь скопировать все файлы с основного раздела чтобы сделать копию или перенести на новый диск всю ОС!

делаю нужные папки sudo mkdir /mnt/nvme sudo mkdir /home/pi/backup/

у меня нужный раздел определился как sda2 монтирую его sudo mount /dev/sda2 /mnt/nvme и копирую все файлы sudo cp.rp /mnt/nvme/ /home/pi/backup/ sudo umount /dev/sda2

ВАЖНО: Копировать надо не просто а с сохоранением всех прав и атрибутов, пожтому в команде p

Смотрю что у нас есть по дискам sudo fdisk.lu Информация по NVMe

Первый раздел не трогаем, а вот sda2 удаляем и на нем будем делать два раздела!

Запускаем fdisk sudo fdisk /dev/sda Странная штуковина но её нельзя использовать командами, только интерактивны режим чтобы удалить второй раздел нажимаем с enter каждый раз d 2 w enter

Запускаем sudo fdisk /dev/sda чтобы создать новый второй раздел, надо знать где кончается первый это видно в sudo fdisk.lu обычно fdisk сам должен это понять, но вот у меня нет. Добавлем к этой цифре один и 532480 будет началом второго раздела, а 64013096 концом это означает что размер этого раздела будет окло 30GB n p 2 532480 64013096 сомртрим

И делаем третий раздел, тут также по цифрам, конец только не указываем использум все что есть n p 3 64013097 enter Чтобы применить иззименения надо еще w

Делаем фйловую систему sudo mkfs.t ext4 /dev/sda2 надо также сразу сделать файловую систему на третем разделе, а то малинка псле загрузки постарается расшириться и занять её тоже(как мне кажется) sudo mkfs.t ext4 /dev/sda3

READ  Как выключить батарею отопления куда крутить

Монотирую sudo mount /dev/sda2 /mnt/nvme и копирую все файлы обратно sudo cp.rp /home/pi/backup/ /mnt/nvme/

Выключаю, вынимаю SD карту, включаю и теперь два раздела!

Безопасное хранение данных Можно зашифровать весь диск, но тогда надо вводить на загрузке всегда пароль. Неудобно — так что я буду шифровать только один раздел. Это позволить защитить данные на нем от прямого чтения — если нет шифрования в любой момент можно подключить диск к другому PC и прочитать все данные. Тут тоже надо будет вводит пароль, но в момент его подключения, а не на загрузке.

Обновляемся если не обновлялись sudo apt update sudo apt full-upgrade

Устанавливаю то что нужно для шифрования sudo apt-get install cryptsetup sudo modprobe dm-crypt sha256 aes

Делаю шифро раздел, тут надо будет придумать пароль sudo cryptsetup.-verify-passphrase luksFormat /dev/sda3.c aes.s 256.h sha256 Инициализирую шифро раздел, тут надо будет ввести пароль sudo cryptsetup luksOpen /dev/sda3 mYdata

И создаю файловую систему, но не просто так а сразу с файловой таблицей. А то если просто создавать, она будет сосздана при певром монтирование — в случае с шифро разделом это создает большую непонятную нагрузку на систему, так что сразу пусть делает! sudo mkfs.t ext4.E lazy_itable_init=0,lazy_journal_init=0 /dev/mapper/mYdata

И монтирую sudo mkdir /mnt/nvme sudo mount /dev/mapper/mYdata /mnt/nvme

Шифрование конечно нагружает процессор и скорость записи падает.

Я замераял скрость создания файла sudo dd if=/dev/zero of=test.file count=10000 bs=1048576 Скорости были от 200 до 70 МБ в секунду, мне эти результаты не понятны…

На Raspberry Pi надо включить I2C все делают через меню, я сделаю через консоль.

Надо отредактировать файл sudo vi /boot/config.txt раскоментить строки

А так же в файл sudo vi /etc/modules добавить

И устанавливаем sudo apt-get install.y python-smbus i2c-tools

wget https://raw.githubusercontent.com/suptronics/x750_x725-script/master/x750.sh sudo bash x750.sh printf «%s\n» «alias x750off=’sudo x750shutdown.sh'»

Он устанавливает скрипты sudo python /home/pi/x750ups.py этот показывает напряжение и процент зарядки, результат выводит постоянно в консоль

А это команда жестко выключает малинку и x725 x750off из консоли срабатывает из скриптов нет, но можно вот так выключить sudo /usr/local/bin/x750shutdown.sh

мне нужно просто один раз получает значение напряжения, так что я убираю все лишнее создаю срипт sudo vi /home/pi/x725bv.py

И баш срикпт, который будет выключать все когда напряжение батарей станет меньше 3,5 это около двух часов работы малинки под нагрузкой vi /home/pi/batteryoff.sh с кодом

Это будет жесткое октлючение… не самый удачный авриант… с кнопки x725 по другому отключает, по хорошему!

Чтобы он запускался сам раз в минуту добавляем в sudo crontab.e строку

Статический IP в файле раскоменчиваем строки sudo vi /etc/dhcpcd.conf и пишем свое, свободный IP вашей подсети(не из DHCP диапазона), и роутер и DNS

Подключаемся к Wi-Fi Разблокируем Wi-Fi sudo rfkill unblock 0

Добавляем в файл sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

вот это со своим именем сети и паролем

Перезапускаем Wi-Fi wpa_cli.i wlan0 reconfigure И секундч через 20, видим подключение ifconfig

Подключаемся часы ds3231 Добавдляе в sudo vi /boot/config.txt строку

Удалеям ненастоящие часы sudo apt-get purge fake-hwclock

Конфигурируем время sudo dpkg-reconfigure tzdata

Смотрю какое сейчас время на часах sudo hwclock.r

Та можно записать в часы системное время sudo hwclock.w

Чтобы система брала время из часов на загрузке добавляю в sudo vi /etc/rc.local перед exit 0 добавить

это должно писать из RTC время в систему на загрузке

raspberry, куда, подключить, вентилятор

Проверяю, отключаю синхронизацию времени sudo systemctl disable systemd-timesyncd

Выключаю малинку, и включаю, время актуальное сработало!

включаю обратно синхранизацию времени, для ней как я понимаю нужен интернет sudo systemctl enable systemd-timesyncd

Ну вот и все, получилось длинно, а ведь еще будет система мониторинга статуса сервера с информрованием… потом…

UPD: Программное отключение Raspberry Pi и X725 Power Management Board Проблема, с X725 Power Management Board идет срикпт который отключает её саму, но не Raspberry Pi!

После устноавки сриптом от производителя он появляется тут /usr/local/bin/x750shutdown.sh он посылает 1 на 18 пин и X725 выключается, обрывая питание Raspberry Pi, что не очень хорошо… что очень плохо!

Второй скрипт /etc/x750pwr.sh слушает нажатие кнопки на пин 4, и посылает на пин 17 сигнал 1 — так что когда кнопка нажимается достаточно долго, запускает отключение Raspberry Pi, а x725 отключается когда пропадает сигнал на 17 что значит что малинка выключалась — это супер правильное выключение! Проблема в том что нельзя послать на пин 4 сигнал 1 с другого пина малинки чтобы запустить это отключение программно(малинка отключает на X725 нет)… надо полностью как-то нажать кнопку, это можно сделать транзистором!

Беру транзистор 2N3904 подсоединяю по схеме В транзисторах путаюсь так что смотрите как на картинке. Красный провод от транзистора подпаиваю к красному на кнопке, у самой кнопки а не как на схеме. На малинке транзистор подключен к пин 27 и земле, на схеме эти пины перекинуты на X725.

И надо нажимать кнопку всего от 3 до 6 секунд, если нажимать 8 должно жестко выключится. Поэтому делаем скрипт sudo vi bshut.sh с кодом

И сработывает нормальное выключение как с кнопки!

Raspberry pi 4 куда подключить вентилятор

Не так давно был представлен новый одноплатный компьютер Raspberry Pi 4, который отличается весьма высокой производительностью. По словам создателей системы, она вполне может обеспечить большинству пользователей уровень производительности как у обычного настольного PC. Однако вместе с большой мощностью приходит и большой нагрев. И энтузиаст Джефф Гирлинг (Jeff Geerling) рассказал, как можно довольно легко с ним справиться.

Обычно у одноплатных компьютеров наиболее горячим элементом является однокристальная платформа. Однако в случае с Raspberry Pi 4 греется не только главный чип, но и некоторые другие части, в том числе и силовые элементы подсистемы питания. На представленном ниже тепловом изображении видно, как нагревается плата. Причём такая картина наблюдается после пяти минут работы без нагрузки.

Заметим, что центральный тёмный квадрат является процессором, однако его металлическая крышка достаточно эффективно рассеивает инфракрасное излучение по сторонам. Белые пятна в левом нижнем углу — цепи питания, идущие от разъёма USB Type-C. А небольшое красное пятно по правой стороне — USB-контроллер, который под нагрузкой «раскаляется» до белого цвета, соответствующего температурам 60–70 °C.

В итоге, если активно использовать Raspberry Pi 4, нагружая его различными тяжёлыми задачами, то спустя некоторое время температура процессора и других элементом дойдёт до 80 °C и выше. По словам Джеффа Гирлинга, понижение тактовой частоты (троттлинг) происходит уже менее чем через 10 минут работы Raspberry Pi 4 под нагрузкой.

Нагрев усиливается при использовании фирменного корпуса для Raspberry Pi 4, который представляет собой закрытую пластиковую коробку без какой-либо вентиляции. Поэтому Джефф решил доработать этот корпус, проделав в нём отверстие и снабдив его верхнюю крышку вентилятором. Использовался вентилятор Pi Fan, который можно напрямую подключить к контактам GPIO.

Температуры процессора без вентилятора и с вентилятором

После установки вентилятора при часовом стресс-тесте процессора Raspberry Pi 4, его температура держалась на уровне 60 °C и он даже не пытался сбрасывать частоты. Правда есть один недостаток: уровень шума вентилятора составляет примерно 50 дБА на расстоянии 30 см. Но, как отметил Джефф, без вентилятора полноценно использовать Raspberry Pi 4 в фирменном корпусе не получится, уж очень он сильно греется.

Альтернативой здесь могут стать металлические корпуса от сторонних производителей, которые пассивно отводят тепло. Заметим, что ранее для новой «малины» был представлен полноценный башенный кулер ICE Tower с алюминиевым радиатором, тепловой трубкой и вентилятором.

Измерение температуры

Пойдем дальше и проведем углубленное исследование этого вопроса, чтобы определить насколько необходимо активное охлаждение или в большинстве приложений можно «обойтись» только пассивным охлаждением. Для мониторинга и записи температуры, а также текущей тактовой частоты процессора в файл используем библиотеку Python vcgencmd.

#!/usr/bin/env python3 import sys import OS import time import vcgencmd as vc def main: start_time = time.time fb = open («/home/pi/readings.txt»,»a») fb.write(«Elapsed Time (s),Temperature (°C),Clock Speed (MHz),Voltage Core (V)») while True : clock = int(vc.measure_clock(‘arm’) / 1000000 ) string = ‘ %.0f. %s. %s. %s \n’ % ((time.time. start_time),vc.measure_temp,clock,vc.measure_volts(‘core’)) print (string, end =») fb.write(string) time.sleep( 1 ) if name ‘main’: main

Пассивное и активное охлаждение для терморегуляции Raspberry Pi

При выпуске каждой новой платы Raspberry Pi появляются статьи о том, что стоит внимательно отнестись к контролю температуры новой платы. Но на этот раз, после выпуска Raspberry Pi 4, похоже, если процессор находится под большой нагрузкой в течение продолжительных периодов времени, обойтись без добавления какого-то пассивного или активного охлаждения не получится для предотвращения его термического дросселирования (троттлинга).

Снижение производительности процессора при нагреве наблюдается многими респондентами при выполнении задач, требующих большой нагрузки на CPU Paspberry Pi 4.

READ  В какую духовку ставить дрожжевое тесто

Если смотреть на тесты производительности Raspberry Pi 4, сделанные Gareth Halfacree, мы видим необычно сильный нагрев платы. Из этих тестов можно сделать следующее заключение «. Конечно, эту плату можно использовать без дополнительного охлаждения, но при решении тяжелых задач имеет смысл добавить активное охлаждение, чтобы избежать термического дросселирования».

Работая под постоянной высокой нагрузкой, например, решая задачи машинного обучения, процессор микрокомпьютера Raspberry Pi 4 будет регулярно пропускать рабочие такты из-за перегрева. При больших нагрузках термическое дросселирование может значительно увеличить время выполнения задач. Например, в описанном выше примере, общее время расчетов сократилось на 20% при наличии пассивного охлаждения и на 30% при использовании активного охлаждения по сравнению с общим временем выполнения в режиме без охлаждения, когда ЦП подвергался троттлингу.

Пассивного охлаждения недостаточно для тяжелых нагрузок продолжительностью более

200 секунд, для таких задач рекомендуется активное охлаждение для предотвращения теплового дросселирования. Естественно, при использовании Raspberry Pi 4 внутри корпуса, ситуация ухудшится, и дополнительное охлаждение потребуется значительно ранее.

Дополнение: несколько тепловизионных изображений от Gareth Halfacree, иллюстрирующих разницу между активным и пассивным охлаждением.

Finishing off the week’s work with a little thermal imaging: a stock #RaspberryPi4 after a ten-minute CPU burn; the same Raspberry Pi 4 with a @pimoroni heatsink; and again with a @pimoroni Fan Shim. Biiiig difference, there! piccom/OrDj62qJlX

Полученные результаты

Были рассмотрены четыре режима терморегулирования:

  • нет охлаждения
  • только пассивное охлаждение
  • постоянное активное охлаждение
  • управляемое активное охлаждение

Raspberry Pi 4 находилась на открытом воздухе на лабораторном столе.

При использовании компьютера без охлаждения температура без нагрузки примерно 61°C. При выполнении задачи температура повышается до максимальной. примерно 85°C, что приводит к устойчивому термическому троттлингу после того, как температура процессора поднимается выше 81°C. Время инференции увеличивается в среднем на 119,1 мс для каждой итерации. Общее время выполнения задачи составило чуть менее 20 минут.

При добавлении пассивного охлаждении, используя радиатор размером 20 × 20 мм для процессора, мы видим снижение температуры холостого хода на 5°C, т.е. примерно до 56°C и падение максимальной температуры во время выполнения задач на 2°C (до 83°С). Кроме того, выход на максимальную температуру занимает больше времени. Таким образом, полная вычислительная мощность доступна более продолжительное время, и время выполнения программы уменьшается примерно на 200 секунд по сравнению с работой в режиме без охлаждения, а среднее время одной итерации снижается до 99,4 мс. Общее время выполнения расчетов составило примерно 16,5 минут.

При добавлении постоянного активного охлаждения с помощью вентилятора, закрепленного поверх радиатора (питание 40-мм вентилятора подключается к выводам 5 В и земля разъема GPIO, см. рисунок выше), мы наблюдаем значительное снижение температуры – при простое она упала до 36°C, а максимальная температура составила 52°C.

Тюнинг активной системы охлаждения. Raspberry Pi 3: GPIO (#3)

В этом случае процессор не переходит в режим термического дросселирования, и инференция выполняется еще на 200 секунд быстрее, а среднее время одной итерации уменьшается до 83,8 мс. Общее время выполнения расчетов оказалось менее 14 минут.

Недостаток такого решения. вентилятор постоянно включен, что создает дополнительный шум и расходует энергию. Эти проблемы можно решить с помощью активного управления охлаждением. В этом случае, кроме подключения питания вентилятора к шинам 5 В и GND, нужно дополнительно подключить провод управления вентилятором к контакту BCM18 на разъеме GPIO.

Воспользуемся библиотекой GPIO Zero для управления вентилятором: его включения при температуре процессора, превышающей 75°C, и отключения – при падении температуры до 70°C.

#!/usr/bin/env python3 import sys import OS import time import vcgencmd as vc from gpiozero import OutputDevice def main : fan = OutputDevice( 18 ) while True : temp = int (vc.measure_temp) print (temp) if temp = 75 : fan.on print («fan.on») elif temp 70 : fan.off print («fan.off») time.sleep( 1 ) if name ‘ main ‘: main

В этом режиме охлаждения начальное повышение температуры во время инференции соответствует кривой пассивного охлаждения до достижения температуры включения вентилятора 75°C. Далее вентилятор начинает поддерживать температуру в заданных пределах, при этом никакого теплового дросселирования не наблюдается. Программа завершилась за 14 минут со средним временем одной итерации 84,1 мс.

Как видим, разница между общим временем работы, наблюдаемым при использовании активного и управляемого охлаждения, находится в пределах небольшой погрешности.

Использование Pimoroni Fan SHIM

Еще несколько результатов тестов с использованием специализированного вентилятора для Raspberry Pi 4 Pimoroni Fan SHIM.

Этот вентилятор не предполагает использования пассивного радиатора, поэтому для дальнейших тестов радиатор пришлось снять. Для запуска вентилятора нужно выполнить следующие команды:

git clone https://github.com/pimoroni/fanshim-python cd fanshim-python sudo./install.sh cd examples sudo./install-service.sh.-threshold 75.-hysteresis 5.-delay 2 sudo reboot

После установки программного обеспечения Fan SHIM и запуска демона с максимальной установленной температурой 75°C, был запущен тот же тест, что и ранее.

Так как в системе отсутствует пассивное охлаждение, на начальном этапе температура быстро повышается, и включается вентилятор. Вентилятор пытается поддержать температуру в заданных пределах, но из-за отсутствия радиатора и меньшего размера вентилятора всплески температуры несколько больше, а интервалы между включениями вентилятора меньше.

В FAN SHIM используется 30-мм вентилятор в отличие от 40-мм вентилятора в сочетании с радиатором 20×20 мм, который был использован ранее. В обоих случаях удается избежать теплового дросселирования. Процесс завершается со средним временем одной итерации 84,9 мс и полным временем выполнения 14,1 минут, т.е. практически не отличается от результатов, достигнутых при использовании альтернативного вентилятора.

Подключение к PiZeroW с Raspbian Stretch Lite, без дополнительных переходников и монитора

В общем на днях попал мне в руки Raspberry Pi Zero W. Но сложность заключалась в том, что он имеет только микро порты для подключения, а переходников для них у меня не было. И это затрудняло его настройку в отличии от того же Raspbery Pi 3

Конечно же некоторые адаптеры нам все таки понадобятся, но их просто достать. В частности microUSB шнур можно взять от телефона a SD адаптер на microSD карты от фотоаппарата.

Для того чтоб подключиться я нашел два способа. Первый это по WI-FI. Все что нужно это настроить на нем WI-FI и SSH. Но сделать это нужно только с помощью SD карты. И так как из компьютеров у меня был только MacBook, доступа к linux разделу у меня не было (вариант с установкой ext4fuse я не рассматривал). Оставался только раздел /boot который был в FAT32 и чудесно работал с MacOS. Поэтому все что мы будем делать будет происходить в этом разделе.

Итак первое что нам нужно это включить SSH доступ к малинке. Для этого нужно создать файл ssh без какого либо содержания и расширения

Во вторых нам нужно как-то настроить WI-FI подключение при запуске Для этого нужно вначале получить хеш пароля для WI-FI. И тут я столкнулся с новой проблемой, как это сделать в MacOS. Так как до этого приходилось настраивать подключение за наличием какой-то Linux машины. Там это делается так

Ну а для MacOs сгенерировать psk я не нашел как. Поэтому пришлось временно указать пароль в открытом виде. Либо настроить WI-FI позже(об этом в конце статьи)

Таким образом мы настраиваем все WI-FI сети и результат сохраняем в файл wpa_supplicant.conf

Ну вот собственно и все. Осталось вставить карточку в RaspberryPi, подключить питание и подождать в среднем

90 секунд пока он загрузится и поднимет WI-FI соединение.

Чтоб найти IP малинки в локальной сети, можно воспользоваться командой

Перегрев Raspberry Pi 4. Охладим малышку!

либо посмотреть подключенных клиентов у WI-FI роутера. Дальше остается только подключиться через SSH к найденному IP. (По умолчанию если кто вдруг не знал то для raspbian логин и пароль pi:raspberry)

Но существует еще один способ подключиться к Raspberry. Как многие заметили на плате есть еще один USB разъем помимо питания, вот он нам и понадобится. Единственное на что обращу внимание так это то что USB кабель должен быть полностью распаян (а не как у меня было, только крайние два контакта с питанием, почему я вначале и прибегнул к WI-FI подключению).

Суть второго способа заключается в том чтоб подключить USB кабель к другому разъему (на плате они подписаны USB и PWR_IN), кстати в таком случае плата будет запитана от него.

Применяем SSH на миникомпьютере Raspberry Pi

В последнее время получил распространение отдельный класс устройств, предназначенный целям управления оборудованием, использования в качестве малых рабочих станций или создания простых серверов. Речь идет об компьютерах на одной плате, таких как Raspberry Pi. Несмотря на свои размеры применять их можно и в роли контроллера аппаратуры, и в качестве небольшого мультимедийного, почтового, файлового или web-сервера, не считая уже случаев работы тонкими клиентами. Остается только вопрос управления одноплатником. Можно конечно отдавать команды непосредственно в консоль или контролировать рабочий стол используя монитор, клавиатуру и мышь. Но, каждый раз подключение для каких-либо действий дополнительного оборудования создает излишние затраты времени и труда. Выход есть и имя ему Secure shell. Изначальный сетевой протокол, используемый для доступа к консоли, удаленной.NIX подобной системы, со временем резвившейся в удобное средство управления и файловой передачи ОС Linux.

READ  Как закатать яблочный сок из соковыжималки

Все приведенные далее сведения в основном будет относиться к Raspberry PI 3 и более старшим моделям одноплатников одноименной фирмы.

Что еще

Отдельно хотелось бы рассмотреть случай подключенных пользователей по SSH с возможностью сжатия трафика. В Linux и MacOS для запуска режима компрессии используется модификатор команды с опцией «-C». Соответственно вызов программы доступа приобретает вид: ssh.C Работает метод сжатия не только в случаях удаленного контроля консоли по SSH, но и отправки файлов с использованием протокола Secure shell. Здесь применяется команда scp, входящая в общий пакет программ удаленного контроля. Формат со сжатием, для копирования файла из малинки: scp.C pi@ : /куда/положить/файл Ну или с использование ssh обратно, на Raspberry PI: spc.C pi@ :/куда/положить/файл

Некоторые замечания

После настройки доступа по Secure shell рекомендуется озаботиться безопасностью подключения, даже в том случае, если малинка будет использоваться в качестве не присоединяемого к internet оборудования. Как говорится — в безопасности нужно предусмотреть все. Рано или поздно, возможно будет сделан глобальный выход в сеть. А уж там зависит организация безопасного доступа от элементарной забывчивости. Можно попросту поленится или «забегаться» и не установить пароль для логина или sudo, оставив все по умолчанию. Соответственно, другими словами, предоставив в собственное распоряжение потенциального злоумышленника, вычислительные мощности Raspberry PI работающего в локальной сети.

Основные рекомендации по безопасности, все команды в отношении которых выполняются в консоли малинки:

  • Установка пароля root. Делается одним из двух методов, через sudo raspi-config с выбором второго пункта программы и действиями в рамках инструкций на экране. Другой способ проще — в командной строке набирается sudo passwd root с последующим вводом пароля и его подтверждения, устанавливаемого в строках «Enter new UNIX password» и «Retype new UNIX password»:Последняя приведенная на скриншоте команда «sudo passwd — unlock root» разблокирует учетную запись администратора, которая в свою очередь еще пригодится впоследствии.
  • Ограничение использования sudo без пароля. Выполняется, открыв файл конфигурации доступа для редактирования командой sudo visudo /etc/sudoers.d/010_pi-nopasswd и заменив в строке с пользователем по умолчанию запись на pi ALL=(ALL) PASSWD: ALL. В том случае, если был внесен новый логин требуется приведенную строку указать и для него, вписав ее после имени внесенного, используемого при входе в систему.
  • Добавление нестандартного пользователя (вписывается вместо ) и удаление старого. Здесь требуется дать следующие команды: sudo.s # добавляем пользователя. После ввода команды будет спрошен пароль # для нового пользователя строкой, содержащей «password» adduser # даем ему права (участие в группах доступа) usermod.a.G \ adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi # удаление стандартного pi. Но есть нюанс – в документации к # Raspberry PI выражена рекомендации этого не делать, так как в # некоторых приложениях он должен присутствовать в системе pkill.u pi deluser.remove-home pi

Если стандартного пользователя не удалять (последние две строки игнорировать к вводу), — рекомендуется задать ему пароль, отличный от установленного по умолчанию. Выполняется действие набором «sudo passwd pi» в консоли.

Из Linux или MacOS

В составе дистрибутивов Linux или MacOS стандартно идет в поставке утилита «ssh», запуск которой производится из терминалов названых операционных систем. Для присоединения к малинке потребуется знать IP-адрес самого одноплатника в сети. Итак, в целях организации доступа к Raspberry Pi ssh набираем в консоли: ssh pi@ Ответом будет запрос пароля, который по умолчанию проходится нажатием «Enter». Следом уже откроется командная строка малинки, предоставляя доступ к консоли одноплатника.

В том случае, когда стандартное имя пользователя было изменено, новое указывается в продемонстрированной ранее командной строке, вместо «pi». Хотя можно сделать проще, вообще убрав все что написано до «@», с ним включительно, из параметров запуска ssh и ввести логин и пароль (если установлен) непосредственно в высветившееся приглашение «login as:».

Активация и установка на Raspberry PI

Организация интерфейсного доступа к консоли или возможностям протокола SSH начинается с запуска его серверной части на Raspberry PI. Сделать можно названую процедуру аж тремя методами при прямом подключении и одном «безголовом». Конечно, для первых изначально потребуется непосредственный доступ к консоли Raspbian Pi, с аппаратными клавиатурой и монитором. И во всех случаях, после того, как установлен параметр активации, нужно перегрузить Raspberry Pi для запуска сервиса.

Второй

Выполняется непосредственно из оконной системы Raspberry PI 3. В меню «Preferences» находящейся в своеобразном «пуск» на панели, нужно выбрать «Raspberry Pi Configuration». В открывшемся окне надо перейти на вкладку «Interfaces». В пункте SSH устанавливаем рядом расположенный переключатель в значение «Enabled». Далее делается подтверждение действия нажатием «Ок» внизу окна.

Первый

Классический метод, работающий в любом Linux использующем systemd в качестве системы инициализации. Вводим в консоли: sudo.s # активируем сервис: sudo systemctl enable ssh sudo systemctl start ssh

Электрические соединения

Резистор может быть подключен в любом случае, но будьте осторожны относительно направления транзистора и диода. Катод диода должен быть подключен к 5V (красный) провод, а анод должен быть подключен к GND (черный) провод. Проверьте документацию вашего транзистора на наличие контактов эмиттера, базы и коллектора. Заземление вентилятора должно быть подключено к коллектору, а заземление Rpi должно быть подключено к эмиттеру.

Чтобы управлять вентилятором, нам нужно использовать транзистор, который будет использоваться вконфигурация с открытым коллектором, Благодаря этому у нас есть переключатель, который подключает или отключает заземляющий провод от вентилятора к заземлению Raspberry Pi.

NPN BJT Транзистор проводит в зависимости от тока, который течет в его затворе. Ток, которому будет позволено течь от коллектора (C) к эмиттеру (E):

Ic. это ток, который течет через коллектор эмиттера, Ib. ток, который течет через базу к эмиттеру, а B (бета). это значение, зависящее от каждого транзистора. Мы приближаемся B = 100

Поскольку наш поклонник оценен как 200mAнам нужно минимум 2 мА через базу транзистора. Натяжение между основанием и эмиттером (Vbe) считается постоянным и Vbe = 0,7 В, Это означает, что когда GPIO включен, мы имеем 3,3. 0,7 = 2,6 В на резисторе, Чтобы через этот резистор было 2 мА, нам нужен резистор максимум 2,6 / 0,002 = 1300 Ом, Мы используем резистор 1000 Ом упростить и сохранить предел погрешности. Через вывод GPIO у нас будет 2,6 мА, что абсолютно безопасно.

Поскольку вентилятор в основном электрический двигатель, это индуктивный заряд, Это означает, что когда транзистор прекращает проводить ток, ток в вентиляторе продолжает течь, поскольку индуктивный заряд пытается поддерживать его постоянным. Это приведет к высокому напряжению на заземляющем выводе вентилятора и может повредить транзистор, Вот почему нам нужен диод параллельно с вентилятором, который будет постоянно пропускать ток через двигатель. Этот тип диодной установки называется Маховик диодный

Необходимые детали

Для этого проекта мы будем использовать только несколько компонентов, которые обычно входят в комплекты электроники для любителей, которые вы можете найти на Amazon, например, этот.

  • Raspberry Pi работает Raspbian (но должен работать с другими дистрибутивами).
  • Вентилятор 5 В (но можно использовать вентилятор 12 В с адаптированным транзистором и источником питания 12 В).
  • NPN-транзистор, который поддерживает не менее 300 мА, как 2N2222A.
  • Резистор 1 кОм
  • 1 диод.

Необязательно, чтобы поместить компоненты внутри корпуса (но еще не сделано):

  • Небольшой кусочек прототипа, для пайки компонентов.
  • Большая термоусадка, чтобы защитить доску.

Программа для управления скоростью вентилятора

Для управления скоростью вращения вентилятора мы используем программный сигнал ШИМ из библиотеки RPi.GPIO. ШИМ-сигнал хорошо приспособлен для привода электродвигателей, поскольку их время реакции очень велико по сравнению с частотой ШИМ.

Используйте программу calib_fan.py, чтобы найти значение FAN_MIN, запустив в терминале:

Проверьте несколько значений от 0 до 100% (должно быть около 20%) и посмотрите, что минимальное значение для вашего вентилятора, чтобы включить.

Вы можете изменить соответствие между температурой и скоростью вращения вентилятора в начале кода. Там должно быть столько tempSteps, сколько значений speedSteps. Это метод, который обычно используется в материнских платах PC, перемещение точек на графике Temp / Speed ​​2-осевой.