Страница 1 из 3

Cayenne. Сервис для интернет вещей.

Добавлено: 07.10.2018{, 22:06}
pvorobei
О Cayenne:
Cayenne https://mydevices.com - это ещё один облачный сервис, наряду с Blynk, ThingSpeak и пр. для создания собственных графических интерфейсов управления и обработки данных своих IoT-устройств(доступен как веб интерфейс, так и моб приложение).
На сколько мне известно изначально этот сервис создавался для работы с малиной, но со временем подтянулась и поддержка плат arduino, esp и т.п. К слову сказать при работе с arduino и другими мк Cayenne использует фреймворк Blynk, из чего можно сделать вывод, что это одно и тоже, только подход разный. Blynk бесплатно дает на старте ограниченное кол-во энергии для использования виджетов (это количество на все устройства созданные в нем), по окончанию можно докупить энергии, или ставить свой локальный сервер с Blynk. Cayenne же никак не ограничивает в количестве виджетов, но ограничивает в интервалах времени отправки данных (1 значение в секунду, т.е. если вы отправляете в интерфейс данные с 3х температурных датчиков, то делать это желательно не чаще 1 раза в 3 сек), во всяком случае я так понял покурив немного их форум, поскольку на сайте не нашел ни слова об ограничениях(может плохо искал). Ну и по скольку исходники Cayenne закрыты, то поднятие своего локального сервера не представляется возможным. Тем не менее инструментов предоставляемых Cayenne вполне достаточно для большинства домашних проектов.
Итак приступим.

1. Установка библиотек:
Я не стал прикреплять к блокам библиотеки, считаю так оно надежней и работа в Flprog легче.
Для начала нужно установить библиотеки CayenneMQTT и SimpleTimer.
1.1 CayenneMQTT берем из менеджера Arduino IDE: Компилируем любой проект в Flprog, при открытии IDE заходим во вкладку скетч, подключить библиотеку, управлять библиотеками. Откроется окно "Менеджер библиотек", в поиске начинаем вводить имя библиотеки, в списке появится CayenneMQTT, ставим последнюю версию(1.2.0). Закрываем IDE.
1.2 SimpleTimer качаем здесь:
SimpleTimer-master.zip
(3.89 КБ) 498 скачиваний
или по ссылке: https://github.com/jfturcot/SimpleTimer . Повторяем те же шаги, только теперь жамкаем не "управлять библиотеками", а "добавить .ZIP библиотеку", ищем место куда скачали, выбираем, добавляем.
1.3 Если вы хотите работать с модулем ESP подключенным по UART к Ардуино, то понадобится ещё одна библиотека - ESP8266SerialLibrary. Она находится в папке уже установленной библы CayenneMQTT, как правило по пути: C:\ Users\ Documents\ Arduino\ libraries\ CayenneMQTT\ extras\ libraries, устанавливаем также как предыдущую .ZIP библиотеку.
Блоки:
Cayenne.ubl
(151.31 КБ) 499 скачиваний

Cayenne. Сервис для интернет вещей.

Добавлено: 07.10.2018{, 22:17}
pvorobei
продолжение:
2.Работа с блоками:
СпойлерПоказать
3. 2 подхода.jpg
4. инициализация.jpg
На данный момент реализовано два пути общения с сервисом - работа с заданными интервалами(имя блоков заканчивается на(V) - variable) и работа с интервалами по умолчанию(имя блоков заканчивается на(D) - default). В первом случае мы сами задаем интервал отправки данных (для каждой отправки время можно прописать отдельно). Во втором библиотека определит вам интервал отправки для всех значений(это около 15 сек). Сделано так, что вы открываете раздел с нужным вам методом отправки и работаете с блоками только из него(не мешать!). К каждому блоку есть небольшое описание.
Что касается подключения - пока что в наборе три блока инициализации: платы с ESP и NodeMcu на борту, модули 8266 те что общаются с ардуино по UART, и W5100.
Порядок работы с блоками:
Создать минимум 3 платы, в первую вставить блок инициализации, прописать в нем все необходимые параметры(вставлять скопированные строки обязательно между кавычками).
В последнюю вставить блоки отправки и приема данных, прописав в них каналы и интервал отправки(для заданных интервалов). Важно! - прописывая в блок отправки время интервала например 5сек., не забываем на конце ставить заглавную L. Блоки приема (начинаются с IN) нужно ставить после всех блоков отправки(это обязательно если работаете с заданными интервалами).
В остальных платах(между первой и последней) собираем свою логику.
СпойлерПоказать
Пример.png
Блок DEBUG использовать не обязательно, он нужен для отладки. Блок передает лог работы библиотеки Cayenne в UART. С этим блоком есть трабл, flprog не хочет вставлять строки define перед include, а без этого отладка работать не хочет. Поэтому, DEBUG лучше ставить в плату перед платой с блоком инициализации, а перед компиляцией кода перенести строки как показано на картинке ниже.
СпойлерПоказать
11. дебаг.jpg
12. дебаг.jpg

