"Зашарить" часть датчиков в narodmon.ru

Тема в разделе "Arduino & Shields", создана пользователем regent.correon, 21 окт 2018.

  1. regent.correon

    regent.correon Нерд

    Доброго времени суток. Такой вопрос: Имеем железо ArduinoMega+ Dragino Yun Shield. На ней поднят web сервер управления системой умный дом. Опрашиваются датчики и осуществляется контроль и управление приборами. Как "зашарить" датчики температуры в narodmon.ru. К нему же нужно поднимать Клиента, а у меня поднят Сервер...
     
  2. ИгорьК

    ИгорьК Гуру

    Всегда завидовал героям, что поднимают ракеты в космос, поднимают флаги на земных полюсах, поднимают сервера и управляют умными домами.

    Думаю, по вашему вопросу, надо высоко поднятый сервер опустить чуть ниже уровня глаз и посмотреть API народного мониторинга. Там, на память, три способа поднять информацию на сервер.
    • POST, GET запрос
    • Прямой TCP, UDP запрос
    • MQTT отправка на брокер мониторинга
    За долгие годы, может, еще что появилось.
    Вот что они теперь пишут:

    SmartSelect_20181021-194937_Opera Mini.jpg
     
    Последнее редактирование: 21 окт 2018
    Un_ka, arkadyf и Mitrandir нравится это.
  3. regent.correon

    regent.correon Нерд

    Так в том-то и непонятках. У меня поднят (в скетче ардуино) yunserver, а там в примерах yunclient! Как быть? Можно ли поднять оба и как? Пример?
     
  4. regent.correon

    regent.correon Нерд

    Я впервые на этом форуме, за ночь успел заметить, что вы здесь грамотный человек, научите плиз, "куда копать" желательно с примером, а далее я сам нарою. На примере всегда проще понять. У меня на компе Linux, потому мне проще понимать yun.
     
  5. ИгорьК

    ИгорьК Гуру

    У вас есть несколько путей.

    1. Ваш поднятый сервер, подозреваю, может отправить на Мониторинг что-нибудь типа:
    Код (PHP):
    $fp = @fsockopen("tcp://narodmon.ru", 8283, $errno, $errstr);
    if(!$fp) exit("ERROR(".$errno."): ".$errstr);
    fwrite($fp, "#61-81-36-D4-53-04\n#T1#-1.65\n#H1#74\n#P1#690.19\n##");
    fclose($fp);
    2. С применением runShellCommandAsynchronously()вы можете вызвать bash скрипт отправить tcp пакет, типа:
    Код (Bash):
    #!/bin/bash
    # by Tuinov Andrey voytmar @ yandex.ru

    SERVER="narodmon.ru"
    PORT="8283"

    # MAC адрес устройства. Заменить на свой!
    DEVICE_MAC="0123456789012"

    # идентификатор устройства, для простоты добавляется 01 (02) к MAC устройства
    SENSOR_ID_1=$DEVICE_MAC"01"
    SENSOR_ID_2=$DEVICE_MAC"02"

    # значения датчиков
    sensor_value_1=20
    sensor_value_2=-20.25

    # устанавливаем соединение
    exec 3<>/dev/tcp/$SERVER/$PORT

    # отсылаем единичное значение датчика
    printf "#%s\n#%s#%s\n##" "$DEVICE_MAC" "$SENSOR_ID_1" "$sensor_value_1" >&3

    # отсылаем  множественные значения датчиков
    #printf "#%s\n#%s#%s\n#%s#%s\n##" "$DEVICE_MAC" "$SENSOR_ID_1" "$sensor_value_1" "$SENSOR_ID_2" "$sensor_value_2" >&3

    # получаем ответ
    read -r MSG_IN <&3
    echo "$MSG_IN"

    # закрываем соединение
    exec 3<&-
    exec 3>&-
    3. С применением HttpClient вы можете отправить на сервер Мониторинга строку типа:
    Код (C++):
    http://narodmon.ru/get?ID=MAC&mac1=value1&...&macN=valueN
     
    regent.correon и Tomasina нравится это.
  6. regent.correon

    regent.correon Нерд

    Благодарю, за науку, уточните плиз второй пример на bash - не совсем понял, как передаются состояния датчиков в реальном времени, или файл формируется постоянно с новыми значениями?
    и Первый пример это что, Python, PHP или???

     
  7. regent.correon

    regent.correon Нерд

    Насчет первого примера, (PHP не знаю), не увидел, там что не нужно подключать никаких библиотек (т.е, пример неполный?)
     
  8. regent.correon

    regent.correon Нерд

    думаю, выгоднее использовать BASH, его я немного уже освоил, но остается вопрос, как передаются в него показания датчиков (вопрос выше я задал) И попутно, хочу спросить, есть ли где описание назначения пакетов (программных) для yun, названия обычно ничего не дают понять о назначении пакета...
     
  9. ИгорьК

    ИгорьК Гуру

    Как передать данные в bash скрипт: https://m.habr.com/company/ruvds/blog/326328/

    Здесь Гугл помогает гораздо круче чем я. Попробуйте допросить его и удивитесь.
     
  10. ИгорьК

    ИгорьК Гуру

    Конечно есть. На сайте arduino.cc Попробуйте применить тот же Гугл.
    https://www.arduino.cc/en/Reference/YunBridgeLibrary
     
  11. regent.correon

    regent.correon Нерд

    Не, это не то, я имел ввиду пакеты, устанавливаемые командой opkg юн шилда, гугл об этом выдает левую инфу не имеющую к тому отношения.
     
  12. ИгорьК

    ИгорьК Гуру

    Чтобы заbashлять никакие opkg пакеты не нужны.
     
    regent.correon нравится это.
  13. ИгорьК

    ИгорьК Гуру

    По linux части все ищите на openwrt.org
     
    regent.correon нравится это.
  14. b707

    b707 Гуру

    не может такого быть. пример приведите
     
  15. regent.correon

    regent.correon Нерд

    описание пакетов yun shield
    https://www.google.ru/search?q=опис...78j0j8&client=ubuntu&sourceid=chrome&ie=UTF-8


    Arduino Yun = борткомпьютер — Сообщество «Электронные ...

    https://www.drive2.ru/c/2535808/

    как у меня, только у меня yun shield, а это именно yun .... Если сделать любую хрень, можно заработать денег и на них купить те вещи, которые ..... Пакеты для управления будут весить байт по 10-20, возможно оператор даже ...
    Yun Shield v1.1 / Купить в RoboShop

    roboshop.spb.ru/yun-shield-v11

    Yún Shield — одна из самых мощных плат расширений для контроллеров семейства Arduino, совмещающая в себе Linux, USB Host, Ethernet и Wi-Fi.
    Не найдено: пакетов
    Юн щит V2.4 Совместимость для Arduino совета купить на AliExpress

    https://ru.aliexpress.com/item/Yun-Shield-V2-4-Compatible.../32828860762.html

    Купить товар Юн щит V2.4 Совместимость для Arduino совета в категории Аксессуары для ... Вышивка Крестом Пакет включено: Yun Shield V2.4 * 1.
    Arduino Yún / узнать больше, купить в Амперке

    amperka.ru/product/arduino-yun

    Вам не хватает возможностей Arduino Leonardo ETH для работы с сетью? Воспользуйтесь ArduinoYún! Это мощная платформа для проектов ...
    Не найдено: пакетов

    Arduino Yún

    https://doc.arduino.ua/ru/guide/ArduinoYun

    Для подключения Arduino Yún к компьютеру понадобится USB-кабель с разъемом ... основных команд можно найти на странице: Менеджер пакетов Yún. ... Описание концепций, лежащих в основе REST можно найти здесь.
    Geeetech® Айдино Юн Shield модуль расширения Board ...

    https://www.banggood.com › ... › Платы, модули и 3D принтеры › Платы и модули

    Рейтинг: 4,8 - ‎5 отзывов
    Только 2 315 руб., купить лучшие Geeetech® Айдино Юн Shield модуль ... Yun Shield является идеальным выбором для Arduino проекты, которые требуют различных интернет-соединения и больше памяти. ... В пакет включено:
    Yun Shield - Dragino

    www.dragino.com/products/yunshield/.../86-yun-shield.html

    Перевести эту страницу
    Arduino Yun Shield is one of the most strong shields for Arduino Board. Its designed to solve the Internet connectivity and storage issue for Arduino Board.
    Не найдено: пакетов
    Arduino Yún — Wi-Fi и Ethernet при нём / Хабр

    https://habr.com/post/193330/

    11 сент. 2013 г. - При присутствии Arduino Yún в одной сети с компьютером плата ... 16МБ flash-памяти содержат Linux образ, полноценный python и менеджер пакетов. ..... Vinculum-II вроде умеет это только размеры и цена
    Linux,Wi-fi,Ethernet,Usb,Все-в-одном Юн Щит Совместимы Для ...

    https://russian.alibaba.com › ... › Other Electronic Components (225464)

    Стандартный пакет (полиэтиленовый пакет + коробка) ... Описание продукта. Linux, wifi, ethernet, USB, All-In-One Yun Shield, совместимых для Леонардо ...
    Лучшая цена 1 шт. Юн щит V1.6 linux wifi ethernet usb проект для ...

    https://pricenow.win/.../yun-shield-board-for-arduno-expansion-board-ae-32637373381...

    Юн щит Описание: Yun Shield-один из самых мощных щитов для arduin board. ... Uno, Diecimila, mega Вышивка Крестом Пакет включено: 1 X Юн щит 1 х ...




    Навигация по страницам
    1 2 Следующая
     
  16. ИгорьК

    ИгорьК Гуру

    ИМХО, yun - странный крокозябл.
    Есть простая и понятная малина с тучей клонов, если надо дешевле.

    Запомнился он мне постоянными самопроизвольными перезагрузками. Работать с ним было прикольно, но в конце концов Малина победила Yun.
     
    Mitrandir нравится это.
  17. ZAZ-965

    ZAZ-965 Гуру

    @regent.correon, yun - это OpenWRT с дополнительными пакетами от Arduino. На гитхабе есть две ветки lede-yun (версия 17) и openwrt-yun (версия 14-15). По поддерживаемой версии 17 есть список пакетов https://openwrt.org/packages/table_lede17_1/start (от старых версий он отличается незначительно). Второй вариант - opkg
    Код (Bash):
    opkg update //обновить список пакетов
    opkg  list mpd-mini //вывести информацию о пакете mpd-mini
    mpd-mini - 0.20.21-1 - Music Player Daemon (MPD) is a flexible, powerful, server-side
    application for playing music. It is typically controlled over a  network using one of its many
    clients including mpc (console), gmpc (gnome), phpmp (php), etc...
    This package contains a minimal Music Player Daemon, with support for
    only Flac, MP3 & OGG media types & only file: & http: protocols.
    opkg list *sound*  //вывести информацию о пакетах в имени которых есть sound
     
    Последнее редактирование: 25 окт 2018
  18. b707

    b707 Гуру

    Яркий пример того, как не надо искать в гугле
    Вы же пишете, что имена пакетов известны? - вот и ищите инфу для конкретного пакета по имени.

    Например, запрос - Yun mpd-mini
    тут же получаем ссылку на гитхаб этого пакета, где есть описание
    Поднявшись выше -
    https://github.com/arduino/openwrt-packages-yun
    обнаруживаем гитхаб всех пакетов. Краткое описание - в файле Makefile в каждой директории
     
  19. regent.correon

    regent.correon Нерд

    Перезагрузок не замечал - работает на удивление стабильно. Кроме того установленный на борту линукс очень радует, несмотря на скудность документации...
     
  20. regent.correon

    regent.correon Нерд

    Благодарю за науку. При случае буду почитывать...