«почти все» датчики ds18b20, приобретенные не у официальных дистрибьюторов, являются подделками, клонами

Характеристики модуля KY-001.

Модуль датчика температуры KY-001 состоит из цифрового датчика температуры DS18B20, светодиода и резистора. Модуль совместим с популярными электронными платформами, такими как Arduino, Raspberry Pi и Esp8266.

  • Собран на цифровом сенсоре DS18B20, напряжение питания от 3.0 V до 5.5 V.
  • Измеряемая температура -55 ° C до +125 ° C, по Фаренгейту — 67 ° F до 257 ° F.
  • В диапазоне от -10 °C до +85 ° C точность измерения ± 0.5 ° C.
  • Время измерения не более 750 миллисекунд.

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

Схема подключения модуля KY-001 (DS18B20) к Arduino.

Схема подключения модуля KY-001 (DS18B20) к Arduino NANO.

Схема подключения модуля KY-001 (DS18B20) к Arduino.

Подключите линию питания (посередине) c к +5 Arduino, землю (-) и GND соответственно. Подключите сигнал (S) к контакту 2 на Arduino.

Подключение (слева направо)

  • GND
  • +5V
  • S — Signal, в примере подключаем ко 2 выводу arduino

Скетч вывода температуры с модуля KY-001 (DS18B20) в монитор порта.

Код ниже будет выводить показания температуры с модуля KY-001 (DS18B20) в монитор последовательного порта каждую секунду.

#include <OneWire.h>
OneWire ds(2);
void setup() {
    Serial.begin(9600);
}
void loop() {
    byte i;
    byte data;
    byte addr;
    float celsius;
    // поиск датчика
    if ( !ds.search(addr)) {
        ds.reset_search();
        delay(250);
        return;
    }
    ds.reset();
    ds.select(addr);
    ds.write(0x44, 1); // измерение температуры
    delay(1000);
    ds.reset();
    ds.select(addr); 
    ds.write(0xBE); // начало чтения измеренной температуры
    //показания температуры из внутренней памяти датчика
    for ( i = 0; i < 9; i++) {
        data = ds.read();
    }
    int16_t raw = (data << 8) | data;
    // датчик может быть настроен на разную точность, выясняем её 
    byte cfg = (data & 0x60);
    if (cfg == 0x00) raw = raw & ~7; // точность 9-разрядов, 93,75 мс
    else if (cfg == 0x20) raw = raw & ~3; // точность 10-разрядов, 187,5 мс
    else if (cfg == 0x40) raw = raw & ~1; // точность 11-разрядов, 375 мс
    // преобразование показаний в градусы Цельсия 
    celsius = (float)raw / 16.0;
    Serial.print("t=");
    Serial.println(celsius);
}

Вот такой результат мы увидим в мониторе порта.

Данный пример достаточно сложный для понимания. Для упрощения работы с датчиком лучше использовать библиотеку DallasTemperature.h. Данная библиотека ставится поверх OneWire.h, т.е. для ее работы должна быть установлена библиотека OneWire.

С библиотекой DallasTemperature устанавливаются примеры. Вы можете воспользоваться любым из них.

Мы рассмотрим более простотой пример, который я взял из библиотеки, и немного его упростил.

#include <OneWire.h>
#include <DallasTemperature.h>
// контакт 2 на Arduino:
#define ONE_WIRE_BUS 2
// создаем экземпляр класса OneWire, чтобы с его помощью
// общаться с однопроводным устройством
OneWire oneWire(ONE_WIRE_BUS);
// передаем объект oneWire объекту sensors:
DallasTemperature sensors(&oneWire);
void setup(void)
{
  Serial.begin(9600);
  // запускаем библиотеку:
  sensors.begin();
}
void loop(void){
  // вызываем функцию sensors.requestTemperatures(),
  // которая приказывает всем устройствам, подключенным к шине
  sensors.requestTemperatures();
  Serial.print("Celsius temperature: ");
  //  в Цельсиях:
  Serial.print(sensors.getTempCByIndex(0));
  Serial.print(" - Fahrenheit temperature: ");
  //  в Фаренгейтах:
  Serial.println(sensors.getTempFByIndex(0));
  delay(1000);
}