Cayenne. Сервис для интернет вещей.

Добавлено: 07.10.2018{, 22:33}
pvorobei
Продолжение:
3. Пример:
Для лучшего усвоения создадим простенький проект. По управляем светодиодом на NodeMcu, отправим на график рандомные значения каждые 5 сек. с тем же интервалом будем зажигать огонек(лампочку) в интерфейсе.
Для начала набросаем проект в flprog -
проект.flp
(116.78 КБ) 339 скачиваний
СпойлерПоказать
18. Проект.png
Затем заходим на сайт Cayenne https://mydevices.com ,регистрируемся и попадаем в панель добавления устройств и виджетов.
Выбираем нужную нам плату:
СпойлерПоказать
1. выбор платы.jpg
Обзываем наше устройство, по очереди копируем и переносим строки MQTT Username, MQTT FOO Password и Client ID в параметры блока инициализации.
СпойлерПоказать
2. копирование строк.jpg
5. настройка блока инициализации.jpg

Cayenne. Сервис для интернет вещей.

Добавлено: 07.10.2018{, 22:45}
pvorobei
Продолжение:
Компилируем проект, загружаем, возвращаемся к сайту. После подключения появится страница и 2 входящих параметра, плюсы на них пока не нажимаем.
СпойлерПоказать
13. Не добавленные виджеты.jpg
Приступаем к добавлению виджетов:
СпойлерПоказать
7. добавить виджеты.jpg
8.нажать кастом виджет.jpg
Пример настройки виджета:
СпойлерПоказать
15. добавление графика рандом.jpg
В итоге получаем простой и действенный интерфейс связи со своей железкой:
СпойлерПоказать
17. Что получилось в итоге.jpg
Есть вопросы, предложения, просьбы - спрашивай, предлагай.
А пока все. Спасибо за внимание.

P.S. На неделе если все будет в порядке - запишу и выложу видос, в котором расскажу примерно тоже, но с учетом предложений и вопросов. А так же бонусом расскажу про пару интересных фич этого сервиса.

Cayenne. Сервис для интернет вещей.

Добавлено: 09.10.2018{, 16:00}
Anydy
Проверил отправку с датчика DS18B20 - работает. Спасибо за блоки.
Единственное сразу на NodeMCU никак не подключалось к WiFi, как уже говорили на форуме нужно стереть "хвосты" от старых прошивок чистым файлом. После чистки все заработало. Буду ковырять дальше. Файл для флешки на 4Мб прикрепляю.
blank4M.zip
(4.2 КБ) 292 скачивания

Cayenne. Сервис для интернет вещей.

Добавлено: 09.10.2018{, 16:45}
pvorobei
Anydy, Cпасибо, про хвосты не знал.
Сегодня подьехали модули ESP-01. При проверке с заданными интервалами не хотят нормально работать, в дэфолте все работает корректно. Причину пока не нашел.
Шилд w5100 не заказывал, поэтому проверить возможности нет.

Cayenne. Сервис для интернет вещей.

Добавлено: 29.10.2018{, 21:40}
pvorobei
Чуток припозднился. Не до этого было :moil:

Cayenne. Сервис для интернет вещей.

Добавлено: 10.11.2018{, 17:27}
pvorobei
Небольшое дополнение.
Добиться работы с заданными интервалами по hardware serial c уно или нано пока не удалось, с SoftwareSerial тоже. С интервалами по умолчанию все работает.
Пока что пришел к выводу, что каеновская библиотека кривовата.
Если взять mega, у которой аж 4 жезезных uart все нормально при испозовании 1го, 2го и 3го, а с нулевым таже лажа. Чтобы работать с мега нужно при компиляции из flprog в ide чуток изменить строку #define EspSerial Serial , после Serial добавить номер uart 1, 2 или 3, например #define EspSerial Serial1, и подключать соответственно.
СпойлерПоказать
10.11.png
mega.jpg
Под видео попросили набросать схему подключения модуля с АТ прошивой.
Если нет конвертора уровней, то желательно так:
СпойлерПоказать
Схема2.jpg
Если нет даже резисторов, можно и так:
СпойлерПоказать
Схема3.jpg
не желательно, хотя кайен пишет именно эту схему.
Я пробовал подключать и через платку конвертера уровней и напрямую - работает и так и так, модуль без проблем проглатывает 5и вольтовый логический уровень, правда питать от 5 я пока не рисковал.

