Интернет вещей с remotexy
Элементы индикации
Элементы индикации предназначены для передачи информации с контроллера на смартфон.
Индикатор
Индикатор – аналог светодиода. Представьте, что вы подключили к выводам ШИМ контроллера трехцветный светодиод.
Вы можете управлять яркостью свечения каждого цвета отдельно, выставляя на выводах ШИМ различное значение скважности.
Индикатор работает точно так же, выставляя интенсивность яркости каждого цвета, можно добиться отображения 256 в степени 3 цветов (16 777 216 цветов, если быть точным).
Параметры элемента «индикатор»: имя переменной (по умолчанию led), отрисовка (круглая или прямоугольная формы), а так же три флажка для выбора доступных цветов – красный, зеленый и синий. Можно поставить флажки в любой комбинации. Внимание: флажки работают так, что можно снять все три флажка, в таком случае поля структуры для индикатора не будут созданы.
Обратите внимание на структуру. Для каждого цвета индикатора создаются отдельные поля структуры, которые оканчиваются на _r, _g и _b для красного, зеленого и синего цветов соответственно. Значение, которое может принимать поле структуры, лежит в диапазоне от 0 до 255, так же как и в ШИМ. То есть управление цветом индикатора аналогично управлению светодиода посредством ШИМ.
//Структура элемента RGB со значениями по умолчанию. struct { // output variable
uint8_t led_1_r; // =0..255 яркость красного цвета индикатора uint8_t led_1_g; // =0..255 яркость зеленого цвета индикатора uint8_t led_1_b; // =0..255 яркость синего цвета индикатора // other variable
uint8_t connect_flag; // =1 if wire connected, else =0 } RemoteXY;
Лампа настроения (mood lamp) –лампа, которая плавно меняет цвет в случайном или в определенном порядке. За основу лампы настроения взят фонарик для фризлайта из предыдущей статьи, принципиальная схема остается той же. Изменениям будет подвергнут только исходный код. Конфигурация и подключение модуля связи на скриншотах.
Обход цветов будет происходить в следующей последовательности. Примем за начало цикла красный цвет. Переход в желтый цвет будет происходить увеличением яркости зеленого цвета. Когда зеленый цвет достигнет максимальной интенсивности, красный цвет начнет снижать яркость, пока она не станет равна нулю. Затем начнется набор яркости синего цвета, уменьшение яркости зеленого и так далее, пока цикл не замкнется. В итоге должен получиться следующий порядок цветов.Внешний вид мобильного интерфейса. Вверху экрана расположена надпись «Mood Lamp», остальное пространство на экране занимает индикатор прямоугольной формы. Цвет трехцветного светодиода, подключенного через ШИМ к контроллеру, будет совпадать с цветом индикатора на экране смартфона.
Дальнейшие пояснения в комментариях к исходному коду.
////////////////////////////////////////////// // RemoteXY include library // ////////////////////////////////////////////// // определение режима соединения и подключение библиотеки RemoteXY #define REMOTEXY_MODE__HARDSERIAL #include // настройки соединения #define REMOTEXY_SERIAL Serial1 #define REMOTEXY_SERIAL_SPEED 9600 // конфигурация интерфейса #pragma pack(push, 1) uint8_t RemoteXY_CONF[] = { 0,3,27,0,6,0,1,65,15,0 ,10,63,90,2,129,0,7,1,51,9 ,9,77,111,111,100,32,76,97,109,112 ,0 }; // структура определяет все переменные вашего интерфейса управления struct { // output variable uint8_t led_1_r; // =0..255 яркость красного цвета индикатора uint8_t led_1_g; // =0..255 яркость зеленого цвета индикатора uint8_t led_1_b; // =0..255 яркость синего цвета индикатора // other variable uint8_t connect_flag; // =1 if wire connected, else =0 } RemoteXY; #pragma pack(pop) ///////////////////////////////////////////// // END RemoteXY include // ///////////////////////////////////////////// uint8_t i=1; //эта переменная будет определять, какой цвет должен изменяться void setup() { RemoteXY_Init (); } void loop() { RemoteXY_Handler (); /*все действия будут происходить в главном цикле, поскольку передача данных на смартфон осуществляется в обработчике RemoteXY_Handler() который находится в функции loop()*/ if (i==1) { //при i==1 увеличивается яркость зеленого цвета RemoteXY.led_1_g++; //это условие сработает 255 раз if (RemoteXY.led_1_g==255) {i++;} //когда яркость зеленого цвета будем максимальной, //увеличиваем i на 1 и это условие не будет срабатывать,
// пока i вновь не станет равно 1 } if (i==2) { //и передаем эстафету следующему условию RemoteXY.led_1_r–; //здесь уменьшаем яркость красного цвета if (RemoteXY.led_1_r==0) {i=i+1;} //и снова передаем эстафету } if (i==3) { RemoteXY.led_1_b++; //увеличиваем яркость синего if (RemoteXY.led_1_b==255) {i=i+1;} } if (i==4) { RemoteXY.led_1_g–; //уменьшаем яркость зеленого if (RemoteXY.led_1_g==0) {i=i+1;} } if (i==5) { RemoteXY.led_1_r++; //увеличиваем яркость красного if (RemoteXY.led_1_r==255) {i=i+1;} } if (i==6) { RemoteXY.led_1_b–; //уменьшаем яркость синего if (RemoteXY.led_1_b==0) {i=i+1;} } //цикл перебора цветов завершен //выводим цвета на трехцветный светодиод через ШИМ analogWrite(13, RemoteXY.led_1_r); analogWrite(12, RemoteXY.led_1_g); analogWrite(11, RemoteXY.led_1_b); if (i==7) {i=1;} //поскольку цикл завершен, то сбрасываем i к первоначальному значению, то есть к 1 delay(10); /*задержку такого рода ставить не рекомендуется, но без нее перебор цветов слишком быстрый. К тому же такая короткая пауза не препятствует связи контроллера со смартфоном.*/ }
Уровень и шкала
Уровень и шкала служат для графического представления какой-либо переменной.
Всего доступно четыре вида элементов, но поскольку отличаются они только внешним видом, то рассматривать их я буду все вместе.
Всего доступно 4 элемента:
- Уровень линейный;
- Уровень дуговой;
- Шкала стрелочная;
- Шкала дуговая стрелочная.
Все эти элементы имеют параметры цвет, имя переменной (по умолчанию level), ориентацию (вертикально или горизонтально), позиция центра. И только линейный уровень имеет атрибут вариант отображения, который может иметь значения сплошной или сегментный.
Позиция центра, аналогична позиции центра элемента слайдер, указывает, где будет находиться нулевое положение шкалы. При позиции центра посредине поле структуры может принимать значения от -100 до 100. При позиции центра сверху или снизу для вертикально расположенных элементов и справа или слева для горизонтально расположенных значение поля структуры лежит в диапазоне от 0 до 100.
Для закрепления полученных знаний предлагаю простое практическое задание.
К аналоговому входу А0 подключить переменный резистор как делитель напряжения (см. скриншот). Создать интерфейс, состоящий из одного элемента – дуговой стрелочной шкалы, параметры шкалы по умолчанию. Подключение произвольно.
На графике изображены:При вращении ручки переменного резистора стрелка шкалы на экране смартфона будет откланяться, насколько – зависит от характеристики переменного резистора.
- А – линейная;
- Б – логарифмическая;
- В – показательная (обратно-логарифмическая) характеристики.
////////////////////////////////////////////// // RemoteXY include library // ////////////////////////////////////////////// // определение режима соединения и подключение библиотеки RemoteXY #define REMOTEXY_MODE__HARDSERIAL #include // настройки соединения #define REMOTEXY_SERIAL Serial1 #define REMOTEXY_SERIAL_SPEED 9600 // конфигурация интерфейса #pragma pack(push, 1) uint8_t RemoteXY_CONF[] = { 0,1,10,0,6,5,1,66,132,11 ,23,41,32,2 }; // структура определяет все переменные вашего интерфейса управления struct { // output variable int8_t level_1; // =0..100 положение уровня // other variable uint8_t connect_flag; // =1 if wire connected, else =0 } RemoteXY; #pragma pack(pop) ///////////////////////////////////////////// // END RemoteXY include // ///////////////////////////////////////////// void setup() { RemoteXY_Init (); } void loop() { RemoteXY_Handler (); RemoteXY.level_1=map(analogRead(A0),0,1023,0,100);
/*диапазон шкалы 0-100, поэтому приводим значение аналогового сигнала с входа А0 к необходимому диапазону при помощи функции map*/
}
Текстовая строка
Самое универсальное средство вывода информации, способное заменить текстовый дисплей. Параметры текстовой строки: цвет, имя переменной (по умолчанию text), количество символов строки, выравнивание (слева, по центру или справа), показывать фон (фон только темно-серый, если отключить фон, то рамки вокруг текста не остается, а отличии от поля ввода).
Просто присвоить какую либо строку полю структуры нельзя, необходимо использовать следующие функции:
- strcpy – копирование одной строки в другую. Например, strcpy (RemoteXY.text_1, str1); strcpy(RemoteXY.text_1, “Этот текст будет скопирован в поле структуры”);
- strcat – объединение двух строк, strcat(RemoteXY.text_1, “Этот текст будет добавлен в конец поля структуры ”);
- sprint – действует аналогично функции srtcpy. Пример: sprintf (RemoteXY.text_2, “My text”);
- itoa – для преобразование целого числа в строку. Например, itoa(254, RemoteXY.text_1, 10) – обратите внимание на последний аргумент, число 10 означает, что число будет выводиться в десятичной системе счисления.
- dtostrf – для преобразования числа типа double в строку. Например, dtostrf(val, 0, 2, RemoteXY.text_1) где 0 – минимальная полученная длина строки, 2 – количество знаков после запятой.
И это не полный список.
И как всегда практическое задание для закрепления знаний.
Цель задания – создать генератор случайных паролей и вывести сгенерированный пароль на экран смартфона. Параметры подключения и внешний вид интерфейса приведены на скриншотах. Схему подключения не привожу, потому что кроме модуля связи к контроллеру ничего не подключено.
Генерация пароля будет происходить следующим образом. За источник символов возьмем таблицу ASCII, в которой каждый символ имеет номер. Номера можно генерировать при помощи функции random, задав в ней диапазон необходимых значений. Ниже я привел урезанную таблицу ASCII, её будет достаточно.
Дальнейшие пояснения в комментариях к исходному коду.
////////////////////////////////////////////// // RemoteXY include library // ////////////////////////////////////////////// #define REMOTEXY_MODE__HARDSERIAL #include // настройки соединения #define REMOTEXY_SERIAL Serial1 #define REMOTEXY_SERIAL_SPEED 9600 #pragma pack(push, 1) uint8_t RemoteXY_CONF[] = { 1,11,137,0,6,5,1,1,1,8 ,12,48,13,2,208,161,208,179,208,181 ,208,189,208,181,209,128,208,184,209,128 ,208,190,208,178,208,176,209,130,209,140 ,32,208,191,208,176,209,128,208,190,208 ,187,209,140,0,67,1,10,41,43,7 ,3,11,129,0,8,4,48,5,0,208 ,147,208,181,208,189,208,181,209,128,208 ,176,209,130,208,190,209,128,32,208,191 ,208,176,209,128,208,190,208,187,208,181 ,208,185,0,129,0,8,29,48,5,0 ,208,146,208,176,209,136,32,208,189,208 ,190,208,178,209,139,208,185,32,208,191 ,208,176,209,128,208,190,208,187,209,140 ,0 }; struct { // input variable uint8_t button_1; // кнопка будет запускать генерацию // output variable char text_1[11]; // в этой строке пароль будет передан в смартфон //обратите внимание, что здесь изменить длину строки нельзя // other variable uint8_t connect_flag; // =1 if wire connected, else =0 } RemoteXY; #pragma pack(pop) ///////////////////////////////////////////// // END RemoteXY include // ///////////////////////////////////////////// char pass[11]; //в этом массиве символов будет храниться сгенерированный пароль до передачи его в смартфон void setup() { RemoteXY_Init (); } void loop() { RemoteXY_Handler (); if (RemoteXY.button_1==1){//если нажата кнопка “сгенерировать пароль”, //то начинаем генерировать пароль randomSeed(millis()); //инициализация генератора случайных чисел for (int i=0; i
30 Ноября 2017
Теперь цветовая гамма стала больше. Вы можете использовать порядка 256 цветов на выбор для оформления ваших интерфейсов. Кроме того теперь вы можете настраивать цветовое решение для разных частей одного графического элемента.
31 Марта 2017
Мы начали тестирование подключения к устройствам через облачный сервер RemoteXY. Подключение через облачный сервер RemoteXY позволяет управлять устройством из любой точки мира где есть интернет.
25 Ноября 2016
RemoteXY начал поддержку модулей Bluetooth 4.0 BLE (Bluetooth Low Energy). Вы можете использовать модули HM-10 и подобные, основанные на чипе cc2541.
17 Ноября 2016
Опубликована первая версия приложения RemoteXY для iOS устройств iPhone и iPad. Версия приложения 1.0.6 доступна на App Store. Версия поддерживает все многообразие графических элементов интерфейса управления, доступных в RemoteXY.
4 Октября 2016
Добавлена поддержка контроллеров фирмы ChipKIT: Uno32, uC32, Max32. Данные платы построены на контроллерах PIC32 и работают на частоте 80МГц.
17 Сентября 2016
Новый элемент управления «Поле ввода» предназначен для ввода текстовой строки или числа с клавиатуры в графическом интерфейсе. Поле ввода поддерживает ввод произвольного текста, ввод целого числа, ввод вещественного числа.
15 Августа 2016
Добавлен новый элемент управления RGB-круг. Новый элемент управления позволяет задавать цвет в широком диапазоне и получить на контроллере данные о каждом компоненте цвета R, G, B.
15 Мая 2016
Проект RemoteXY продолжает развиваться. Добавлены две новые функции: поддержка вертикальной ориентации экрана и поддержка многостраничного графического интерфейса.
3 Апреля 2016
Добавлена новая функция, позволяющая управлять удаленным устройством через локальную сеть. Реализована поддержка Ethernet W5100 шильда и модуля ESP8266 в режиме подключения к точке доступа. При правильной конфигурации маршрутизатора появилась возможность управления устройством через Интернет.
26 Марта 2016
Добавлена новая функция, позволяющая управлять удаленным устройством по Wi-Fi. В первую очередь реализована поддержка модуля ESP8266 в режиме работы точкой доступа. Со смартфона или планшета можно подключиться к точке доступа напрямую.
27 Декабря 2015
Опубликована новая версия приложения RemoteXY 3.2.4. В новой версии добавлена возможность настройки G-сенсора. Напомним, что G-сенсор может быть использован для управления джойстиком.
20 Марта 2015
Очередное обновление контролов коснулось индикатора, уровня и текста. Добавлен новый элемент оформления – панель. Все доработки позволяют создавать графические интерфейсы под большее количество разнообразных задач.
12 Февраля 2015
Кнопка теперь может быть прямоугольной. Усовершенствование слайдера позволяет задать ему одно из трех центральных положение: снизу, сверху и посередине. Так же слайдеру можно задать функцию авто-центрирования при отпускании пальца.
4 Февраля 2015
RemoteXY присоединился к стартапу AirBoard, который запустил компанию по привлечению финансирования на KickStarter. Последователям AirBoard предлагается уникальная Arduino совместимая платформа для быстрой разработки устройств для “Интернета вещей”, а так же приложение RemoteXY PRO для быстрой разработки систем управления этими устройствами.
27 Января 2015
Сейчас многие говорят про интернет вещей, но не все понимают, что это такое.
Говоря простым языком, интернет вещей — это некая сеть, в которую объединены вещи. Причём под вещами я подразумеваю всё что угодно: автомобиль, утюг, мебель, тапочки. Всё это сможет «общаться» друг с другом без участия человека при помощи передаваемых данных.
Появление подобной системы было ожидаемо, ведь лень — двигатель прогресса. Не придётся утром идти к кофеварке, чтобы сделать кофе. Она уже знает, когда вы обычно просыпаетесь, и к этому времени сама сварит ароматный кофе. Классно? Пожалуй, но насколько это реально и когда появится?
picjumbo.com
Мы находимся в начале пути, и об интернете вещей пока говорить рано. Возьмём для примера кофеварку, о которой я писал выше. Сейчас человеку приходится самостоятельно вводить время своего пробуждения, чтобы она сварила ему утром кофе.
Но что произойдёт, если в это время человека не будет дома или он захочет чай? Да всё то же самое, так как он не поменял программу и бездушная железка снова сварила свой кофе.
Такой сценарий интересен, но это скорее автоматизация процесса, чем интернет вещей.
У руля всегда стоит человек, он центр. Умных гаджетов с каждым годом становится всё больше, но они не работают без команды человека. Эту несчастную кофеварку придётся постоянно контролировать, менять программу, что неудобно.
picjumbo.com
Интернет вещей подразумевает, что человек определяет цель, а не задаёт программу по достижению этой цели. Ещё лучше, если система сама анализирует данные и предугадывает желания человека.
Едете вы с работы домой, уставший и голодный. В это время автомобиль уже сообщил дому, что через полчаса привезёт вас: мол, готовьтесь. Включается свет, термостат настраивает комфортную температуру, в духовке готовится ужин. Зашли в дом — включился телевизор с записью игры любимой команды, ужин готов, добро пожаловать домой.
Вот в чём главные особенности интернета вещей:
- Это постоянное сопровождение повседневных действий человека.
- Всё происходит прозрачно, ненавязчиво, с ориентацией на результат.
- Человек указывает, что должно получиться, а не как это сделать.
Скажете, фантастика? Нет, это ближайшее будущее, но, чтобы добиться таких результатов, необходимо ещё многое сделать.
picjumbo.com
Логично, что в центре всех этих вещей должен стоять не человек, а какой-то девайс, который и будет передавать программу по достижению цели.
Он будет контролировать другие устройства и выполнение задач, а также собирать данные. Такой девайс должен стоять в каждом доме, офисе и других местах.
Их объединит единая сеть, через которую они будут обмениваться данными и помогать человеку в любом месте.
«Интернет вещей» является частью концепции, что Интернет стал уже не просто глобальной сетью для людей, позволяющей общаться друг с другом посредством компьютеров, но также Интернет теперь является платформой для устройств, позволяющей им общаться в электронном виде с окружающим миром. В результате это мир, который живет в виде информации и потоков данных от одного устройства к другому, является общим и может повторно использовать каналы для различных целей. Использование потенциала «Интернета вещей» для экономического и социального блага в ближайшие десятилетия будет одной из основных задач, включая проблемы и возможности, вытекающие из этого явления.Комбинирование технологий, в том числе дешевых датчиков, маломощных процессоров, постоянного масштабирования облачных сервисов, а также повсеместное внедрение беспроводного подключения позволили начать эту революцию.
Все чаще компании используют эти технологии для внедрения аналитики деятельности и поиска новых возможностей своих продуктов, что позволяет предметам быта становиться умнее, учиться на своем опыте и качественнее взаимодействовать с окружающей их средой.
Некоторые из этих устройств осуществляют коммуникации вида машина-машина. Например, датчики на проезжей части оповещают автомобили о потенциальных опасностях, смарт-сетки посылают динамические данные о ценах на электроэнергию бытовой технике с целью оптимизации энергопотребления.
Другие устройства используют коммуникацию вида машина-человек, что осуществляется непосредственно через сам продукт или косвенно через веб-браузер на ПК или мобильном устройстве.
Например, системы управленческого саппорта (содействие принятию правильных управленческих решений) на фермах могут объединить данные о почвенных условиях из экологических датчиков с историческими данными и прогнозами о ценах и погодных условиях, что позволяет выработать рекомендаций для фермеров о том, как сажать и удобрять конкретные земельные участки.
Эти трансформации несмотря на свою значимость будут во многом незаметными для обывателя, потому что изменения в физической среде будут невидимым или очень неприметными. «Умный» дом или «умный» мост выглядят так же как и обычный – весь интеллект встроен в инфраструктуру.
Потребительские товары, со встроенным интеллектом (например, сушилки для одежды или термостаты) внешне не будут значительно отличаться от тех, что есть сегодня.
Тем не менее, несмотря на отсутствие серьезных внешних изменений, влияние «Интернета вещей» будет весьма глубоким и создаст новые возможности для решения многих насущных социальных проблем сегодняшнего дня.
Возможности IoT представляются новыми продуктами и услугами, которые помогут защитить окружающую среду, сохранить энергию, повысить производительность сельского хозяйства, сделать перевозки быстрее и безопаснее, повысить уровень общественной безопасности, а также сделать медицинское обслуживание лучше и доступнее.
Кроме того, некоторые предметы путем предоставления своевременной информации смогут просто помогать своим занятым владельцам в быту: например, «умный» холодильник может напомнить своему владельцу, что пора купить молоко, когда оно почти закончилось.Большие изменения состоят из множества мелких и влекут за собой новые, также и «Интернет вещей» может принести миллионы дополнительных изменений в ближайшие годы. Эта статья демонстрирует разнообразие устройств, входящих в состав «Интернета вещей» уже сегодня. В потенциале эти устройства могут быть применимы для решения различных практических задач, больших и маленьких, а также в открытых новыми технологиями стратегических принципах, которые помогут правительственным лидерам максимизировать выгоду.
Окружающая среда
С постоянно растущей численностью людей на планете (сейчас уже более 7 миллиардов) рациональное использование природных ресурсов Земли становится все более сложной задачей, но это тот вопрос, который должен быть решен для достижения устойчивого экономического развития в первую очередь.
Защита окружающей среды требует многогранного решения, но «Интернет вещей» уже сейчас предлагает уникальные возможности для решения таких вопросов, загрязнение воды и воздуха, свалки отходов и вырубка лесов.
Сенсорные устройства, соединенные в общую сеть, теперь внимательно следят за воздействием на окружающую среду наших городов, собирая сведения о канализации, качестве воздуха и мусорных отходах. За пределами города такие же сети сенсорных устройств ведут постоянный мониторинг наших лесов, рек, озер и океанов.
Многие экологические тенденции настолько сложны, что их трудно осмыслить, но сбор данных является первым шагом на пути к пониманию и в конечном итоге к выработке решений по снижению отрицательного воздействия деятельности человека на окружающую среду.
Атмосфера
Air Quality Egg («яйцо проверки качества воздуха») представляет собой устройство, которое использует датчики для сбора и обмена данными о качестве воздуха за пределами дома или офиса человека.
В то время как государственные учреждения, такие как Агентство по охране окружающей среды США, мониторят качество воздуха и уровень загрязненности в центрах мегаполисов, «яйцо» собирает данные о непосредственного окружения своего пользователя в режиме реального времени.
Базовая станция передает данные о качестве воздуха через Интернет, где на специальном веб-сайте собирается и отражается информация, собранная всеми «яйцами», которые используются.
В режиме реального времени данные могут быть использованы для оценки влияния городской политики и изменения уровня загрязнения, а также для разработки и принятия новых программ и решений в этой сфере.
Также данный сервис позволяет жителям города больше узнать о своем месте жительства и своем личном и непосредственном влиянии на свой дом. Устройство «Air Quality Egg» можно найти по всей Северной Америке, в Западной Европе и Восточной Азии и в будущем может сыграть свою роль в развивающихся странах с наиболее быстрым ростом городского населения и высокими темпами загрязнения.
Мусорные контейнеры (урны)
Устройство BigBelly является работающей на солнечных батареях урной, которая уплотняет мусор и предупреждает санитарные экипажи (дворников и уборщиков), когда она полна.
Общая сеть анализирует собранные данные, полученные от каждой урны BigBelly, что позволяет планировать деятельность по сбору и оперативно вносить коррективы, такие как частота вывоза мусора и размер самой урны.
Системы BigBelly располагаются повсюду: в городах, крупных деловых центрах, в университетских городках, в парках и на пляжах.
Бостонский университет сократил частоту вывоза мусора с 14 до 1,6 раза в неделю.
В университете не только сэкономили время, но и энергию, так как теперь используется меньшее количество мешков для мусора и производится меньше углекислого газа во время вывозов мусора.
Учитывая, что объемы бытовых отходов согласно прогнозам возрастут с 1,3 тонны, производимых сейчас, до 2,2 млрд. тонн к 2025 году, то дополнительные инструменты будут крайне необходимы, чтобы справляться с большими объемами мусора.
Леса
Invisible Tracck (невидимый Трак) представляет собой небольшое устройство, которое незаметно размещается на деревьях в охраняемых лесных районах, чтобы помочь в борьбе с незаконной вырубкой лесов.
Устройства, которые меньше, чем колода карт, уведомляют власти, когда незаконно заготовленные деревья проходят в зоне действия мобильной связи.
Сотрудники правоохранительных органов затем могут найти производственные площадки и остановить эту деятельность в более полном масштабе, нежели просто оштрафовав за незаконную вырубку.
Сети невидимых Траков в настоящее время развернуты в амазонских лесах в Бразилии, которые теряли в среднем по 3 460 000 гектаров девственных лесов каждый год в период с 2000 по 2005 года.
Многие незаконные действия по вырубке лесов прошли незамеченными, так как частоты спутникового диапазона и радиочастоты часто слишком слабые в отдаленных районах.
Невидимый Трак теперь гарантирует, что даже в наиболее уязвимых и отдаленных районах Бразилии можно охранять и защищать леса.
Водные пути
Интегрированная система морских наблюдений в Австралии представляет собой сеть датчиков вдоль Большого Барьерного рифа, позволяющую собирать данные для исследователей, изучающих влияние океанических условий на морские экосистемы и изменения климата. Буйки, оснащенные датчиками, собирают биологические, физические и химические данные.
Данные передаются на базовую станцию на берегу за счет использования различных беспроводных технологий, в том числе микроволн, телевидения и мобильных сетей 3G, в зависимости от расстояния до берега.
Система была развернута в 2010 года в семи различных местах вдоль Большого Барьерного рифа и собрала данные для исследования движения рыб, биоразнообразия и повреждений коралловых рифов.
Как решить задачу включения и отключения воды в труднодоступном месте с использованием актуальных беспроводных технологий интернета вещей? Не ради интереса, а ради практической пользы. Воспользуемся в качестве основы моторизированным шаровым краном NT8047 DC5V от Мастер-Кит, Wi-Fi модулем MP8266-01, добавим пару транзисторов и несколько резисторов.
Для тех, кому понравится идея, но не найдется времени сделать все самому – в Мастер Ките есть готовое решение: двухканальное Wi-Fi реле MP3500 с бесплатным приложением для Андроид. С помощью него можно управлять не только водопроводным краном!
Модуль ESP8266:
Но в данном случае нет необходимости управлять большими токами и напряжениями, а плату управления имеет смысл упрятать в корпус моторизированного крана. Для отработки было решено использовать макетную плату и выводные компоненты.
Модуль ESP8266 подключен шлейфом к плате, для программирования модуля использован ставший уже стандартным переходник USB-UARTна микросхеме PL2303.
Драйверы для переходника без проблем нашлись в интернете.
Для программирования ESPбыло решено использовать прошивку nodeMCU, которая позволяет управлять модулем, используя не набор AT-команд, а скриптовый язык высокого уровня LUA.
Для общения с краном по Wi-Fiбыла написана программа для смартфона на Андроид с помощью проекта Массачусетского технологического института Appinventor.
Итак, по порядку.
У моторизованного крана есть три вывода: один общий и два управляющих, подавая на которые положительное напряжения от 3 до 6 вольт можно открыть или закрыть кран.
Стало быть, двух выводов GPIO(входов/выходов общего назначения ) модуля ESPвполне достаточно для управления. Сх