Мой опыт построения промышленной сети 1-Wire

Предыстория

Как и многие хабрапользователи, обладая некоторыми навыками и неплохой фантазией, как-то наткнулся на сайт, тогда еще он висел на народе, и посвящался сопряжению самодельных устройств с ПК. Именно тогда зародилось семя безудержного интереса, чтобы что-то сделать и управлять этим с компьютера. Тогда, конечно, все начиналось с lpt порта принтера и постепенно перерастало на com порт и в конечном на usb. Все бы ничего, пока не наткнулся на сайт, посвящений созданию системы умного дома. Тогда я понял, что мне действительно интересно. Опустим долгий и интересный рассказ и перейдем прямо к теме.Пишу данную статью в качестве любителя, не профи, и надеюсь она поможет вам создать свою сеть с нуля, или почерпнуть полезный опыт для своей сети.В статья я хочу описать создание своей сети 1wire с нуля, включая все этапы построения и полезные советы.
  • Проектирование, печать, травление, лужения и пайка печатной платы;
  • Монтаж промышленной шины 1wire;
  • Программные и аппаратные средства управления и мониторинга.
Итак, самое простое для создания сети — это мастер сети и любое устройство, работающие на этом протоколе. Обычно устройства приходится делать самому(кроме датчиков темературы) или покупать за большие деньги. Для новичка понадобится мастер сети usb/com исполнения и пару датчиков температуры. Все это можно подключить, используя штатное питание порта, так называемое паразитное питание, либо подключить дополнительный блок питания в случае большого количества устройств и длинны шлейфа.Я, например, использую готовый мастер сети на usb порт (DS9490R):Как можно видеть, одним концом вставляется в usb порт, обслуживающей системы, это может быть компьютер или wi-fi роутер, или однопалатные решения. Другой конец является «мамой» разъема RJ-11 (стандартный телефонный разъем).Использую также и калиброванные датчики температуры(DS18B20+):Также я использую и планирую использовать:
  • Калиброванные датчики температуры(DS18B20+);
  • 4х-канальные Аналого-Цифровые преобразователи(DS2450S);
  • 8и-канальные чипы входа/выхода(DS2408+).
К сожалению, это все чипы, платы мне пришлось создавать самому, тем более в мануале к каждому чипу можно найти стандартные схемы использования с номиналами элементов и вариантами подключения.Вот несколько плат, что я уже создал. Платы на пятерку не тянут, поэтому не стоит копировать их буквально:VANIL-1880: (небольшая плата 8 входов/выходов для любых нужд — герконы, датчики движения управление слаботочными системами и прочее...)imageVANIL-1853S (плата с 5 входами/выходами и 3мя симисторами для подключения высоковольтных приборов, радиаторов не использовал, поэтому только через реле или магнитные пускатели, спектр применения очень широкий):imageКак видно, все аккуратно помещается в стандартные пластиковые распаянные коробочки с помощью винтиков и термоклея. На данный момент использую сеть только из 20 термодатчиков, для мониторинга температуры на даче, все подключено к серверу на Gentoo Linux. ПО для работы с сетью owfs.Это первая часть статьи предназначена для ознакомления, остальная подробная информация будет добавлена позже и по желанию хаброюзеров. Также хотелось бы узнать и ваш опыт и выслушать критику.Про травление плат: перешел сегодня с хлорного железа на соль + лимонную кислоту + перекись водорода. Пока нет информации о качестве травления, плата все еще травится:imageСостав такой: 100мл перекиси, 30 грамм лимонной кислоты и 5-6 грамм поваренной соли.И так спустя немного времени хочу дополнить статью, и в первую очередь скажу, что новый способ травления плат мне понравился, чуть дольше но эффект не хуже, чем от хлорного железа.Я травил плату для контроля уровня жидкости в колодце с технической водой, там установлено два датчика, один чуть выше носа, а второй на самом верху, также существует полуавтоматическое управление, запуск и остановка вручную, индикаторы в виде лампочек, говорящие о работе системы. Датчики уровня жидкости обычно дорогие, поэтому сделал их самостоятельно, к сожалению нету возможности сфотографировать, они уже погружены в колодец. Но с удовольствием опишу компоненты и конструкцию.Список используемых компонентов:
  • Геркон для металлических дверей, круглый, запаянные внутренности
  • Кусок ПНД трубы около 10-15 см
  • Силикон, для кровельных работ
  • Резиночка от распаянной коробки с дырочкой
  • Кусок UTP провода, 4-х жильный(меньше не было) нужной длинны
  • Поплавковый материал, я использовал полистирол
Вот фотографии компонентов(данная реализация датчика еще не проверенна временем): также полежный инструмент для резки пнд прилагается: Данная система не работает с 1wire напрямую, можно лишь считывать статус ее работы. Чего на самом деле достаточно, хотя простым подключением к одному из 8 входов/выходов, можно имитировать наполнение колодца и запустить откачку с компьютера.все смонтировано в герметичный ящик, включая блоки питания на дин рейку Также новичкам советую купит отладочную плату, выглядит вот так:Вот фотографии ящика:Для проектирования плат пользуюсь программой SLayer5Единственное не выложил сюда разводки всех плат, а также тех что еще не реализовал.Но данная тема не есть конечный продукт, лишь мой опыт, и я его собираюсь развивать.Теперь немого программной части, я все делал под Gentoo Linux поэтому в ядре пришлось собрать fuse для работы owfs, если вы знаете линукс, то вам несложно будет включить пару новых пунктов при компиляции ядра. Это что касается софа. Опрашиваю датчики я через крон каждые15 минут, потом вывожу графики деля на 4, то есть показания за час.К сожалею не могу уместить в этой статье, все что хотел, поэтому напишу остальное в следующей части, ищите по тегу 1wire
Поделиться публикацией
Ой, у вас баннер убежал!

