<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Прочие проекты]]></title><description><![CDATA[Прочие проекты]]></description><link>https://raspberrypi.ru/forum/category/8</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 21:59:11 GMT</lastBuildDate><atom:link href="https://raspberrypi.ru/forum/category/8.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Dec 2024 00:57:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Сторожевой таймер (Watchdog)]]></title><description><![CDATA[<p dir="auto"><img src="/forum/assets/uploads/files/1734766088609-screenshot-from-2024-12-21-11-25-552_2.png" alt="Screenshot from 2024-12-21 11-25-552_2.png" class=" img-fluid img-markdown" /><br />
Как автоматически перезагрузить зависшую Raspberry Pi без физического вмешательства?</p>
<p dir="auto">В процессорах Broadcom, используемых в Raspberry Pi, есть встроенный аппаратный сторожевой таймер (он же watchdog). Это специальный регистр, который отсчитывает время и сбрасывает устройство (перезагружает) при достижении предельного значения, если программное обеспечение не сбрасывает таймер.</p>
<p dir="auto">Работа со сторожевым таймером в Linux осуществляется через интерфейс /dev/watchdog.<br />
Когда приложение записывает данные в /dev/watchdog, оно «сбрасывает» таймер. Если запись не происходит в заданный интервал времени, система автоматически перезагружается.</p>
<h3>Настройка</h3>
<p dir="auto">Чтобы активировать сторожевой таймер,  редактируем конфиг:</p>
<pre><code>sudo nano /boot/config.txt
</code></pre>
<p dir="auto">и добавляем строку</p>
<pre><code>dtoverlay=watchdog
</code></pre>
<p dir="auto">Далее устанавливаем из репозитория службу watchdog:</p>
<pre><code>sudo apt install watchdog
</code></pre>
<p dir="auto">Редактируем конфиг службы watchdog:</p>
<pre><code>sudo nano /etc/watchdog.conf
</code></pre>
<p dir="auto">Добавляем (или раскоментируем) строки:</p>
<pre><code>watchdog-device = /dev/watchdog
max-load-1 = 24
</code></pre>
<p dir="auto"><strong>max-load-1</strong> - порог максимальной нагрузки системы за последнюю 1 минуту. (также можно использовать параметры max-load-5 и max-load-15, они задают порог нагрузки системы за 5 и 15 минут соответствия)<br />
Если она превысит значение 24, сторожевой таймер будет считать это критической ситуацией и выполнит действие, указанное в конфигурации (например, перезагрузит систему).  На процессорах с 4 ядрами, число 24 означает 6-ти кратную перегрузку процессора (соответственно 100% загрузка  будет иметь значение 4). Такое может произойти при нехватке ресурсов или зацикливании какого-либо процесса.</p>
<p dir="auto">Какие ещё тригеры для перезагрузки можно прописать в watchdog.conf?</p>
<ul>
<li><strong>min-memory=xxxx</strong> (в килобайтах): минимальное количество свободной оперативной памяти. Если её осталось меньше указанного значения (xxxx), watchdog перезагрузит систему.</li>
<li><strong>file=путь_до_фала</strong>: проверка наличия определённого файла. Если файл будет отсутствовать,  сторожевой таймер выполнит перезагрузку.</li>
<li><strong>change = период_в_секундах</strong> - если файл изменился за данный период времени, то будет выполнена перезагрузка</li>
<li><strong>ping=ip</strong> - если ip адрес, указанный в параметре ping не доступен, то будет выполнена перезагрузка</li>
<li><strong>interface</strong> - указывает сетевой интерфейс, который должен быть активным.</li>
<li><strong>pidfile</strong> - указывает файл PID процесса, который должен быть активным. Если процесс не работает, система будет перезагружена.</li>
<li><strong>repair-binary</strong> - указывает путь к скрипту или программе, которая будет выполнена для попытки восстановления системы перед перезагрузкой.</li>
<li><strong>test-binary</strong> - указывает путь к тестовому скрипту, который должен возвращать 0, если всё работает как надо.</li>
<li><strong>reboot</strong> - указывает, следует ли перезагружать систему в случае сбоя. Возможные значения - yes(да) или no (нет)</li>
</ul>
<p dir="auto">Добавляем службу в автозагрузку и запускаем:</p>
<pre><code>sudo systemctl enable watchdog
sudo systemctl start watchdog
</code></pre>
<h3>Проверка</h3>
<p dir="auto">Вызовем искусственную перегрузку системы командой</p>
<pre><code>sudo fork bomb
</code></pre>
<p dir="auto">если сторожевой таймер правильно настроен, то через некоторое время произойдёт автоматическая перезагрузка</p>
]]></description><link>https://raspberrypi.ru/forum/topic/4471/сторожевой-таймер-watchdog</link><guid isPermaLink="true">https://raspberrypi.ru/forum/topic/4471/сторожевой-таймер-watchdog</guid><dc:creator><![CDATA[нейробизон]]></dc:creator><pubDate>Sat, 21 Dec 2024 00:57:13 GMT</pubDate></item><item><title><![CDATA[I2C 1-Wire RTC]]></title><description><![CDATA[<p dir="auto">Собрал RTC и 1-Wire.</p>
<p dir="auto">Схема:</p>
<p dir="auto"><img src="/forum/assets/uploads/files/1732259016179-3bd241b1-a40b-423b-bff7-3a3f210252bd-image.png" alt="3bd241b1-a40b-423b-bff7-3a3f210252bd-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">То что получилось</p>
<p dir="auto"><img src="/forum/assets/uploads/files/1732259029810-bb2d2817-872c-46d6-8d63-8970d4381699-image.png" alt="bb2d2817-872c-46d6-8d63-8970d4381699-image.png" class=" img-fluid img-markdown" /></p>
<h3>Настройка RTC</h3>
<p dir="auto">Добавляем в систему I2C если ранее это не сделано.</p>
<p dir="auto">Редактируем файл /etc/modprobe.d/raspi-blacklist.confsudo</p>
<pre><code>nano /etc/modprobe.d/raspi-blacklist.conf
</code></pre>
<p dir="auto">редактируем файл /etc/modules, вставляем #перед строкой blacklist i2c-bcm2708</p>
<pre><code>nano /etc/modules
</code></pre>
<p dir="auto">вставляем в конец строку i2c-dev</p>
<p dir="auto">ставим I2C тулс</p>
<pre><code>sudo apt-get install i2c-tools
</code></pre>
<p dir="auto">смотрим какие I2C устройства есть на шине</p>
<pre><code>pi@raspberrypi ~ $ i2cdetect -y 1   

 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e

