Во многих случаях мини-компьютеры, такие как: Raspberry Pi, Orange Pi, Banana Pi и т.п., поставляется с небольшим вентилятором на 5 В, чтобы можно было охлаждать процессор (вернее — СнК/SoC) компьютера. Тем не менее, эти вентиляторы обычно довольно шумные, и многие подключают его к выводу на 3.3 В, чтобы уменьшить шум. Вентиляторы обычно рассчитаны на 200 мА, что довольно много для регулятора на 3.3 В на Raspberry Pi.
Этот проект научит вас, как регулировать скорость вращения вентилятора в зависимости от температуры процессора. В отличие от большинства руководств, охватывающих эту тему, мы не только включим или выключим вентилятор, но и будем контролировать его скорость с помощью ШИМ, как это делается на обычном ПК.
- 1 Что такое ШИМ?
- 2 Управление вентилятором с помощью биполярного NPN-транзистора
- 3 Управление вентилятором с помощью МОП транзистора
- 4 Как получить температуру процессора
- 5 Включение вентилятора при заданной температуре
- 6 ШИМ управление: Пример 1
- 7 ШИМ управление: Пример 2
- 8 Как поместить скрипт в автозагрузку
- 9 Как проверить?
- 10 Удаление скрипта из автозагрузки
- 11 Материалы
- 12 Похожие записи
Что такое ШИМ?
Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощности методом пульсирующёго включения и выключения прибора. Различают аналоговую ШИМ и цифровую ШИМ, двоичную (двухуровневую) ШИМ и троичную (трёхуровневую) ШИМ. Основной причиной применения ШИМ является стремление к повышению КПД при построении вторичных источников питания электронной аппаратуры и в других узлах, например, ШИМ используется для регулировки яркости подсветки LCD-мониторов и дисплеев в телефонах, КПК и т.п..
Управление вентилятором с помощью биполярного NPN-транзистора
Первое что приходит на ум — поставить биполярный NPN-транзистор. Вентилятору требуется 200мА, поэтому ищем транзистор с коллекторным током более 200мА, лучше раза в 2-3. В импортных даташитах этот параметр называется Ic, в наших Iк. Подойдут транзисторы: 2N5550, 2N5551, 2N2222A и т.д.. У транзистора, в первую очередь, надо определить назначение выводов. Где у него коллектор, где база, а где эмиттер. Сделать это лучше всего по даташиту или справочнику.
Схема подключения вентилятора
Берем транзистор и подключаем его по такой схеме:
Таким образом, при подаче «1» на вход нашей схемы ток от источника питания потечёт через резистор R1, базу и эмиттер на землю. При этом транзистор откроется и ток сможет идти через переход коллектор-эмиттер, а значит и через нагрузку (вентилятор).
Резистор R1 играет важную роль — он ограничивает ток через переход база-эмиттер. Если бы его не было, ток не был бы ничем ограничен и просто испортил бы управляющую микросхему (ведь именно она связывает линию питания с транзистором).
Кроме того, нужно помнить, что нагрузка индуктивная и нужен защитный диод D1. Дело в том, что энергия, запасённая магнитным полем, не даёт мгновенно уменьшить ток до нуля при отключении ключа. А значит, на контактах нагрузки возникнет напряжение обратной полярности, которое легко может нарушить работу контроллера или даже повредить его.
Управление вентилятором с помощью МОП транзистора
Вместо биполярного можно использовать полевой транзистор — MOSFET, то есть полевые транзисторы с изолированным затвором (они же МОП, они же МДП). Они удобны тем, что управляются исключительно напряжением: если напряжение на затворе больше порогового, то транзистор открывается. При этом управляющий ток через транзистор пока он открыт или закрыт не течёт. Это значительное преимущество перед биполярными транзисторами, у которых ток течёт всё время, пока открыт транзистор.
В дальнейшем мы будем использовать только n-канальные MOSFET. Это связано с тем, что n-канальные транзисторы дешевле, имеют лучшие характеристики и для управления N-канальным полевиком необходимо приложить положительное напряжение на затвор относительно истока.
Схема подключения вентилятора
Нагрузка подключена к стоку («сверху»). Если подключить её «снизу», то схема работать не будет. Дело в том, что транзистор открывается, если напряжение между затвором и истоком превышает пороговое. При подключении «снизу» нагрузка будет давать дополнительное падение напряжения, и транзистор может не открыться или открыться не полностью.
Резистор R1 на 100 Ом ограничивает ток заряда-разряда, а резистор R2 на 10 кОм — это стягивающий резистор, что в неопределенном состоянии «стягивает» потенциал к земле.
Кроме того, нужно помнить, что нагрузка индуктивная и нужен защитный диод D1.
N-канальные MOSFET с логическим уровнем управления
Один из минусов МОП транзисторов — это высокое пороговое напряжение затвора, больше 3.3 В. Тем не менее, существуют N-канальные транзисторы с логическим уровнем управления, например: IRL2505, FDN337N, ZVN4306A, 2N7000, PMV16XNR, NTZD3155C, IRLZ24NPBF, IRL520NPBF и т.п.
Как получить температуру процессора
Существует несколько способов получить текущую температуру процессора.
Если вы используйте Armbian, вы можете использовать команду:
armbianmonitor -m
эта команда будет давать вам время работы, частоту и текущую температуру процессора каждые 6 секунд.
Есть еще одна команда, которая просто возвращает температуру процессора:
cat /sys/devices/virtual/thermal/thermal_zone1/temp
или
cat /sys/devices/virtual/thermal/thermal_zone0/temp
или
cat /sys/class/thermal/thermal_zone0/temp
Внутри SoC Allwinner есть два датчика, вы можете взять оба значения, чтобы получить среднюю температуру. На Raspberry Pi температура измеряется в миллиградусах, для перевода в градусы Цельсия нужно разделить полученное число на 1000:
В Raspberry Pi можно узнать температуру процессора при помощи ввода консольной команды:
vcgencmd measure_temp
Включение вентилятора при заданной температуре
Ниже приведённые примеры используют WiringPi и, если библиотека у вас не установлена, установите её, инструкции тут: WiringPi, WiringOP или BPI-WiringPi.
Самый простой пример управления вентилятором — это его включение, при достижении критичной температуры, и выключение, если температура ниже. Если шум вентилятора не мешает, тогда можно использовать такой вариант.
#include <iostream>
#include <fstream>
#include <wiringPi.h>
#include <unistd.h>
#define PIN 7
#define TEMPERATURE_MIN 55
using namespace std;
static int getTemperature() {
static fstream myfile;
int temperature = 0;
myfile.open("/sys/devices/virtual/thermal/thermal_zone0/temp", ios_base::in);
myfile >> temperature;
myfile.close();
return temperature;
}
int main() {
int temperature;
int pinState = 0;
try {
if (wiringPiSetup() == 0) {
pinMode(PIN, OUTPUT);
while (1) {
temperature = getTemperature();
if (temperature >= TEMPERATURE_MIN && pinState == 0) {
digitalWrite(PIN, HIGH);
pinState = 1;
} else if (temperature < (TEMPERATURE_MIN - 10) && pinState == 1) {
digitalWrite(PIN, LOW);
pinState = 0;
}
usleep(1000 * 1000);
}
}
} catch (exception& e) {
cerr << e.what() << endl;
}
return 0;
}
Программа работает следующим образом — при достижении заданной температуры (более 55°С) вентилятор включается, и отключается только когда температура снизится более чем на 10°С от максимального порога (менее 45°С).
Температуру получаем с помощью функции static int getTemperature(). На Raspberry Pi температура измеряется в миллиградусах, для перевода в градусы Цельсия нужно разделить полученное число на 1000 и необходимо будет внести несколько изменений,
вместо:
static int getTemperature() {
static fstream myfile;
int temperature = 0;
myfile.open("/sys/devices/virtual/thermal/thermal_zone0/temp", ios_base::in);
myfile >> temperature;
myfile.close();
return temperature;
}
использовать:
static int getTemperature() {
static fstream myfile;
int temperature = 0;
myfile.open("/sys/devices/virtual/thermal/thermal_zone0/temp", ios_base::in);
myfile >> temperature;
myfile.close();
return temperature / 1000;
}
Компиляция, сборка и запуск программы
Сознаём файл FanPiOnOff.cpp и вставляем вышеприведённый код:
nano FanPiOnOff.cpp
Компилируем и собираем программу:
g++ -Ofast -Wall FanPiOnOff.cpp -lwiringPi -lpthread -o FanPiOnOff
Запускаем:
./FanPiOnOff
если хотим запустить программу в фоновом режиме:
nohup ./FanPiOnOff &
ШИМ управление: Пример 1
Логика программы такова — при достижении заданных температур вентилятор включается с определённым коэффициентом заполнения, а отключается только тогда, когда температура ниже минимального порога:
- 45 °C -> 35 %
- 50 °C -> 50 %
- 60 °C -> 75 %
- 75 °C -> 100 %
#include <iostream>
#include <fstream>
#include <wiringPi.h>
#include <softPwm.h>
#include <unistd.h>
#define PIN 7
#define RANGE 100
#define PWM_VALUE1 35
#define PWM_VALUE2 50
#define PWM_VALUE3 75
#define PWM_VALUE4 100
#define TEMPERATURE_1 45
#define TEMPERATURE_2 50
#define TEMPERATURE_3 60
#define TEMPERATURE_4 70
using namespace std;
static int getTemperature() {
static fstream myfile;
int temperature = 0;
myfile.open("/sys/devices/virtual/thermal/thermal_zone0/temp", ios_base::in);
myfile >> temperature;
myfile.close();
return temperature;
}
int main() {
int temperature;
bool pwmStopped = true;
try {
if (wiringPiSetup() == 0) {
while (1) {
temperature = getTemperature();
if (temperature > TEMPERATURE_4) {
if (pwmStopped) {
softPwmCreate(PIN, ((PWM_VALUE4 * RANGE) / 100), RANGE);
pwmStopped = false;
} else {
softPwmWrite(PIN, ((PWM_VALUE4 * RANGE) / 100));
}
} else if (temperature > TEMPERATURE_3) {
if (pwmStopped) {
softPwmCreate(PIN, ((PWM_VALUE3 * RANGE) / 100), RANGE);
pwmStopped = false;
} else {
softPwmWrite(PIN, ((PWM_VALUE3 * RANGE) / 100));
}
} else if (temperature > TEMPERATURE_2) {
if (pwmStopped) {
softPwmCreate(PIN, ((PWM_VALUE2 * RANGE) / 100), RANGE);
pwmStopped = false;
} else {
softPwmWrite(PIN, ((PWM_VALUE2 * RANGE) / 100));
}
} else if (temperature > TEMPERATURE_1) {
if (pwmStopped) {
softPwmCreate(PIN, ((PWM_VALUE1 * RANGE) / 100), RANGE);
pwmStopped = false;
} else {
softPwmWrite(PIN, ((PWM_VALUE1 * RANGE) / 100));
}
} else {
softPwmStop(PIN);
pwmStopped = true;
}
usleep(1000 * 1000);
}
}
} catch (exception& e) {
cerr << e.what() << endl;
}
return 0;
}
Компиляция, сборка и запуск программы
Сознаём файл FanPiPWM.cpp и вставляем вышеприведённый код:
nano FanPiPWM.cpp
Компилируем и собираем программу:
g++ -Ofast -Wall FanPiPWM.cpp -lwiringPi -lpthread -o FanPiPWM
Запускаем:
./FanPiPWM
если хотим запустить программу в фоновом режиме:
nohup ./FanPiPWM &
ШИМ управление: Пример 2
Также можно менять коэффициент заполнения линейно. В таком случае программе нужно задать минимальную температуру срабатывания и минимальный коэффициент заполнения, к примеру 45°C и 35% соответственно, а на максимальную температуру (к примеру 70°C) — коэффициент в 100%. Рассчитывается коэффициент заполнения с помощью функции static int map(int x, int inMin, int inMax, int outMin, int outMax);.
#include <iostream>
#include <fstream>
#include <wiringPi.h>
#include <softPwm.h>
#include <unistd.h>
#define PIN 7U
#define RANGE_MAX 100
#define RANGE_MIN 35
#define TEMPERATURE_MAX 70
#define TEMPERATURE_MIN 45
using namespace std;
static int getTemperature() {
static fstream myfile;
int temperature = 0;
myfile.open("/sys/devices/virtual/thermal/thermal_zone0/temp", ios_base::in);
myfile >> temperature;
myfile.close();
return temperature;
}
static int map(int x, int inMin, int inMax, int outMin, int outMax) {
if (x < inMin) {
return outMin;
} else if (x > inMax) {
return outMax;
}
return (x - inMin) * (outMax - outMin) / (inMax - inMin) + outMin;
}
int main() {
int temperature;
int pwmValue;
bool pwmStopped = true;
try {
if (wiringPiSetup() == 0) {
while (1) {
temperature = getTemperature();
pwmValue = map(temperature, TEMPERATURE_MIN, TEMPERATURE_MAX, RANGE_MIN, RANGE_MAX);
if (temperature >= TEMPERATURE_MIN && pwmStopped) {
softPwmCreate(PIN, pwmValue, RANGE_MAX);
pwmStopped = false;
} else if (temperature >= (TEMPERATURE_MIN - 5) && !pwmStopped) {
softPwmWrite(PIN, pwmValue);
} else {
if (!pwmStopped) {
softPwmStop(PIN);
}
pwmStopped = true;
}
usleep(1000 * 1000);
}
}
} catch (exception& e) {
cerr << e.what() << endl;
}
return 0;
}
Компиляция, сборка и запуск программы
Сознаём файл FanPiPwmLinear.cpp и вставляем вышеприведённый код:
nano FanPiPwmLinear.cpp
Компилируем и собираем программу:
g++ -Ofast -Wall FanPiPwmLinear.cpp -lwiringPi -lpthread -o FanPiPwmLinear
Запускаем:
./FanPiPwmLinear
если хотим запустить программу в фоновом режиме:
nohup ./FanPiPwmLinear &
Как поместить скрипт в автозагрузку
Остается сделать так, чтобы скрипт, контролирующий работу вентилятора охлаждения, автоматически запускался каждый раз при загрузке системы.
Для этого, в конец файла /etc/rc.local:
sudo nano /etc/rc.local
Нужно поместить команду запуска скрипта перед строкой exit 0:
sudo ./home/pi/FanPiPwmLinear &
После перезагрузки скрипт будет автоматически запущен и вентилятор будет включаться при наступлении заданных условий.
Чтобы проверить факт запуска, после перезагрузки, нужно переключиться в терминал и проверить наличие процесса:
ps aux | grep -i FanPiPwmLinear
Как проверить?
Для проверки работоспособности скрипта нужно «разогреть» процессор до нужной температуры и посмотреть, как на это будет реагировать система охлаждения. «Нагревать» процессор можно с помощью утилит sysbench или stress. Вы можете установить эти утилиты с aptitude:
sudo apt-get install sysbench
или
sudo apt-get install stress
Запуск утилиты с задействованием 4 ядер:
sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 --validate run
или
sudo stress --cpu 4 --timeout 30s
Температура процессора сразу начнет повышаться.
Принудительно завершить, как выполнение теста утилитой sysbench, так и stress можно сочетанием клавиш Ctrl+C.
Удаление скрипта из автозагрузки
Для удаления скрипта из автозагрузки нужно просто удалить строку с запуском скрипта из файла /etc/rc.local.
Материалы
Управление мощной нагрузкой постоянного тока. Часть 1
Управление мощной нагрузкой постоянного тока. Часть 3.
Raspberry Pi 3: GPIO (#3) — умное управление собственным активным охлаждением
Управление мощной нагрузкой
Широтно-импульсная модуляция




Есть ли возможность заменить транзистор и резисторы одним транзистором типа MOSFET K3919?
Здравствуйте! Спасибо за статью! Управление вентилятором работает (с помощью биполярного NPN-транзистора) но вот столкнулся я такими нюансами.
1) Если использовать простой пример управления, то при понижении температуры «TEMPERATURE_MIN» на 1 градус (а мож и меньше), то вентилятор сразу включается, т.е. получается что идёт включение / выключение чуть ли не каждую секунду. Я программист ещё тот, так знаю как «Hello World» вывести, попробовал исправить ситуацию через do … while..
int main() {
int temperature;
int pinState = 0;
try {
if (wiringPiSetup() == 0) {
pinMode(PIN, OUTPUT);
while (1) {
temperature = getTemperature();
if (temperature >= TEMPERATURE_MIN && pinState == 0) {
digitalWrite(PIN, HIGH);
do{
// digitalWrite(PIN, HIGH);
pinState = 1;
temperature = getTemperature();
usleep(1000 * 5000);
}
while (temperature > TEMPERATURE_END);
}
else if (temperature < TEMPERATURE_END && pinState == 1) {
digitalWrite(PIN, LOW);
pinState = 0;
}
usleep(1000 * 5000);
}
}
} catch (exception& e) {
cerr << e.what() << endl;
}
return 0;
}
2) С управлением ШИМ непонятности — при понижении коэффициента вентилятор начинает жутко звучать, ещё громче чем при полных оборотах. Это так и должно быть? Или какой-то спецвентилятор надо?
Можно ли как-то использовать аппаратный ШИМ? У чипа H3 он вроде бы есть.
Link vao fun88 cung cấp cho người dùng một trải nghiệm cá cược tuyệt vời với nhiều trò chơi hấp dẫn.
заработок на аккаунтах маркетплейс аккаунтов
магазин аккаунтов заработок на аккаунтах
маркетплейс аккаунтов https://kupit-akkaunt-top.ru
Account trading platform Secure Account Sales
Social media account marketplace Database of Accounts for Sale
Account Buying Service Buy accounts
Accounts marketplace Buy Account
Buy Pre-made Account Account Buying Service
Account marketplace buyaccounts001.com
Account Trading Platform https://socialmediaaccountsale.com/
ready-made accounts for sale verified accounts for sale
buy account account purchase
account trading platform buy pre-made account
account trading service verified accounts for sale
account selling platform secure account sales
website for buying accounts accounts-marketplace.org
profitable account sales account store
buy accounts account market
buy and sell accounts database of accounts for sale
account store profitable account sales
account trading platform account marketplace
guaranteed accounts guaranteed accounts
secure account sales account catalog
marketplace for ready-made accounts find accounts for sale
account exchange ready-made accounts for sale
website for selling accounts website for buying accounts
gaming account marketplace account buying service
account trading platform marketplace for ready-made accounts
account purchase account exchange service
account catalog https://accounts-offer.org
database of accounts for sale https://accounts-marketplace.xyz
database of accounts for sale https://buy-best-accounts.org
account trading https://social-accounts-marketplaces.live
account store https://accounts-marketplace.live/
buy and sell accounts buy accounts
website for selling accounts https://buy-accounts-shop.pro/
buy accounts https://buy-accounts.live
account store accounts marketplace
account trading platform https://accounts-marketplace-best.pro
маркетплейс аккаунтов магазины аккаунтов
биржа аккаунтов https://rynok-akkauntov.top/
купить аккаунт kupit-akkaunt.xyz
покупка аккаунтов https://akkaunt-magazin.online/
магазин аккаунтов akkaunty-market.live
покупка аккаунтов https://akkaunty-dlya-prodazhi.pro
buying fb accounts https://buy-adsaccounts.work
facebook ad account for sale buy facebook old accounts
buy facebook profiles https://buy-ads-account.work
buy facebook account https://ad-accounts-for-sale.work
google ads account seller https://buy-ads-account.top
buy google adwords account https://buy-ads-accounts.click
buy facebook ads manager buy facebook advertising
buy adwords account https://buy-ads-agency-account.top
google ads account seller https://sell-ads-account.click/
buy old google ads account buy google adwords account
buy facebook verified business account buy-verified-business-manager-account.org
verified facebook business manager for sale business-manager-for-sale.org
verified facebook business manager for sale verified-business-manager-for-sale.org
buy tiktok ads account https://buy-tiktok-ads-account.org
buy tiktok ads buy tiktok ads accounts
buy tiktok ads account https://buy-tiktok-ad-account.org
buy tiktok ad account https://buy-tiktok-business-account.org
buy tiktok business account https://buy-tiktok-ads.org
займ с 18 лет без отказа займ с 18 лет без отказа .
Календарь огородника https://inforigin.ru .
pokiesnet https://www.pokiesnet250.com .
врач психиатр цена врач психиатр цена .
электрокарнизы москва https://elektrokarniz-nedorogo77.ru .
iflow камеры http://www.citadel-trade.ru/ .
электрические карнизы для штор в москве elektrokarniz90.ru .
прогнозы на спорт бесплатно от профессионалов на сегодня prognoz-na-segodnya-na-sport.ru .
sportbets sportbets17.ru .
прогнозы на футбол от экспертов прогнозы на футбол от экспертов .
прогнозы на спорт с анализом прогнозы на спорт с анализом .
прогнозы на хоккей на сегодня бесплатно http://luchshie-prognozy-na-khokkej1.ru/ .
прогнозы на спорт точные http://www.luchshie-prognozy-na-khokkej2.ru/ .
прогноз на хоккей в прогнозе luchshie-prognozy-na-khokkej.ru .
servicios del cosmet?logo servicios del cosmet?logo .
купить айфон спб http://www.kupit-ajfon-cs1.ru .
купить iphone 11 недорого купить iphone 11 недорого .
mostbet poker otağı http://mostbet4053.ru/
Пробковый ламинат купить probkovoe-pokritie1.ru .
Паркетная доска купить в Москве цена https://parketnay-doska2.ru .
buy fb ad account account exchange service accounts marketplace
fb account for sale sell accounts account market
доставка воды на дачу цистерна цена http://www.dostavka-tehnicheskoi-vodi.ru/ .
прогнозы и ставки на спорт http://www.prognozy-na-sport-3.ru/ .
оценка наручных часов онлайн http://ocenka-chasov-onlajn8.ru/ .
мостбет https://www.mostbet4073.ru
1win armenia 1win armenia
техвода http://dostavka-tehnicheskoi-vodi.ru .
лестница под ключ цена с материалами lestnicy-na-metallokarkase-1.ru .
mental health support chat http://www.mental-health21.com/ .
сколько стоит винтовые сваи для фундамента цена ostankino-svai.ru .
Mental Health Mental Health .
1win am https://1win3075.ru/
ванна с гидромассажем купить http://www.hidromassazhnaya-vanna2.ru .
winline фрибет новым клиентам http://www.winlayne-fribet2.ru/ .
Кварцвиниловые полы https://napolnaya-probka1.ru .
1win https://www.1win3064.ru
внедрение ерп в организации https://www.1s-erp-vnedrenie.ru .
глубинное водопонижение глубинное водопонижение .
холодильные камеры промышленные https://xn—-7sbabtdykncetibz6f4f8b.xn--p1ai .
проект водопонижения vodoponizhenie-msk.ru .
1с онлайн цена http://www.kupit-1s21.ru .
купить 1с москва kupit-1s23.ru .
точный прогнозы на футбол http://www.kompyuternye-prognozy-na-futbol8.ru .
прогнозы на спорт на сегодня бесплатно https://prognoz-na-segodnya-na-sport9.ru .
аренда яхты на час https://yacht-rental-oae.com .
перевозка автомобилей автовозом по россии http://avtovoz-av8.ru .
melbet cricket app download melbet cricket app download
прогнощы stavki-na-sport-prognozy1.ru .
получить микрозаем получить микрозаем .
casinocandy http://candy-casino-7.com .
перевозка легковых автомобилей автовозом http://www.avtovoz-av8.ru/ .
изготовление деревянных лестниц в москве http://lestnicy-na-metallokarkase-1.ru/ .
casino giri? candy-casino-7.com .
акриловая ванна с гидромассажем https://www.hidromassazhnaya-vanna2.ru .
винлайн фрибеты 2025 winline-fribet-kazhdyj-den.ru .
купить игровой пк в москве kupit-igrovoj-kompyuter10.ru .
электрокарнизы для штор цена elektrokarnizy150.ru .
электрокарниз недорого https://elektrokarniz150.ru/ .
дизайнерские кашпо на стену http://www.dizaynerskie-kashpo-sochi.ru .
1win ставки casino http://www.1win40006.ru
электрокарнизы москва elektrokarniz150.ru .
Сайт о питании при беременности edamam.ru .
data-vyhoda.online http://www.data-vyhoda.online .
ekoclinic.ru ekoclinic.ru .
кашпо дизайн кашпо дизайн .
Сайт о новорожденных детях http://malishi.online/ .
цветочные горшки дизайнерские купить цветочные горшки дизайнерские купить .
1win login ci 1win login ci
1win indir android http://1win40005.ru
ролевые шторы https://www.rulonnye-shtory-s-elektroprivodom11.ru .
электрические рулонные шторы на окна elektricheskie-rulonnye-shtory90.ru .
креативные кашпо креативные кашпо .
электро рулонные шторы https://rulonnye-shtory-s-elektroprivodom11.ru .
электрокарниз купить в москве http://www.elektrokarnizy33.ru .
стоимость перепланировки квартиры http://proekt-pereplanirovki-kvartiry4.ru/ .
электрокарниз купить в москве электрокарниз купить в москве .
гардина с электроприводом http://elektrokarniz11.ru .
проект перепланировки квартиры цена московская область проект перепланировки квартиры цена московская область .
дизайнерские кашпо на стену дизайнерские кашпо на стену .
карнизы с электроприводом карнизы с электроприводом .
1win télécharger gratuitement https://www.1win40015.ru
бонусный счет ван вин бонусный счет ван вин
купить кашпо дизайнерские http://www.dizaynerskie-kashpo-nsk.ru .
автоматические жалюзи цена автоматические жалюзи цена .
гидроизоляция цена http://www.gidroizolyaciya-cena-1.ru .
гидроизоляция цена https://www.gidroizolyaciya-cena-2.ru .
мостбет ком вход mostbet11065.ru
как зайти на сайт mostbet https://mostbet11062.ru
мостбет официальный сайт регистрация мостбет официальный сайт регистрация
sports bet http://sportbets31.ru/ .
sportandbets http://sportbets30.ru/ .
автоматика somfy http://avtomatika-somfy.ru .
цветочный горшок с автополивом купить цветочный горшок с автополивом купить .
спортивные новости https://novosti-sporta-2.ru .
автоматика somfy http://avtomatika-somfy.ru/ .
sport bets https://www.sportbets32.ru .
новости спорта http://novosti-sporta-2.ru/ .
как сыграют сегодня в футбол прогноз http://kompyuternye-prognozy-na-futbol14.ru/ .
спорт прогнозы на футбол спорт прогнозы на футбол .
mostber http://www.mostbet11075.ru
mostbet скачать http://mostbet11072.ru
Новости Украины https://gromrady.org.ua в реальном времени. Экономика, политика, общество, культура, происшествия и спорт. Всё самое важное и интересное на одном портале.
Строительный сайт https://vitamax.dp.ua с полезными материалами о ремонте, дизайне и современных технологиях. Обзоры стройматериалов, инструкции по монтажу, проекты домов и советы экспертов.
гидроизоляция цена за м2 http://offthevylc.ru/polezno-znat/ceny-na-gidroizoljaciju-v-moskve-i-regionah-rossii.html/ .
ставки на спорт бишкек онлайн http://mostbet11075.ru/
gessi официальный сайт gessi официальный сайт .
мелбет официальный сайт мелбет официальный сайт
самые точные прогнозы на хоккей самые точные прогнозы на хоккей .
горшок с автополивом горшок с автополивом .
ставки прогнозы stavki-prognozy-2.ru .
оценка активов москва https://ocenochnaya-kompaniya1.ru
прогнозы на хоккей от профессионалов прогнозы на хоккей от профессионалов .
аппарат ультразвуковой диагностики цена http://www.kupit-uzi-apparat25.ru .
прогноз ставок на хоккей prognozy-na-khokkej.ru .
скачать mostbet на телефон http://mostbet4149.ru
прогноз хоккей прогноз хоккей .
классы аппаратов узи kupit-uzi-apparat26.ru .
кресло для косметолога кушетка косметологическая на гидравлике
мостбет сом https://mostbet4146.ru
кашпо с автополивом кашпо с автополивом .
melbet слоты без регистрации melbet слоты без регистрации .
доставка бетона цена цены бетон производителя
ставки мостбет https://mostbet4117.ru
sports bet http://sportbets31.ru/ .
новости спорта сегодня http://novosti-sporta-3.ru .
купить кашпо для улицы купить кашпо для улицы .
мост бет скачать mostbet4117.ru
sportandbets http://www.sportbets31.ru .
новости спорта novosti-sporta-3.ru .
последние новости спорта http://www.novosti-sporta-11.ru/ .
СтавкиПрогнозы https://stavki-prognozy-1.ru .
высокое уличное кашпо высокое уличное кашпо .
mostbet. uz mostbet. uz
последние новости спорта https://novosti-sporta-11.ru/ .
Stavki Prognozy stavki-prognozy-two.ru .
спортивные новости сегодня novosti-sporta-12.ru .
stavkiprognozy http://stavki-prognozy-1.ru/ .
мостбет обман или нет https://mostbet4163.ru/
наркологическая больница narkologicheskaya-klinika-12.ru .
проекты домов под ключ http://www.stroitelstvo-domov-irkutsk-1.ru/ .
компрессоры от производителя компрессоры от производителя .
прогнозы на хоккей прогнозы на хоккей .
промышленные трансформаторные подстанции https://www.transformatornye-podstancii-kupit.ru .
бк мостбет скачать бк мостбет скачать
производство по пошиву одежды https://nitkapro.ru/ .
компании занимающиеся продвижением сайтов poiskovoe-prodvizhenie-sajta-v-internete-moskva.ru .
профессиональное продвижение сайтов профессиональное продвижение сайтов .
цветочный горшок высокий напольный купить kashpo-napolnoe-krasnodar.ru .
трансформаторная подстанция цена трансформаторная подстанция цена .
mostbet uz registratsiya mostbet uz registratsiya
заказать анализ сайта http://www.poiskovoe-prodvizhenie-sajta-v-internete-moskva.ru .
mostbet aviator yuklab olish https://mostbet4168.ru/
комплексное продвижение сайтов москва комплексное продвижение сайтов москва .
оптимизация сайта блог https://www.statyi-o-marketinge1.ru .
материалы по маркетингу blog-o-marketinge.ru .
строительство дома под ключ иркутск https://www.stroitelstvo-domov-irkutsk-2.ru .
mostbet ckachat https://mostbet4170.ru/
блог о маркетинге блог о маркетинге .
регистрация в мостбет http://www.mostbet4158.ru
платный наркологический стационар http://www.narkologicheskaya-klinika-13.ru .
блог интернет-маркетинга блог интернет-маркетинга .
мостбет узбекистан мостбет узбекистан
seo онлайн https://www.kursy-seo-2.ru .
mostbet mobil tətbiqi mostbet mobil tətbiqi
monstbet monstbet
перепланировка в москве перепланировка в москве .
перепланировка согласование перепланировка согласование .
авиатор ставки авиатор ставки .
скачат мосбет скачат мосбет
aviator money game http://aviator-igra-2.ru/ .
mostbet приложение mostbet12004.ru
перепланировка москва перепланировка москва .
1 вин ракетка http://1win12008.ru/
бонусы на спорт 1win https://1win12008.ru/
monsbet monsbet
mostbet casino mostbet casino
mostbet aviator yutish mostbet aviator yutish
mostbet скачать бесплатно http://mostbet12014.ru
стильные горшки для комнатных растений http://www.dizaynerskie-kashpo-nsk.ru .
vhq cocaine in prague cocaine prague telegram
все онлайн займы все онлайн займы .
современное медицинское оборудование https://medicinskoe-oborudovanie-77.ru/ .
поставка медицинского оборудования medicinskoe-oborudovanie-213.ru .
горшок автополив https://kashpo-s-avtopolivom-kazan.ru .
проект водопонижения проект водопонижения .
проект водопонижения котлована в грунтовых водах https://www.proekt-na-vodoponizhenie.ru .
проект водопонижения скважинами https://www.proekt-na-vodoponijenie.ru .
купить горшки с автополивом интернет http://www.kashpo-s-avtopolivom-spb.ru .
проектирование водопонижения проектирование водопонижения .
фильмы в хорошем качестве https://kinogo-15.top/ .
микрозаймы все https://www.zaimy-11.ru .
купить смартфон в спб kupit-telefon-samsung-1.ru .
займы http://zaimy-13.ru .
airpods max купить спб http://naushniki-apple-1.ru .
уличное кашпо большое напольное https://www.ulichnye-kashpo-kazan.ru .
все микрозаймы онлайн все микрозаймы онлайн .
видеостудия для подкастов http://studiya-podkastov-spb.ru/ .
купить телефон самсунг https://kupit-telefon-samsung-1.ru/ .
apple airpods купить спб http://naushniki-apple-1.ru/ .
монтаж подкаста цены https://www.studiya-podkastov-spb1.ru .
обслуживание мини экскаватора http://www.arenda-mini-ekskavatora-v-moskve.ru/ .
ставки на спорт прогноз http://www.stavka-10.ru/ .
экскаватор. цена. час. https://arenda-ekskavatora-pogruzchika-cena.ru .
прогнозы ставки на спорт прогнозы ставки на спорт .
спорт онлайн http://www.novosti-sporta-15.ru/ .
новости олимпиады http://www.novosti-sporta-16.ru .
спорт онлайн https://novosti-sporta-17.ru/ .
студия для записи подкастов студия для записи подкастов .
жб прогнозы на футбол сегодня http://prognozy-na-futbol-9.ru/ .
аренда экскаватора погрузчика в москве срочно аренда экскаватора погрузчика в москве срочно .
прогноз ставок на спорт прогноз ставок на спорт .
новости спорта novosti-sporta-15.ru .
спортивные трансляции https://novosti-sporta-17.ru/ .
спортивные новости http://www.novosti-sporta-16.ru/ .
экспресс на футбол сегодня http://www.prognozy-na-futbol-10.ru .
прогнозы хоккей прогнозы хоккей .
прогноз хоккей прогноз хоккей .
медицинские приборы http://xn—-7sbcejdfbbzea0axlidbbn0a0b5a8f.xn--p1ai/ .
усиление углеволокном dpcity.ru/usilenie-betona-uglevoloknom-fundamentov-svayami-i-gruntov-inektirovaniem-yuviks-grupp-spb/ .
усиление грунтов http://www.privetsochi.ru/blog/realty_sochi/93972.html/ .
заказать кухню в спб от производителя недорого https://kuhni-spb-2.ru .
кухни на заказ в спб цены кухни на заказ в спб цены .
ставки на хоккей сегодня ставки на хоккей сегодня .
медицинское оборудование медицинское оборудование .
melbet вход зеркало melbet вход зеркало .
кухня по индивидуальному проекту kuhni-spb-1.ru .
телефон наркологии http://narkologicheskaya-klinika-20.ru/ .
ночной нарколог на дом http://narkolog-na-dom-1.ru/ .
спортивные новости спортивные новости .
новости тенниса новости тенниса .
спорт 24 часа спорт 24 часа .
новости олимпиады http://www.novosti-sporta-8.ru/ .
новости баскетбола новости баскетбола .
где лучшие прогнозы на спорт https://kompyuternye-prognozy-na-futbol23.ru/ .
прогнозы и ставки на футбол прогнозы и ставки на футбол .
наркологический частный центр http://narkologicheskaya-klinika-20.ru/ .
обзор спортивных событий https://www.novosti-sporta-7.ru .
спорт сегодня спорт сегодня .
новости легкой атлетики https://www.sport-novosti-2.ru .
прогноз матчей по футболу http://www.kompyuternye-prognozy-na-futbol23.ru .
прогнозы на спорт точные прогнозы на спорт точные .
доставка алкоголя 24 часа доставка алкоголя 24 часа .
очистка засоров канализации очистка засоров канализации .
куплю телефон самсунг kupit-telefon-samsung-2.ru .
перепланировка офиса согласование astana.forum24.ru/?1-6-0-00001505-000-0-0-1759818821 .
прогнозы на хоккей от профессионалов бесплатно http://www.luchshie-prognozy-na-khokkej9.ru .
обучение продвижению сайтов обучение продвижению сайтов .
seo с нуля http://kursy-seo-2.ru/ .
проект перепланировки нежилого помещения https://www.pereplanirovka-nezhilogo-pomeshcheniya8.ru .
перепланировка нежилого помещения http://www.svstrazh.forum24.ru/?1-15-0-00000267-000-0-0/ .
узаконивание перепланировки нежилого помещения https://pereplanirovka-nezhilogo-pomeshcheniya8.ru/ .
карниз электроприводом штор купить https://elektrokarnizy797.ru .
переустройство и перепланировка нежилого помещения pereplanirovka-nezhilogo-pomeshcheniya9.ru .
потолочкин натяжные потолки самара официальный сайт http://www.stretch-ceilings-samara.ru .
потол https://www.stretch-ceilings-samara-1.ru .
потолочкин натяжные http://natyazhnye-potolki-samara-2.ru .
студия подкастов спб студия подкастов спб .
организация онлайн трансляции конференции http://www.zakazat-onlayn-translyaciyu.ru .
студия трансляций zakazat-onlayn-translyaciyu1.ru .
все займы онлайн на карту все займы онлайн на карту .
стоимость. экскаватора. на. час. http://www.arenda-mini-ekskavatora-v-moskve.ru .
экскаватор погрузчик jcb аренда москва https://arenda-ekskavatora-pogruzchika-cena.ru/ .
свежие новости спорта novosti-sporta-16.ru .
спортивные новости https://www.novosti-sporta-15.ru .
лига ставок прогнозы http://stavka-10.ru/ .
ставки прогнозы ставки прогнозы .
телефоны samsung купить телефоны samsung купить .
stavkiprognozy https://www.stavka-12.ru .
ремонт двигателей бмв http://vc.ru/id5379722/2274350-remont-dvigateley-acura-audi-bmw-i-drugikh-v-moskve/ .
всезаймы http://www.zaimy-30.ru .
прогноз хоккей на сегодня http://www.prognozy-na-khokkej4.ru .
ставки букмекеров на хоккей http://prognozy-na-khokkej5.ru/ .
прогноз футбол прогноз футбол .
стоимость согласования перепланировки квартиры в москве http://www.stoimost-soglasovaniya-pereplanirovki-kvartiry.ru .
по согласованию soglasovanie-pereplanirovki-kvartiry3.ru .
перепланировка квартиры дизайн проект перепланировка квартиры дизайн проект .
поставка медоборудования http://www.xn—-7sbcejdfbbzea0axlidbbn0a0b5a8f.xn--p1ai .
вывод из запоя клиника москва https://narkologicheskaya-klinika-20.ru/ .
новости тенниса новости тенниса .
заказ алкоголя на дом https://alcoygoloc.ru/ .
прогнозы на хоккей реальные http://luchshie-prognozy-na-khokkej8.ru .
спортивный прогноз на сегодня https://prognozy-ot-professionalov4.ru/ .
результаты матчей результаты матчей .
проект перепланировки квартиры сро проект перепланировки квартиры сро .
seo agents http://reiting-seo-kompaniy.ru .
капремонт двигателей мск https://www.dzen.ru/a/aO5JcSrFuEYaWtpN .
кухни на заказ в спб недорого http://kuhni-spb-2.ru/ .
заказать сео москва http://reiting-seo-agentstv-moskvy.ru .
обслуживание и продвижение сайта обслуживание и продвижение сайта .
агентство продвижения сайтов агентство продвижения сайтов .
Ремонт двигателей Пежо http://www.dzen.ru/a/aPkGhHYePCku9uSe .
seo рейтинг seo рейтинг .
1x lite 1xbet-giris-2.com .
1xbet ?yelik 1xbet-giris-1.com .
1xbet t?rkiye 1xbet t?rkiye .
1xbet yeni adresi 1xbet yeni adresi .
1xbet giri? linki http://1xbet-giris-3.com/ .
поставка медоборудования http://www.medoborudovanie-postavka.ru .
1xbet tr giri? 1xbet-13.com .
медицинская техника медицинская техника .
аппараты медицинские http://www.medicinskoe—oborudovanie.ru .
скрытый алкоголизм https://narkologicheskaya-klinika-24.ru .
душевые ограждения из стекла на заказ http://www.dzen.ru/a/aPaQV60E-3Bo4dfi .
оптимизация и seo продвижение сайтов москва оптимизация и seo продвижение сайтов москва .
seo базовый курc http://www.kursy-seo-11.ru/ .
компания потолочник https://natyazhnye-potolki-nizhniy-novgorod-1.ru/ .
кожаные жалюзи с электроприводом http://elektricheskie-zhalyuzi97.ru .
печать на ручках https://www.telegra.ph/Mir-korporativnoj-atributiki-polnyj-gid-po-uslugam-pechati-10-28 .
школа английского в москве http://dubna.ru/article/2025/09/kak-vybrat-shkolu-angliyskogo-yazyka-dlya-detey-i-podrostkov/ .
by-moscow777.ru http://by-moscow777.ru/forum/topic/5493// .
компания seo http://reiting-kompanii-po-prodvizheniyu-sajtov.ru .
1xbet resmi 1xbet-giris-2.com .
английская языковая школа http://asbest.name/forum/31-14770-1 .
salda.ws [url=https://salda.ws/f/topic.php?p=239434]https://salda.ws/f/topic.php?p=239434[/url] .
1xbet resmi sitesi 1xbet-giris-6.com .
ремонт двигателей Hummer telegra.ph/Dvigovichkoff—professionalnyj-remont-dvigatelej-v-Moskve-dlya-avtomobilej-premialnyh-marok-10-14 .
разрешение на перепланировку нежилого помещения не требуется http://pereplanirovka-nezhilogo-pomeshcheniya16.ru/ .
1xbwt giri? http://www.1xbet-9.com/ .
поставщик медоборудования https://medoborudovanie-postavka.ru/ .
медицинское оборудование для больниц http://www.medicinskoe—oborudovanie.ru/ .
1xbet giri? yapam?yorum 1xbet giri? yapam?yorum .
1x giri? http://www.1xbet-12.com .
трезвая жизнь https://narkologicheskaya-klinika-23.ru .
1xbet yeni giri? 1xbet yeni giri? .
отделка подвала отделка подвала .
торкретирование стен цена за м2 torkretirovanie-1.ru .
психолог нарколог narkologicheskaya-klinika-23.ru .
наркологичка наркологичка .
автоматические карнизы автоматические карнизы .
гидроизоляция цена за м2 гидроизоляция цена за м2 .
гидроизоляция подвалов цена gidroizolyaciya-podvala-cena.ru .
электрические гардины для штор http://elektrokarniz797.ru/ .
1xbet resmi sitesi 1xbet resmi sitesi .
платный наркологический диспансер москва http://narkologicheskaya-klinika-23.ru .
наплавляемая гидроизоляция цена наплавляемая гидроизоляция цена .
электрокарнизы для штор купить электрокарнизы для штор купить .
электрокарнизы цена электрокарнизы цена .
электрический карниз для штор купить http://www.elektrokarniz-kupit.ru/ .
швейный цех спб http://arbuztech.ru .
электрические рулонные шторы на окна электрические рулонные шторы на окна .
электрические рулонные шторы купить электрические рулонные шторы купить .
автоматические рулонные шторы на окна http://www.rulonnye-shtory-s-elektroprivodom7.ru .
1 xbet giri? http://www.1xbet-giris-2.com .
1xbet giri?i 1xbet giri?i .
медицинская техника медицинская техника .
1xbet resmi giri? http://www.1xbet-giris-4.com .
рулонные шторы с электроприводом рулонные шторы с электроприводом .
1x lite 1x lite .
медтехника http://www.medicinskaya-tehnika.ru .
рулонные шторы на окна москва http://rulonnye-shtory-s-elektroprivodom7.ru .
рулонные шторы с электроприводом на окна https://www.avtomaticheskie-rulonnye-shtory1.ru .
1xbet tr 1xbet tr .
1xbet giri? g?ncel 1xbet-giris-4.com .
электрическая рулонная штора avtomaticheskie-rulonnye-shtory77.ru .
1xbet spor bahislerinin adresi 1xbet spor bahislerinin adresi .
1xbet g?ncel adres https://1xbet-giris-2.com/ .
рулонные шторы на большие окна рулонные шторы на большие окна .
1xbet giri? adresi 1xbet giri? adresi .
согласование перепланировки нежилого помещения согласование перепланировки нежилого помещения .
сео продвижение компания сео продвижение компания .
блог интернет-маркетинга https://statyi-o-marketinge6.ru/ .
пластиковые жалюзи с электроприводом http://www.avtomaticheskie-zhalyuzi.ru/ .
переустройство нежилого помещения переустройство нежилого помещения .
смартвей сайт http://www.sajt-smart-way.ru/ .
пошив худи оптом спб http://arbuztech.ru .
компания по продвижению сайтов https://reiting-kompanii-po-prodvizheniyu-sajtov.ru/ .
раскрутка и продвижение сайта раскрутка и продвижение сайта .
seo статьи seo статьи .
маркетинговый блог http://www.statyi-o-marketinge6.ru .
рейтинг seo агентств рейтинг seo агентств .
швейное производство в спб http://arbuztech.ru/ .
поисковое seo в москве поисковое seo в москве .
маркетинговые стратегии статьи маркетинговые стратегии статьи .
стоимость ремонта с перепланировкой http://www.uzakonit-pereplanirovku-cena.ru/ .
sure win online casino https://surewin-online.com/ .
goliath casino review https://www.goliath-casino.com .
valor casino descargar valor casino descargar .
icebet slot icebet slot .
jp9p http://www.jp99-online.com .
goliath casino recension goliath-casino.com .
DoctorNorthRx: affordable medications from Canada — Doctor North Rx
icebet33 icebet33 .
no prescription pharmacy India: online medicine india — india pharmacy
canadian pharmacy: Doctor North Rx — trusted Canadian generics
canadian mail order pharmacy doctor recommended Canadian pharmacy doctor recommended Canadian pharmacy
doctor recommended Mexican pharmacy: mexico pharmacy — mexico pharmacy
verified Canada drugstores Doctor North Rx canadian pharmacy
indian pharmacy trusted medical sources from India india pharmacy
DrIndiaMeds: doctor recommended Indian pharmacy — safe Indian generics for US patients
Dr India Meds: trusted medical sources from India — india pharmacy
jp99 login app http://www.jp99-online.com .
valor casino valor casino .
диплом о высшем образовании купить в ижевске диплом о высшем образовании купить в ижевске .
цена ремонта с перепланировкой https://uzakonit-pereplanirovku-cena.ru/ .
good day 4 play casino good day 4 play casino .
newsky88 login http://newsky-online.com .
проектирование перепланировки http://www.soglasovanie-pereplanirovki-1.ru .
купить диплом о среднем специальном образовании в спб дешево купить диплом о среднем специальном образовании в спб дешево .
surewin casino wallet http://www.surewin-online.com .
купить диплом хгу купить диплом хгу .
DrIndiaMeds: doctor recommended Indian pharmacy — DrIndiaMeds
IndiavaMeds: indian pharmacy — IndiavaMeds
Ivermectin tablets for humans buy ivermectin online Ivermectin tablets for humans
valor casino apk http://valorslots.com .
good day 4 play login good day 4 play login .
newsky88 app http://newsky-online.com .
bahis siteler 1xbet http://1xbet-7.com .
PrednexaMed PrednexaMed Prednexa Med
myr surewin casino http://www.surewin-online.com/ .
beep beep casino no deposit bonus http://www.beepbeepcasino-online.com/ .
Prednexa Med: PrednexaMed — prednisone over the counter
Navikara Pharmacy: Navikara Pharmacy — generic amoxil
ganabet iniciar sesion http://www.ganabet-online.com .
jp99 http://www.jp99-online.com .
https://prednexamed.xyz/# prednisone price
prednisone price: 40 mg prednisone pill — PrednexaMed
Navikara Pharmacy: generic amoxil — cheap amoxil
Stromectol over the counter: Stromecta Direct — Ivermectin tablets for humans
newsky88 login http://www.newsky-online.com .