Cayenne. Сервис для интернет вещей.

Добавлено: 10.02.2019{, 00:59}
stazo
Доброго времени суток. Очень понравился сервис cayenne. Изучаю вместе с flprog. Подскажите, блоки для cayenne не должны конфликтовать с блоками для дисплеев? Задумка такая: nodemcu+dht11+lcd1602+cayenne. Не могу подклюить дисплей. Без дисплея даные на cayenne отправляются коректно. Ставлю блок для дисплея, все падает... Как правельно подключать дисплей подскажите

Cayenne. Сервис для интернет вещей.

Добавлено: 10.02.2019{, 21:44}
pvorobei
stazo, Здравствуйте. Все должно работать. Прикрепите проект, посмотрим.

Cayenne. Сервис для интернет вещей.

Добавлено: 11.02.2019{, 00:00}
stazo
Так, пока готовил проект, все завелось) но есть опять пару вопросов. Оба канала cayenne определяет как температуру в цельсиях (может я не так подаю значения). И еще примерно два раза в минуту в 1-вый канал выдает значение 48, в 2-й канал 2147483648, потом все с диспея пропадает на секунду и опять появляются правильные значения темп. и влажн (может сам датчик кривой?).

Сам проект (блок инициализации пустой). Подскажите где мой косяк

Cayenne. Сервис для интернет вещей.

Добавлено: 11.02.2019{, 16:18}
pvorobei
stazo,
1. Оба в цельсиях это нормально, вы уже на странице добавления виджета выберите как определять это значение(как темп или влажность). если не поможет, тогда можно попробовать после компиляции удалить выделенное:
СпойлерПоказать
11.02.png
11.02.png (9.71 КБ) 3973 просмотра
Или использовать другой блок:
СпойлерПоказать
11.03.png
11.03.png (4.31 КБ) 3973 просмотра
Заметил, что у вас true на входе дисплеев. попробуйте обновлять их при изменении строки.
СпойлерПоказать
11.04.png
11.04.png (9.52 КБ) 3973 просмотра
По поводу непонятных цифИрок - вполне может и датчик. Попробуйте его подключить с помощью пайки, а еще лучше заменить хотя бы на 22.
Если не ошибаюсь 11 показывает все что угодно, только не реальные значения.

Cayenne. Сервис для интернет вещей.

Добавлено: 12.02.2019{, 10:33}
fsergei70
Немного переделал блок инициализации под ESP. Теперь настройки WIFi сети и Cayenne вводятся через WEb интерфейс.
MQTTusername у меня содержат 36 символов
MQTTpassword у меня содержат 40 символов
clientID у меня содержат 36 символов.
Все компилируется в железе не проверял.

Cayenne. Сервис для интернет вещей.

Добавлено: 18.02.2019{, 10:08}
diman27
Проверил в железе. С ds18b20 не работает, жалуется на отсутствие onewire библиотеки, хотя она есть. Дальше не экспериментировал.

Cayenne. Сервис для интернет вещей.

Добавлено: 20.02.2019{, 17:28}
Timmy101
Добрый день всем. Сразу хочу поблагодарить что отвечаете. Многое удалось сделать и разобраться благодаря таким людям.
Теперь вопрос. Планирую сделать на базе NodeMcu v3 ( esp-12e) модуль управления вытяжкой с ограничением по уличной температуре. В качестве датчиков 18ds. Для вывода - дисплей I2c 20x4. В качестве управляющих - 2 реле( твердотельное и перекидное на всякий на будущее). Устройство собрал упаковал в коробку вывел датчики ... В общем все работает. Прикрутил настройку параметров через Web интерфейс ( клиент и точка) одновременно. Клиент для передачи показаний и удаленного входа. А точка больше для первоначальной настройки. И венцом успеха решил прикрутить Cayenne mqtt. Но стоит мне добавить блоки инициализации и передачи как после компиляции ( проходит без ошибок) отваливается точка доступа. Т.е. устройство работает как и пологалось. Только точки доступа не создаётся. Кто сталкивался?

ps в упор не понимаю зачем в настройках блока для инициализации необходимы параметры wifi, если эти параметры настраиваются через дерево проекта....