Ну. И что?
Реклама
Комментарии 17
  • НЛО прилетело и опубликовало эту надпись здесь
      –1
      И маловато устройств под него.
      • НЛО прилетело и опубликовало эту надпись здесь
      +2
      Какая получилась суммарная длина сети? Какая топология? (звезда, шина, кольцо, адское-непойми-что?)
      Как обстоит дело с помехозащищенностью?
      • НЛО прилетело и опубликовало эту надпись здесь
          +1
          Хотелось так же больше услышать про программную часть. Причем как со стороны 1-wire (низкий уровень, опрос устройств и прочее), так и со стороны UerInterface для руления всем этим делом. Использовать owfs в чистом виде по моему немного сложно. У меня сеть только из термодатчиков — нашел обвязку для owfs в виде питоньего скрипта, но вроде бы он только для термодатчиков — как рулить DS2450S в нем не нашел.
            +3
            Помехозащищенность плоховатая у 1-wire. Если уж говорить о «промышленных решениях», то ничего новее CAN, RS485 и «промышленного ethernet» (а также — оптоволоконной связи) вроде бы не придумали еще.

            P.S. Да и лепить на том же CAN'е или RS-485 свои устройства значительно проще: копеечная (ЕМНИП, новые 32-битные чипы у STM вообще центов по 30 продаются) + конвертер уровней с минимальной обвязкой (совсем без обвязки конвертеры дороговаты) — и готово! Ничего выдумывать не надо. И CRC «автоматом» считается…
              +5
              Только я ожидал увидеть в статье рассказ про сеть 1-wire на каком-нибудь заводике? :)
                +1
                Расскажите о результатах травления перекисью.
                Травлю с помощью CuSO4+NaCl, результат пока устраивает :)
                  –8
                  при нынешнем рынке промышленных производителей любых прототипов плат по вашему герберу за копейки — травление плат в домашних условиях становится совсем неактуальным.
                    +1
                    Вообще не согласен.
                    Одно дело — если этих плат нужен десяток. Тогда да, вопросов нет.
                    Совсем другое дело — если плата нужна одна. Тут варианты такие:
                    1) Быстро — резонит и иже с ним — 3К+ рублей. Как-то ни разу не бюджетно для любительского проекта. Ну и быстрота весьма относительная. Недельку подождать придётся, в противном случае, если хочется за пару дней — ещё плюс 1К руб.
                    2) Дёшево — заказать 10 плат (зачем они?) на каком нибудь dirty PCB. Относительно дёшево (около 500-600 руб), но придётся прождать месяц (а то и не один, стараниями слоупочты России), пока платы приедут.
                    3) Быстро и дёшево, но некачественно — сделать плату самому. ЛУТ, фоторезист — всё сюда. Дёшево — стоимость (при неоднократном производстве) определяется стоимостью кусочка текстолита и совсем немного — химией. Ну пусть будет 10 руб. Быстро — сделать плату ЛУТом у меня занимает от 20 до 40 минут (в зависимости от качества заготовки). А насчёт некачественно — если изначально делать плату с рассчётом на «некачественный» способ производства — то проблем не будет.
                    0
                    Травил и хлорным железом, и соль+лимонная кислота+перекись заметил, что второй вариант травит быстрее(заметно) но более грубо: были ситуации когда тонер во время травления сворачивался в трубочку. Могу только посоветовать травить в хлорном железе платы-неженки, а другие — в перекиси.
                      +3
                      В статья я хочу описать создание своей сети 1wire с нуля, включая все этапы построения и полезные советы.
                      Это первая часть статьи предназначена для ознакомления, остальная подробная информация будет добалена позже и по желанию хаброюзеров.
                      Взаимоисключающие параграфы. Собрались писать — так пишите, а то содержание поста не соответствует даже самому себе, не говоря о заголовке.
                      Про травление плат: перешел сегодня с хлорного железа на соль + лимонную кислоту + перекись водорода. Пока нет информации о качестве травления, пата все еще травится
                      Спасибо, что поделились своим опытом ожидания окончания травления.

                      И, пожалуйста, пройдитесь спеллчекером по посту перед публикацией, благо он встроен в браузер, в котором вы публикуете пост.
                        0
                        Строго не судите это моя первая статья, теперь когда я стал частью хабро сообщества, как и обещал продолжу статью и исправлю ошибки, спасибо за критику
                          +1
                          Лучше будет новую статью написать, а то ведь при исправлении статьи никаких оповещений отметившимся не приходит. И просто никто не узнает, что ваша статья скорректирована!
                          • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            В статье есть синтаксические ошибки, строго не судите исправлю по меревозможности

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

                            Самое читаемое