В данном примере температура выводится 1 раз в секунду, и при этом выводится температура в Цельсиях и Фаренгейтах в монитор последовательного порта.

Как видите, данный пример намного меньше и более понятен для новичка.

KY-001датчик температуры DS18B20 к ArduinoKY-001

Купить модуль KY-001 можно тут:

Описание всех датчиков из набора «37 in 1 Sensors Kit for Arduino» вы можете посмотреть на странице описания данного набора модулей для Arduino.

Понравился Урок KY-001 модуль температуры на базе DS18B20. Подключение Arduino? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу , в группу на .

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Скачивая материал, я соглашаюсь с
Правилами скачивания и использования материалов.

Модуль KY-001 датчика температуры DS18B20.pdf 82 Kb 234 Скачать
Скетч вывода температуры с модуля KY-001 .ino 1 Kb 230 Скачать
Код с использованием бмблиотеки DallasTemperature.h.ino 1 Kb 231 Скачать
Библиотека DallasTemperature .zip 31 Kb 224 Скачать

Описание датчика DS18B20 для Arduino

DS18B20 – это цифровой температурный датчик, обладающий множеством полезных функций. По сути, DS18B20 – это целый микроконтроллер, который может хранить значение измерений, сигнализировать о выходе температуры за установленные границы (сами границы мы можем устанавливать и менять), менять точность измерений, способ взаимодействия с контроллером и многое другое. Все это в очень небольшом корпусе, который, к тому же, доступен в водонепроницаемом исполнении.


Микросхема имеет три выхода, из которых для данных используется только один, два остальных – это земля и питание. Число проводов можно сократить до двух, если использовать схему с паразитным питанием и соединить Vdd с землей. К одному проводу с данными можно подключить сразу несколько датчиков DS18B20 и в плате Ардуино будет задействован всего один пин.

Где купить датчик

Влагозащищенный датчик температуры DS18B20 с длиной провода 1 м от надежного магазина Комплект из 10 микросхем DS18B20 TO92 Модуль DS18B20 для удобного подключения к Ардуино от Keyestudio
Беспроводной модуль DS18B20 на ESP8266 ESP-01 ESP-01S для проектов умного дома Шилд датчика DS18B20 для платы D1 MINI – беспроводная передача данных Датчик DS18B20 с модулем для подключения к Ардуино

Особенности цифрового датчика DS18B20

Погрешность измерения не больше 0,5 С (для температур от -10С до +85С), что позволяет точно определить значение температуры. Не требуется дополнительная калибровка.
Температурный диапазон измерений лежит в пределах от -55 С до +125 С.
Датчик питается напряжением от 3,3В до 5В.
Можно программно задать максимальную разрешающую способность до 0,0625С, наибольшее разрешение 12 бит.
Присутствует функция тревожного сигнала.
Каждое устройство обладает своим уникальным серийным кодом.
Не требуются дополнительные внешние элементы.
Можно подключить сразу до 127 датчиков к одной линии связи.
Информация передается по протоколу 1-Wire.
Для присоединения к микроконтроллеру нужны только 3 провода.
Существует так называемый режим паразитного питания – в нем происходит питание напрямую от линии связи. Для подключения в этом случае нужны только 2 провода

Важно, что в этом режиме не гарантируется корректная работа при температурах выше 100С. Режим паразитного питания удобно обычно применяется для приложений с удаленным температурным датчиком.

Память датчика состоит из двух видов: оперативной и энергонезависимой – SRAM и EEPROM. В последнюю записываются регистры конфигурации и регистры TH, TL, которые могут использоваться как регистры общего назначения, если не используются для указания диапазона допустимых значений температуры.

Основной задачей DS18B20 является определение температуры и преобразование полученного результата в цифровой вид. Мы можем самостоятельно задать необходимое разрешение, установив количество бит точности – 9, 10, 11 и 12. В этих случаях разрешающие способности будут соответственно равны 0,5С, 0,25С, 0,125С и 0,0625С.