Отправлено спустя 3 минуты 3 секунды:
fsergei70 писал(а):
12.02.2019{, 10:33}
Немного переделал блок инициализации под ESP. Теперь настройки WIFi сети и Cayenne вводятся через WEb интерфейс.
MQTTusername у меня содержат 36 символов
MQTTpassword у меня содержат 40 символов
clientID у меня содержат 36 символов.
Все компилируется в железе не проверял.
Сегодня проверю свое устройство с вашим блоком. Откомпилировать без ошибок. Но все равно , не смотря на то что настраиваете web интерфейсом параметры вайфай. Для чего их повторно передавать в блок инициализации? Он же не должен повторно открывать порт для соединения? Зачем ему параметры вайфая.

Cayenne. Сервис для интернет вещей.

Добавлено: 20.02.2019{, 18:40}
fsergei70
Timmy101 писал(а):
20.02.2019{, 17:31}
Зачем ему параметры вайфая.
В блок при инициализации cayenne.begin используется в том числе логин и пароль от WiFi

Cayenne. Сервис для интернет вещей.

Добавлено: 20.02.2019{, 20:08}
Timmy101
fsergei70 писал(а):
20.02.2019{, 18:40}
Timmy101 писал(а):
20.02.2019{, 17:31}
Зачем ему параметры вайфая.
В блок при инициализации cayenne.begin используется в том числе логин и пароль от WiFi
Ну собственно проверил я блок, при вставке его вместо блока инициализации - вообще виснет прошивка.
При попытке запустить тупо ваше пример cayenne_mqtt (с настройками через web) - аналогичная ситуация что и ранее - включенный режим точки доступа - не работает, точка вроде как включена в дереве проекта, но по факту ESP не создает wifi сеть...

Отправлено спустя 1 час 39 минут 56 секунд:
Я думаю что тут проблема не модернизированного блока инициализации, а блоков инициализации полностью. Даже в вашем примере. Если его тупо залить и попробовать простейший скетч с отправкой 1 переменной в Cayenne, то даже при полностью выключенных настройках web интерфейса, связь с Cayenne прекрасно работает. Соответственно, если настройки "Точки доступа " или "Клиента" включить в "дереве", то один фиг, при компиляции и запуске они не отрабатываются, блок инициализации судя по всему как-то подавляет создание точки доступа, и виной тому, (если я конечно разобрался с вашим блоками...) сама библиотека ESPCayenne_mqtt. Кто знает что можно сделать, мне точка доступа нужна позарез совместно с трансфером данных в Cayenne...
test_NOTworked!.flp
(108.64 КБ) 92 скачивания

Cayenne. Сервис для интернет вещей.

Добавлено: 20.02.2019{, 22:25}
fsergei70
Timmy101 писал(а):
20.02.2019{, 21:47}
мне точка доступа нужна позарез
Как вариант можно попробовать прикрутить к блоку вход разрешения. Чтоб он включался при 1 на нем. а в веб интерфейсдобавить переменную bollean? для запуска этого блока. в общем пробовать надо

Cayenne. Сервис для интернет вещей.

Добавлено: 20.02.2019{, 22:57}
pvorobei
Timmy101, Маловероятно, что cayeновцы при создании библиотеки для ардуино(для бесплатного использования), предусмотрели использование платы клиента еще и как точку доступа для настройки. Во всяком случае в примерах ничего подобного не видел. Но на всякий случай на днях если будет время - покурю их форум на эту тему.

Cayenne. Сервис для интернет вещей.

Добавлено: 20.02.2019{, 23:13}
Timmy101
pvorobei писал(а):
20.02.2019{, 22:57}
ятно, что cayeновцы при создании биб
Понимаете как интересно получается, что если в дереве проекта вбить и точку доступа и клиента, а в настройках блока инициализации вбить 3 вариант вайфая (отличный от клиента) то несмотря на настройки в "дереве" - работать будет именно та, что вбита в блок. а все что находится в дереве тупо как будто не работает, при этом, страницы и параметры которые добавлены "в дереве" - отображаются, но по хосту который выдается устройству из параметров блока инициализации. Иными словами, при добавлении блока инициализации подавляется полностью настройкка "Точка доступа", а так же параметры "Клиента" - "Имя сети" и "Пароль". Остальное функционирует.

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

По поводу прикручивания 1 или 0 на признак запуска блока.... пробовал сделать что-то подобное через условие запуска платы(в которой находился только один блок инициализации) - при компиляции в IDE - выдает ошибку. Что-то связано с добавление {} (ковычек) - кароч вариант не прокатил, пробовал подставить самостоятельно.... не вышло. Кароче пока варианта на**бать судьбу нет.

Либо cayene либо точка доступа..