Давно не даёт покоя тема беспроводных, дешёвых, долго живущих датчиков с автономным питанием. Недавно наткнулся на проект канадцев, они уже почти перешли к выпуску производственному ... вот ссылки на их продукт: 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, или блютуз на ардуинку обрабатывающую с изернет шилдом. Цель сделать из дешёвых, легкодоступных запчастей и с минимумом гемороя. Кто что посоветует? Может коллективно что создадим?
Нужно сперва проанализировать потребление различных частей будущего устройства. Потребление контроллера лично мне видится наименьшей проблемой, в спячку впадать умеют все. Ток опроса датчиков - уже интересней. А самое главное - потребление приемопередатчика, именно в этом месте нужно оптимизировать.
именно ... надо будет пройтись по доступным и дешёвым датчикам и передатчикам, посмотреть токи ... перфекционизмом страдать думаю не стоит и взять за тех. задание время работы допустим год (на край - пол года), и посмотреть с какой периодичностью можно будет опрашивать датчики и делать отсылку.
Вот парень добился от связки МК+радиопередатчик потребления 0,14 мА в спящем режиме и 14 мА в рабочем. Как я понимаю, понижением частоты до 8 МГц, манипуляцией с фьюзами и прочими танцами с бубном.
У меня получилось МК+радиопередатчик потребления 0,085 мА в спящем режиме и около 16 мА в рабочем. МК funduino pro mini 5v. датчик температуры 18b20. передатчик 433 китайский, http://dx.com/p/433mhz-rf-transmitt...-arduino-arm-mcu-wl-green-220194#.UzCUqfl_uSo безо всяких танцев.
Да ради бога. Элементарно Ватсон. Передатчик: Микроконтролёр 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. Иногда доходит один пакет, но крайне редко. Никаких особых решений. я начинающий в электронике. Приёмник пока даже не упакован, просто МК на плате с экраном модулем приёма который показывает температуру. Моя цель была научиться передавать любые данные между МК без проводов. Пока всё получилось. Следующим этапом буду измерять давление в гидравлических системах строительной техники и передавать беспроводным путём на центральный экран ремонтнику. Приёмник: Передатчик:
Я планирую сделать следующим образом: 1. Определю структуру данных примерно так, В пакете данных, который пойдёт с первого датчика, будет какое либо значение присвоено переменной "a". А переменная b и c будут содержать ноль. Со второго значение в b в других ноль и так далее. А расшифровать на приёмнике откуда какие данные дело техники. ещё миллион способов есть как организовать эту передачу. Можно посылать не 5 пакетов как я, а один и проверять получение, но тогда нужно подключать модули и приёмника и передатчика к ардуинкам. Что не есть сложно. Тогда можно удалённо управлять передатчиком, например устанавливать время на которое он пойдёт спать и экономить энергию. Если к приёмнику подключить RTC (модуль реального времени), то можно ночью не считывать информацию вообще. Главное библиотеки умными людьми написаны, а наше дело пользоваться.
Проблемка в другом. Описано здесь: http://forum.amperka.ru/threads/Передача-данных-не-работает-при-использовании-millis.2826/
Почему бы не сделать структуру вида Код (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
Видимо вы правы. Просто я пока не знаю ничего об указателях, но обязательно вникну. На данном этапе я уже найду способ, как подключить что угодно и передать данные. Кстати, на дешевых китайских пере датчиках проходит 9-10 пакетов в секунду, при скорости 2000бит. Я передавал 3 перемен ныне. Мне сейчас важно понять, почему при использовании millis перестаёт работать приём? Может быть один и тот же таймер используется, и как для работы со временем использовать другой таймер?