Во время включения питания датчик находится в состоянии покоя. Для начала измерения контроллер Ардуино выполняет команду «преобразование температуры». Полученный результат сохранится в 2 байтах регистра температуры, после чего датчик вернется в первоначальное состояние покоя. Если схема подключена в режиме внешнего питания, микроконтроллер регулирует состояние конвертации. Во время выполнения команды линия находится в низком состоянии, после окончания программы линия переходит в высокое состояние. Такой метод не допустим при питании от паразитной емкости, так как на шине постоянно должен сохраняться высокий уровень сигнала.

Полученные температурные измерения сохраняются в SRAM датчика. 1 и 2 байты сохраняют полученное значение температуры, 3 и 4 сохраняют пределы измерения, 5 и 6 зарезервированы, 7 и 8 используются для высокоточного определения температуры, последний 9 байт хранит устойчивый к помехам CRC код.

Сборка конструкции температурного датчика

Схему интерфейса последовательного порта рекомендуется выполнить на макете. Такой способ позволяет убедиться в правильности работы схемы перед созданием окончательной электронной платы.

Окончательный вариант, собранный на текстолитовой плате, следует рассчитать под размещение внутри интерфейса DB9. Такое размещение обеспечивает компактность конструкции и надежность электроники датчика температуры последовательного порта.

Малочисленность комплектующих деталей электронной схемы позволяет внедрить всё содержимое непосредственно в корпус разъёма DB9. В результате получается удобный интерфейс

Сам датчик DS18S20 припаивается на противоположном конце проводной линии, выведенной от электронной платы. Длина линии должна учитываться в соответствии с ранее отмеченными нюансами. Контакты 1 и 3 датчика соединяются вместе. Для изоляции контакта 2 от других контактов используется короткая изолирующая поливинилхлоридная трубка.

Не исключается подключение дополнительных температурных датчиков DS18S20 параллельно друг другу, используя более длинные провода для крепежа к интерфейсной схеме. Групповая комбинация позволит контролировать несколько температур в разных местах через один последовательный интерфейс.

Схемы подключения через USB интерфейс

Учитывая отказ производителей новых компьютеров включать в системные материнские платы последовательные порты DB9, актуальной становится необходимость сопряжения температурного датчика DS18S20 с интерфейсом иного типа. Явным претендентом здесь видится порт USB.

Существуют различные по исполнению недорогие адаптеры «USB-to-SERIAL». Однако далеко не все из таких преобразователей успешно сочетаются с новыми версиями операционных систем, включая «Windows 10».

Адаптер «USB-to-SERIAL», на примере широко распространённого исполнения с микросхемой PL2303TA, предоставляет возможность подключения температурного датчика на компьютерах, где отсутствует порт DB9

Рекомендуется использовать «USB-to-SERIAL» адаптеры, построенные на микросхемах PL2303TA или аналогичных. На практике отмечена стабильная работа таких адаптеров с «Windows XP» / «Vista» / 7, 8, 10 / «MacOS X» / «Linux».

Этот тип адаптера эмулирует 1-проводной интерфейс DS9097, который вполне устойчиво работает на взаимодействие с 1-проводными устройствами, идентичными схеме интерфейса последовательного порта.

Распиновка «USB-to-SERIAL» адаптера PL2303TA:

  • красный (+ 5В),
  • белый (RXD),
  • чёрный (земляная шина),
  • зеленый (TXD).

Драйверы адаптера «USB-to-SERIAL»

Под операционную систему «Windows» и «MacOS X» потребуется установить соответствующие «Prolific» драйверы (доступны здесь или использовать этот, если есть проблемы в «Windows 7»).

Между тем относительно недавний дистрибутив «Linux» показывает успешную работу адаптеров без необходимости загрузки драйверов. В частности, тестировался «USB-to-SERIAL» адаптер на PL2303TA, подключаемый к «Ubuntu» версий 12.04 и 14.04.2. Каких-либо драйверов не потребовалось.

Чтобы использовать «USB-to-SERIAL» адаптер на PL2303TA с температурными датчиками, работающими в паразитном режиме, следует подключать один или несколько приборов DS18S20 так:

  • красный (не используется),
  • белый (не используется),
  • черный (подключен на GND и VDD),
  • зеленый (подключен на выход DQ).