f00:-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- --
18 -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- --

68 -- -- -- -- -- -- --

70: -- -- -- -- -- -- -- --
</code></pre>
<p dir="auto">sudo modprobe rtc-ds1307<br />
18 - это адрес 1-wire</p>
<p dir="auto">68 - это RTC DS1307</p>
<p dir="auto">набираем</p>
<p dir="auto">потом меняем пользователя на root: sudo -s и вводим</p>
<pre><code>echo ds1307 0x68 &gt; /sys/class/i2c-adapter/i2c-0/new_device (для rev 1 Pi)
echo ds1307 0x68 &gt; /sys/class/i2c-adapter/i2c-1/new_device (для rev 2 Pi)
</code></pre>
<p dir="auto">теперь выведем в консоль время с RTC:</p>
<pre><code>pi@raspberrypi ~ $ sudo hwclock -r Set 01 Jan 2000 00:01:20 EEST  -0.814742 seconds
pi@raspberrypi ~ $ dateSun Jun 16 13:40:36 EEST 2013
</code></pre>
<p dir="auto">для того чтобы записать время из системы в RTC</p>
<pre><code>sudo hwclock -w
</code></pre>
<p dir="auto">Tеперь настроим чтобы часы находились после перезагрузки. Для этого отредактируем  файл modules командой</p>
<pre><code>sudo nano /etc/modules
</code></pre>
<p dir="auto">и добавим туда rtc-ds1307</p>
<p dir="auto">потом отредактируем файл /etc/rc.localsudo</p>
<pre><code>nano /etc/rc.local
</code></pre>
<p dir="auto">и добавим в него</p>
<pre><code>echo ds1307 0x68 &gt; /sys/class/i2c-adapter/i2c-0/new_device (для v1 raspberry pi)
echo ds1307 0x68 &gt; /sys/class/i2c-adapter/i2c-1/new_device (для v2 raspberry pi)sudo hwclock -s
</code></pre>
<p dir="auto">эти строчки нужно вставить перед строкой exit 0</p>
<p dir="auto">Все теперь в системе есть RTC.OWFS настраивал по инструкции с этого сайта</p>
<p dir="auto"><a href="http://wiki.temperatur.nu/index.php/OWFS_with_i2c_support_on_Raspberry_Pi_(English_version)" rel="nofollow ugc">http://wiki.temperatur.nu/index.php/OWFS_with_i2c_support_on_Raspberry_Pi_(English_version)</a></p>
]]></description><link>https://raspberrypi.ru/forum/topic/4424/i2c-1-wire-rtc</link><guid isPermaLink="true">https://raspberrypi.ru/forum/topic/4424/i2c-1-wire-rtc</guid><dc:creator><![CDATA[pi]]></dc:creator><pubDate>Fri, 22 Nov 2024 07:05:11 GMT</pubDate></item><item><title><![CDATA[Добавляем кнопку Hard Reset]]></title><description><![CDATA[<p dir="auto">Был у меня момент когда отключили инет,и сделать рестарт на малине я ни как  не мог,кроме выдернуть БП из сети и запустить заново.</p>
<p dir="auto">Вот и появилась идея сделать кнопку reset,перелопатив интернет нашёл несколько решений,но выбрал этот способ.</p>
<p dir="auto"><img src="/forum/assets/uploads/files/1732258763345-e44f680b-81c5-4299-8130-6f6ec6563b28-image.png" alt="e44f680b-81c5-4299-8130-6f6ec6563b28-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">1)Куда припаивать<br />
<img src="/forum/assets/uploads/files/1732258778013-3afcf3a6-79a0-4bfe-872f-2e92978a5110-image.png" alt="3afcf3a6-79a0-4bfe-872f-2e92978a5110-image.png" class=" img-fluid img-markdown" /><br />
2)Что припаивать<br />
<img src="/forum/assets/uploads/files/1732258791082-cd658b6f-1550-4bb3-a952-a156bed0fe54-image.png" alt="cd658b6f-1550-4bb3-a952-a156bed0fe54-image.png" class=" img-fluid img-markdown" /><br />
3)Припаиваем</p>
<p dir="auto"><img src="/forum/assets/uploads/files/1732258798277-d0199237-6f53-4d81-9ee3-b2e256705a76-image.png" alt="d0199237-6f53-4d81-9ee3-b2e256705a76-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Готово</p>
<p dir="auto">Подробнее в моём блоге:   <a href="http://raspberrylive.blogspot.com/" rel="nofollow ugc">http://raspberrylive.blogspot.com/</a></p>
<p dir="auto">Спасибо за внимание.</p>
]]></description><link>https://raspberrypi.ru/forum/topic/4423/добавляем-кнопку-hard-reset</link><guid isPermaLink="true">https://raspberrypi.ru/forum/topic/4423/добавляем-кнопку-hard-reset</guid><dc:creator><![CDATA[pi]]></dc:creator><pubDate>Fri, 22 Nov 2024 07:00:01 GMT</pubDate></item><item><title><![CDATA[Вопрос по энкодеру]]></title><description><![CDATA[<p dir="auto">Если это родная CSI камера, то у <strong>raspivid</strong> есть параметр  <strong>--annotate</strong>, который накладывает текст на видео</p>
]]></description><link>https://raspberrypi.ru/forum/topic/4278/вопрос-по-энкодеру</link><guid isPermaLink="true">https://raspberrypi.ru/forum/topic/4278/вопрос-по-энкодеру</guid><dc:creator><![CDATA[pi]]></dc:creator><pubDate>Mon, 18 Nov 2024 17:11:22 GMT</pubDate></item><item><title><![CDATA[Как я собрал программно-аппаратный комплекс по аварийному восстановлению данных на Raspberry PI 3]]></title><description><![CDATA[<p dir="auto">&lsqb;&lsqb;20],[18,30&rsqb;&rsqb;</p>
]]></description><link>https://raspberrypi.ru/forum/topic/4277/как-я-собрал-программно-аппаратный-комплекс-по-аварийному-восстановлению-данных-на-raspberry-pi-3</link><guid isPermaLink="true">https://raspberrypi.ru/forum/topic/4277/как-я-собрал-программно-аппаратный-комплекс-по-аварийному-восстановлению-данных-на-raspberry-pi-3</guid><dc:creator><![CDATA[pi]]></dc:creator><pubDate>Mon, 18 Nov 2024 17:11:19 GMT</pubDate></item><item><title><![CDATA[Тестер для радиостанции]]></title><description><![CDATA[<p dir="auto">&lsqb;&lsqb;20],[18,30&rsqb;&rsqb;</p>
]]></description><link>https://raspberrypi.ru/forum/topic/4276/тестер-для-радиостанции</link><guid isPermaLink="true">https://raspberrypi.ru/forum/topic/4276/тестер-для-радиостанции</guid><dc:creator><![CDATA[pi]]></dc:creator><pubDate>Mon, 18 Nov 2024 17:11:17 GMT</pubDate></item><item><title><![CDATA[Контроль задымленности]]></title><description><![CDATA[<p dir="auto">Большое спасибо за ответы. Действительно есть масса более бюджетных реализаций. Решил делать на Arduino + GSM модем Neoway M590 + датчик газа MQ2. Тему можно закрыть.</p>
]]></description><link>https://raspberrypi.ru/forum/topic/4275/контроль-задымленности</link><guid isPermaLink="true">https://raspberrypi.ru/forum/topic/4275/контроль-задымленности</guid><dc:creator><![CDATA[pi]]></dc:creator><pubDate>Mon, 18 Nov 2024 17:11:15 GMT</pubDate></item></channel></rss>