Беспроводные датчики с малым энергопотреблением

Тема в разделе "Глядите, что я сделал", создана пользователем Chanov, 29 ноя 2013.

  1. Chanov

    Chanov Нерд

    Давно не даёт покоя тема беспроводных, дешёвых, долго живущих датчиков с автономным питанием.

    Недавно наткнулся на проект канадцев, они уже почти перешли к выпуску производственному ... вот ссылки на их продукт:

    http://www.indiegogo.com/projects/wimotos-tiny-wireless-helpers-for-your-life--47?c=gallery

    http://wimoto.wordpress.com/

    https://www.facebook.com/wimoto

    Измеряют температуру, влажность, свет ... вроде бы ещё протечку и движение самого датчика могут фиксировать ... продавать думают примерно за 50 долларов. Питают вроде бы от CR2450 (может от 2-х, не увидел точно), обещают чуть ли не больше года автономной работы - http://wimoto.wordpress.com/2013/10/21/everyone-breathe-again/

    Задумался сгородить что то подобное. Пока вижу Вариант с МК MS430 от TI (она в спячку впадает и кушает мало), с датчиками всё понятно - допустим для начала меряем температуру, свет и протечку, связь - или радио модули 433, или блютуз на ардуинку обрабатывающую с изернет шилдом. Цель сделать из дешёвых, легкодоступных запчастей и с минимумом гемороя.

    Кто что посоветует? Может коллективно что создадим?
     
    Последнее редактирование: 29 ноя 2013
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    Нужно сперва проанализировать потребление различных частей будущего устройства.
    Потребление контроллера лично мне видится наименьшей проблемой, в спячку впадать умеют все.
    Ток опроса датчиков - уже интересней.
    А самое главное - потребление приемопередатчика, именно в этом месте нужно оптимизировать.
     
  3. Chanov

    Chanov Нерд

    именно ... надо будет пройтись по доступным и дешёвым датчикам и передатчикам, посмотреть токи ...
    перфекционизмом страдать думаю не стоит и взять за тех. задание время работы допустим год (на край - пол года), и посмотреть с какой периодичностью можно будет опрашивать датчики и делать отсылку.
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    Нужно еще определиться с желаемой дальностью.
     
  5. Chanov

    Chanov Нерд

    Ну без фанатизма, стандартная квартира, пару-тройку стен что бы пробивало ...
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    Вот парень добился от связки МК+радиопередатчик потребления 0,14 мА в спящем режиме и 14 мА в рабочем.

    Как я понимаю, понижением частоты до 8 МГц, манипуляцией с фьюзами и прочими танцами с бубном.
     
  7. Zerowy11

    Zerowy11 Нуб

  8. Chanov

    Chanov Нерд

    Ну так чтоб не рассказать о реализации всем? Или коммерческое?
     
  9. Zerowy11

    Zerowy11 Нуб

    Да ради бога. Элементарно Ватсон.
    Передатчик: Микроконтролёр Funduino ProMini 5v 16Мгц. http://www.dx.com/p/arduino-pro-mini-microcontroller-circuit-board-blue-5v-16mhz-178183#.UzFTyvl_vTo . Датчик температуры 18B20 работает по протоколу OneWire. Имеются готовые библиотеки. Сам передатчик китайский, ссылка выше. Для засыпания микроконтролера используется библиотека LowPower.h. Дальность хорошая, дома пробивает через все стены. Передатчик посылает 5 пакетов, доходит 4-5. Иногда доходит один пакет, но крайне редко. Никаких особых решений. я начинающий в электронике.
    Приёмник пока даже не упакован, просто МК на плате с экраном модулем приёма который показывает температуру. Моя цель была научиться передавать любые данные между МК без проводов. Пока всё получилось. Следующим этапом буду измерять давление в гидравлических системах строительной техники и передавать беспроводным путём на центральный экран ремонтнику.

    Приёмник:

    Передатчик:

     
  10. Chanov

    Chanov Нерд

    А несколько таких передатчиков как подключаются к приёмнику?
     
  11. Zerowy11

    Zerowy11 Нуб

    Я планирую сделать следующим образом:
    1. Определю структуру данных примерно так,
    В пакете данных, который пойдёт с первого датчика, будет какое либо значение присвоено переменной "a". А переменная b и c будут содержать ноль.
    Со второго значение в b в других ноль и так далее.
    А расшифровать на приёмнике откуда какие данные дело техники.
    ещё миллион способов есть как организовать эту передачу. Можно посылать не 5 пакетов как я, а один и проверять получение, но тогда нужно подключать модули и приёмника и передатчика к ардуинкам. Что не есть сложно. Тогда можно удалённо управлять передатчиком, например устанавливать время на которое он пойдёт спать и экономить энергию. Если к приёмнику подключить RTC (модуль реального времени), то можно ночью не считывать информацию вообще. Главное библиотеки умными людьми написаны, а наше дело пользоваться.
     
  12. Zerowy11

    Zerowy11 Нуб

  13. Megakoteyka

    Megakoteyka Оракул Модератор

    Почему бы не сделать структуру вида
    Код (Text):
    struct DATA {
      byte address;
      fload value;
    };
    ?
    Ее и обрабатывать проще:
    Код (Text):
    switch(data.address)
    {
      case 1:
        ...
        break;
      case 2:
        ...
        break;
      ...
      case n:
        ...
        break;
    }
    При большом количестве датчиков можно создать массив указателей на функции и просто брать нужный указатель, используя в качестве индекса массива адрес датчика, а затем вызывать функцию-обработчик. Тогда вызов обработчика превратится в одну строчку кода.
    http://ci-plus-plus-snachala.ru/?p=1636
     
  14. Zerowy11

    Zerowy11 Нуб

    Видимо вы правы. Просто я пока не знаю ничего об указателях, но обязательно вникну. На данном этапе я уже найду способ, как подключить что угодно и передать данные. Кстати, на дешевых китайских пере датчиках проходит 9-10 пакетов в секунду, при скорости 2000бит. Я передавал 3 перемен ныне. Мне сейчас важно понять, почему при использовании millis перестаёт работать приём? Может быть один и тот же таймер используется, и как для работы со временем использовать другой таймер?