Тестирование в паразитном режиме по длине кабеля

На практике тестировался «USB-to-SERIAL» адаптер на PL2303TA с тремя температурными датчиками типа DS18S20. Все три прибора, подключенные параллельно, работающие в паразитном режиме, соединялись с рабочей платой через кабель длиной 300 метров. По результатам эксперимента отмечалась нормальная работа. Все три датчика температуры успешно обнаруживались системой.

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

Эти результаты испытаний заставляют сомневаться в требованиях подключения датчиков температуры DS18S20 в непаразитарном (c внешним питанием) режиме при использовании адаптеров USB на PL2303TA. Как показал тест, микросхема PL2303TA успешно работает в паразитном режиме с более длинными (длиннее 100 метров) соединительными линиями.

Признаки выхода из строя датчика ОЖ

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

  • Активизация контрольной лампы на панели Check Engine. Однако она может активироваться и при других поломках, поэтому необходимо выполнить дополнительное сканирование кода ошибки.
  • Повышение расхода топлива. Это вызвано тем, что на электронный блок управления подается некорректная информация, и соответственно, он также не в состоянии определить сколько именно топлива нужно не только создания оптимальной топливовоздушной смеси, но и для поддержания температуры двигателя в нормальном (не аварийном) диапазоне.
  • Нестабильная работа мотора. В частности, нестабильная его работа на холостых оборотах, сложности с запуском (особенно в холодное время года), самопроизвольная остановка при низких оборотах.
  • Двигатель глохнет «на горячую». То есть, он может внезапно заглохнуть при достижении критической температуры охлаждающей жидкости. Причем это не зависит от того, какая именно охлаждающая жидкость была залита в систему (в частности, фабричный антифриз или обыкновенная вода).
  • Проблемы в работе охлаждающего вентилятора на радиаторе. Это может проявляться по-разному. В одних случаях вентилятор не включается вовсе, в других — не включается в аварийных режимах, в третьих — не выключается даже при остывании двигателя. При отключении датчика температуры охлаждающей жидкости электронный блок управления воспринимает это как обрыв цепи датчика и принудительно включает вентилятор. В любом случае для получения точной картины необходимо выполнить дополнительную диагностику датчика и/или термостата.

Ввод в эксплуатацию

В качестве демонстрации я написал практический пример в виде мониторинга температуры с помощью датчика DS18B20, работающего по протоколу 1-Wire.

Результат измерения отображается на небольшом OLED-дисплее (драйвер SSD1306), управляемом по I2C шине.

Код программы это, по сути, компиляция кода из двух примеров, касающихся перечисленных систем (DS18B20 и OLED-дисплея). Кроме того, код сделан максимально коротким, чтобы уместить его в память Attiny. Хотя это и так, но использование памяти достигло 100% (6012 байт). Из-за этого, как видите в коде, закомментированной является функция проверки контрольной суммы.

Здесь я столкнулся с двумя проблемами, как и в предыдущем проекте (с датчиком HC-SR04). Во-первых, быстро заканчивается FLASH-память, а во-вторых, это распределение контактов. 1-Wire не хотел работать на контакте P1, помогла замена на контакт на P3.

Монтаж датчика теплого пола

Перед тем как установить датчик температуры теплого пола следует ознакомиться с подробной инструкцией к данной процедуре.

Выглядит она следующим образом:

  1. Если монтаж осуществляется внутренним способом, то датчик следует расположить между петлями энергокабеля на равном расстоянии от них.
  2. Зафиксировать устройство можно куском строительной ленты.
  3. Лента же должна быть закреплена с отступом от стенки в 50 сантиметров на участке между петлями кабеля, ближайшими к точке монтажа датчика
  4. Затем датчик укладывают в гофрированную трубку и герметично закрывают отверстия в ней.
  5. Один край трубки должен быть зафиксирован куском монтажной ленты, а второй подведен к регулятору температуры.

Подключение датчика DS18B20 к микроконтроллеру

