Arduino Yún: азы. Основы построения монитора умного дома.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 11 сен 2014.

  1. ИгорьК

    ИгорьК Гуру

    А use home; перед этим делали?
    Кстати, Вы говорите что через localhost у Вас доступа нет. Возможно дело и в этом, хотя я тут не специалист.
    С такой проблемой (localhost) никогда не сталкивался. Возможно Вы не внимательно сделали все настройки LAMP.
    В частности, в файле php.ini должна быть запись
    mysql.default_host = 127.0.0.1
     
    Последнее редактирование: 13 окт 2014
  2. antonim

    antonim Нуб

    ммм... сложно сказать по поводу "перед этим".
    работал с вашим примером DB, там конечно делал use home; ну и баловался с примерами из книги. Сама команда GRANT ALL ON home.... проходит без ошибок. а вот зайти под этим условным user не могу. error. и "-pпароль", и "-p" с последующим вводом пароля...

    вот. наверно с настройками что-то не допилил. проверю. Спасибо.
     
    Последнее редактирование: 13 окт 2014
  3. ИгорьК

    ИгорьК Гуру

    Проверяйте установку LAMP: Естественно через WinSPC а не через vi.

     
    Последнее редактирование: 13 окт 2014
  4. antonim

    antonim Нуб

    да. правильно Вы говорите. не допилил. это решит с localhost вопрос.
     
  5. antonim

    antonim Нуб

    после правки lampstatus нога 13 заработала.
     
  6. antonim

    antonim Нуб

    Игорь подскажите пожалуйста - а у Вас наблюдается "подвисание" Yun ?
    У меня пинг за сутки увеличивается от 1 до 900мс и до "заданный узел недоступен".
    При этом никакой полезной работы плата не производит. Как-то боролись с этим ?
    Плата подключена через WiFi. через сутки-двое простоя перестает отдаваться веб-морда и отвечать на запрос к порту. при этом плата не сдвигается с места - то есть пространственно антенны модема и платы не перемещаются.
    не могу решить - имеет ли смысл делать эту плату основой какой-то системы, если она будет пропадать из сети со всеми вытекающими.
     
  7. ИгорьК

    ИгорьК Гуру

    Есть такое. Это зависает веб-сервер, причем в части взаимодействия с php.Вопрос (пока) решается постановкой задачи cron на ежечастную его перезагрузку. Буду ближе к компьютеру покажу как.

    UPD: 10.12.2014. А проблема, похоже, в кривых примерах, опубликованных в разных местах интернета и даже на сайте Ардуино. В первую очередь, это касается класса Process.
    Что, собственно, необходимо делать.
    - инициации процессов ( Process ...;) делать еще до сетапа. Полагаю, что этот пример будет завешивать Yun, не смотря на то, что он опубликован на официальном сайте.
    - на время выполнения процесса ставить "тормоз" : while(p.available()) ;
    Программа контроля температуры, которая у меня в целом работала, но завешивала Yun за 30 минут при каждом 30-секундном обращении к базе данных Mysql проработала уже целую ночь. Праздник! По результатам будет заметка.
     
    Последнее редактирование: 10 дек 2014
  8. ИгорьК

    ИгорьК Гуру

    Вот так это делается:
    new002.jpg

    Смотрим на первые три стоки. В третьей, на каждой пятой минуте каждого часа происходит перезагрузка uhttpd.
    Последняя строка - отправка нашей температуры на Народный Мониторинг. Пока идет тестирование, но вскоре выложу проект.
    Однако со временем надо будет поставить Apache дабы не мучиться с этим зависанием. Да и парольный доступ к страничкам на нем удобнее организовать. А он нужен будет.
     
    Последнее редактирование: 29 окт 2014
  9. ИгорьК

    ИгорьК Гуру

    Доступ к странице по паролю организуется следующим образом:
    В PuTTy набираем команду:
    uhttpd -m вашпароль
    и получаем в ответ типа следующее:
    $1$$ysVNzQc4CTMkp5daOdZ.3/ - запоминаем.
    В WinSCP редактируем файл /etc/httpd.conf где первой строкой пишем

    /:вашлогин:$1$$ysVNzQc4CTMkp5daOdZ.3/ после чего в PuTTy даем команду:
    /etc/init.d/uhttpd restart
    Все, после этого вход на ваш сервер будет через логин и пароль.
    Проблема: на андроид устройствах иногда это решение засыпает входящего требованием введения пароля.
     
    Последнее редактирование: 29 окт 2014
  10. ИгорьК

    ИгорьК Гуру

    Последнее редактирование: 16 июн 2015
    eke2013 нравится это.
  11. ИгорьК

    ИгорьК Гуру

    Что-то Ардуинка Yun все чаще и чаще стала зависать. Пока не понимаю в чем причина.
    На основе компиляции вот этого и этого постов предлагаю следующее решение:
    1. Создаем файл /bin/testLan.sh делаем исполняемым.
    2. Со следующим содержимым:
    Код (Text):
    #!/bin/sh
    PINGRESORCE1="ya.ru"
    if (! ping -q -c3 ${PINGRESORCE1} > /dev/null 2>&1)
    then
    reset-mcu
    /sbin/reboot
    else
    echo 'internet ok'
    fi
    В cron добавляем строку:
    Код (Text):
    */10 * * * * /bin/testLan.sh
    В результате, каждые 10 минут Yun пингует Яндекс и перезагружается, в случае неудачи.
     
    Последнее редактирование: 5 июн 2015
  12. ИгорьК

    ИгорьК Гуру

    Использование памяти.
    Чистая Yun:
    0002.jpg
    Установил Apache:
    0003Apache.jpg
    Установил PHP:
    0004PHP.jpg
    Установил MySql:
    0005MySql.jpg
    ... сделал полный reset :)
    Вывод. Без предварительной подготовки лучше не повторять.

    UPD. А вот если не устанавливать Apache, а пользоваться дефолтным uHTTPd, то остается 24% . Будем пробовать уложиться :)
     
    Последнее редактирование: 18 ноя 2014
  13. ИгорьК

    ИгорьК Гуру

    Внимание! Делать на свой страх и риск! Недокументированная возможность! Но, ведь, работает! :)
    Источник.
    Linux часть Arduino Yun легко управляется через интернет, а вот загрузка скетча через интернет не предусмотрена. Ок, сделаем вручную.
    1. В среде Ардуино => Настройки => Ставим галочку "Показать подробный вывод: V Компиляция".
    2. Компилируем файл, смотрим одну из последних записей на черном фоне:
    2211.jpg
    3. Находим в проводнике файл hex, в данном случае YunNarodmonSql002001.cpp.hex
    4. Через WinSCP копируем этот файл на Yun в папку /tmp
    5. Через PuTTY даем следующие команды:
    Код (C):
    merge-sketch-with-bootloader.lua /tmp/YunNarodmonSql002001.cpp.hex
    run-avrdude /tmp/YunNarodmonSql002001.cpp.hex
    6. Наблюдаем за процессом.
    7. По окончании, исполняем следующий код:
    Код (Text):
    reset-mcu
    reboot
     
    Последнее редактирование: 10 дек 2014
  14. ИгорьК

    ИгорьК Гуру

    Что грустного? Вот эти две картинки :(
    Одна от Uno, другая от Yun.
    uno.jpg

    yun.jpg
     
  15. Мдя, гляжу, я и думаю, зачем, почему?

    Настоящие программисты никогда не используют в "html" "php" код.

    За 5000 рублей можно взять Core 2 duo с памятью 8 гигов , хардом на терабайт и видюхой хорошей и разложить на ней сервак. А видюху отдать сынуле... используя встроенную.
    А ардуино использовать только для получения данных. И не будет зависонов, и перезагрузок, и проблем с кодом и т.д. Когда я начал изучать юникс системы, то понял, что стабильнее их нет ничего. Все Apple устройства на семействе юникс, андроид тоже....

    Я когда работал в школе, поставил сервер и две ночи я его настраивал. Друг мне очень помогал с командами. 6 лет я проработал в школе и 4 года после школы на другой работе. Сервер до сих пор пингуется и работает.

    9 лет стабильной работы, практически не выключая...
     
  16. Поэтому мы всегда в html пишем php и делаем на чем придется....
     
  17. ANV

    ANV Гуру

    Выбор комплектующих - личный выбор каждого и очень часто диктуется такими субъективными факторами как "возьму плату поиграться" или "о, как раз плата XXXXX в загажнике без дела валяется".
    Я, например, буду делать не на Yun, а на Cubietruck, кому-то малина нравится.
    Плюс, подобное решение на Core2Duo не каждому по душе, тк не у каждого дома есть мини-серверная, чтобы в нее тащить громыхающее списанное в утиль барахло за 5000 :)
     
  18. На вкус и цвет все фломастеры разные... Я не спорю, я подкинул идею
     
  19. ИгорьК

    ИгорьК Гуру

    Обнаружен интересный пост, который описывает, как с помощью веб-морды грузить скетч в Ардуино Yun.
    Вы можете воспользоваться им. Однако веб-сервер, который требуется в нем установить, будет обрабатывать php на 80 порту, а мы ранее, установили обработчик на 81 порт.
    В связи с этим, рекомендую поступить следующим образом:
    1. Установить дополнительные пакеты:
    opkg update
    opkg install php5-mod-json php5-mod-hash php5-mod-session

    2. Скачать архив с файлами, которые я самую малость модернизировал относительно автора;
    3. Создать папку /srv/www/uploader
    4. Загрузить в нее файлы из архива
    ... и наслаждаться по адресу http://xxx.xxx.xxx.xxx:81/uploader/
     

    Вложения:

    • uploader.zip
      Размер файла:
      136 КБ
      Просмотров:
      552
  20. ANV

    ANV Гуру

    Игорь, а на bridge в Yun может работать одновременно несколько классов?
    Нужно одновременно иметь веб-сервер и FileIO