Типовая схема подключения датчиков DS18B20 к микроконтроллеру: Как видно из схемы, датчик DS18B20 (или датчики) подключаются к микроконтроллеру, если они имеют общее питание, тремя проводниками: — вывод №1 — общий провод (масса, земля) — вывод №2 — он же DQ , по которому происходит общение между МК и DS18B20, подключается к любому выводу любого порта МК. Вывод DQ обязательно должен быть «подтянут» через резистор к плюсу питания — вывод №3 — питание датчика — +5 вольт Если в устройстве используется несколько датчиков температуры, то их можно подключить к разным выводам порта МК, но тогда увеличится объем программы. Датчики лучше подключать как показано на схеме — параллельно, к одному выводу порта МК. Напомню о величине подтягивающего резистора: «Сопротивление резистора надо выбирать из компромисса между сопротивлением используемого кабеля и внешними помехами. Сопротивление резистора может быть от 5,1 до 1 кОм. Для кабелей с высоким сопротивлением жил надо использовать более высокое сопротивление. А там где присутствуют промышленные помехи – выбирать более низкое сопротивление и использовать кабель с более большим сечением провода. Для телефонной лапши (4 жилы) для 100 метров необходим резистор 3,3 кОм. Если вы применяете «витую пару» даже 2 категории длина может быть увеличена да 300 метров»

Умный дом своими руками

Существует несколько способов подключения датчиков температуры DS18B20 к сети 1-wire. В этой заметке я опишу способ подключения температурного датчика по схеме с «паразитным» питанием, где в качестве мастера сети 1-wire используется оригинальное USB-устройство DS9490R.

Данный способ подключения является очень удобным, т.к. используются всего две жилы проводника, а так же нет необходимости в дополнительной обвязке со схемой стабилизации питания (если вы планируете использовать в качестве мастера другие устройства, то возможно будет необходима подтяжка — об этом я расскажу позже). Правда стоит отметить, что в официальной документации говорится о возможных негативных последствиях при подключении температурного датчика, но на практике, при использовании мастера DS9490R, я с этими проблемами не встречался.

Итак, схема подключения датчика довольно простая: в качестве шины сети 1-wire я использую простой кабель UTP-5 (витая пара) и, с целью уменьшения помех на линии, использовал для DATA и GND две свитых в одну пару жилы. Ножки датчика 1 (GND) и 3 (Vdd) соединяются накоротко и подключаются к PIN4 у DS9490R. Ножка 2 (DATA) подключается к PIN3 у DS9490R. Таким способом к одному мастеру можно подключить много датчиков (я проверял работоспособность на 15 одновременно подключенных датчиках).

Принципиальная схема подключения DS18B20 с паразитным питанием:

После подключения, датчики появляются в OWFS и показывают температуру

Преимущества данной схемы подключения:

  • Простой и довольно дешевый способ подключения большого количества датчиков температуры
  • Нет необходимости во внешнем питании
  • Нет необходимости в дополнительной «обвязке»
  • Возможна нестабильная работа на шинах большой длинны и большим количеством ведомых устройств в сети
  • Желательно использовать фирменный мастер сети DS9490R

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

До меня о поддельных датчиках писалось еще и здесь. Характерные отличия поддельных датчиков от оригинала:

  1. Датчик, даже подключенный в непосредственной близости, в режиме паразитного питания отвечает неуверенно, через раз.
  2. В режиме паразитного питания высокий уровень восстанавливается слишком долго (можно замерять микроконтроллером или смотреть осциллограмму)
  3. потребление тока значительно выше нескольких микроампер (GND и VCC на минус, DQ через микроамперметр на +5 вольт)
  4. После процедуры перечисления (0xF0) датчики не отвечают на команду чтения скрэтчпада (0xBE)
  5. Температура прочитанная из скрэтчпада после подачи питания без команды замера отличается от 85,0 градусов.
  6. Значения в скрэтчпаде на позициях 5 и 7 не соответствуют 0xFF и 0x10
  7. Значения температуры (на первых двух позициях скрэтчпада) прочитанные после первого включения обесточенного датчика без предварительно поданной команды на замер, возвращают предыдущее значение, а не 50 05 (85.0 градусов).

К сожалению, у меня нет осциллографа, а в качестве испытательного стенда выступал GPS-трекер Galileosky BaseBlock Lite.

Датчики были закуплены у различных продавцов, и только одна партия заработала по паразитному питанию. Было закуплено всего 5 партий по 50 штук. Остальные не заработали по паразитному питанию вообще. Терминал не предусматривает внешнего питания для датчика, а монтаж системы на автомобиль необходимо максимально упростить.

Замена датчика

Чтобы начать ремонт датчика охлаждающей жидкости, нужно определить его расположение. Чаще всего он установлен возле термостата или радиатора, в некоторых случаях бортовой компьютер использует показания с обоих датчиков или одного из них, в зависимости от марки авто и его модели. Например, так датчик расположен в Рено, Шевроле, Ситроен, Шкода, Чери, КИА, Субару Импреза.

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

Фото — датчик температуры на приборной панели

Зависимо от года выпуска машины, а также её марки, многие автолюбители отмечают возрастание затрат топлива у двигателя. Но при этом нужно понимать, что дизель так не определишь (УАЗ, ПАЗ и прочие). Если у Вас механика, а не компьютерная система управления, то вот сигналы того, что нужно купить новый датчик температуры охлаждающей жидкости:

  1. Автомобиль стал потреблять топлива больше, чем обычно;
  2. Когда машина заводится, и двигатель достигает своей максимальной температуры, он глохнет;
  3. Появились проблемы с запуском;
  4. Из трубы глушителя выходит черный дым.

Рассмотрим, как осуществляется замена датчика температуры охлаждающей жидкости типа G62 на автомобиле Kia Sportage с двигателем объемом 2 литра. Аналогичная инструкция также пригодится при ремонте Acura, BMW, Buick, Chevrolet, Ford, Toyota, Volkswagen, Ваз 2110/2112 инжектор, Рено Гранд Сценик и прочих.

  1. Чтобы добраться к датчику, Вам нужно снять воздуховод, который охлаждает корпус воздушного фильтра и присоединяется к радиатору при помощи двух болтовых соединений и шланга подачи воздуха. Открутите болты и снимите хомут, аккуратно достаньте всю систему. Отключите от датчика электрические провода, чтобы корректно провести замеры сопротивления. Установите мультиметр на режим омметра и задайте значение в 1000 Ом. Подключите контакты устройства к положительному и отрицательному контактам. Нормальное сопротивление должно быть в пределах 2700 Ом при выключенном моторе. Для проверки датчика при включенном движке, нужно убрать тестер подальше от вращающихся частей авто;

    Фото — проверка датчика мультиметром

  2. Убедившись, что датчику температуры необходим ремонт, нужно отсоединить его от двигателя. Чтобы продолжить снятие, Вы должны предварительно слить антифризную жидкость из радиатора при помощи сливного клапана. После проверить еще раз радиатор и контакты датчика и открутить регулирующий болт как на фото;

    Фото — снятие датчика

  3. Сборка производится в обратной форме. Нужно помнить, что практически основная характеристика датчика температуры охлаждающей жидкости – это материал шайбы. Если шайба медная, то резьбу сигнализатора не нужно обрабатывать герметиком, в противном случае обязательно смажьте устройство.

    Фото — медный температурный датчик

Совет от автолюбителей на форумах: если по какой-то причине Вы не можете сразу при поломке понять датчик температуры охлаждающей жидкости, то вместо него можно подключить дополнительный (такое подключение может по показателям температуры немного отличаться от основного).

Проверка датчика температуры является несложной процедурой, с которой может справиться даже начинающий автолюбитель. Датчик температуры охлаждающей жидкости (сокращенно — ДТОЖ) представляет собой термистор, то есть, резистор, изменяющий значение своего внутреннего сопротивления в соответствии с температурой, куда помещен его исполнительный элемент. Чаще всего для этого используют мультиметр (другое название — тестер, «цэшка»), который в состоянии измерять значение электрического сопротивления в цепи.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Семинар по технике
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: