Передача температуры за окном на веб-сайт

Тема в разделе "Посоветуйте детальки", создана пользователем HighDigital, 16 июл 2013.

  1. HighDigital

    HighDigital Гик

    Всем привет!

    Такой вопрос - что нужно почитать/посмотреть примеры по реализации передачи температуры за окном через Arduino на веб-сайт?
    В наличии: Arduino Uno R3, DHT11, мелочевка, стандартные руки.
    В PHP и в JavaScript знаю немного, начальный уровень.

    P.S передачу хочу сделать через СОМ порт.

    Заранее благодарен.
     
  2. XCB

    XCB Гик

  3. HighDigital

    HighDigital Гик

    Так это понятно, как его подключать и считывать.
    Вопрос собственно - как эти данные вывести на веб-сайт в режиме онлайн.
     
  4. Mitrandir

    Mitrandir Гуру

    Сервак с сайтом на компе к которому ардуина подключена работает?
     
  5. HighDigital

    HighDigital Гик

  6. HighDigital

    HighDigital Гик

    на nimp'e стоит
     
  7. Mitrandir

    Mitrandir Гуру

    На пхп открываешь ком порт и читаешь где-то видел примерчик не помню где только
     
  8. HighDigital

    HighDigital Гик

    вот примерчик бы не помешал реализации с примером - найти не могу. Находил только реализацию через Ethernet Shield...
     
  9. Mitrandir

    Mitrandir Гуру

    Вечером найду. С телефона не айс искать
     
  10. HighDigital

    HighDigital Гик

    ок, спасибо
     
  11. HighDigital

    HighDigital Гик

    т.е нужен простой PHP код, который пишет/читает из СОМ порта. Такового кода найти не могу, попадаются не рабочие :(
    P.S у меня WinXP
     
  12. HighDigital

    HighDigital Гик

    Есть небольшое продвижение - добился работы СОМ порта, при заходе с любого компьютера на мой сайт, на страничку index.php - срабатывает скрипт, который шлет дуне "Hello !", ТХ с интервалом 1 сек моргает.
    Код:
    PHP:
    <?php
    include "php_serial.class.php";

    // Let's start the class
    $serial = new phpSerial;

    // First we must specify the device. This works on both linux and windows (if
    // your linux serial device is /dev/ttyS0 for COM1, etc)
    $serial->deviceSet("COM1");

    // Then we need to open it
    $serial->deviceOpen();

    // To write into
    $serial->sendMessage("Hello !");

    // Or to read from
    $read = $serial->readPort();

    // If you want to change the configuration, the device must be closed
    $serial->deviceClose();

    // We can change the baud rate
    $serial->confBaudRate(2400);

    // etc...
    ?>
    + в корень с index.php положил класс: php_serial.class.php
    его код не буду выкладывать - очень большой.

    источник радости
     
  13. HighDigital

    HighDigital Гик

    Взял зацепку, буду пробовать от неё плясать. В содействии не откажусь :)
     
  14. HighDigital

    HighDigital Гик

    Я шлю ему "1" через php - он не отвечает, ТХ моргает раз в 1 секунду, а RX молчит, на дуне залит скетч - при получении "1" поморгать 2 раза и послать ответ "go", он не моргает. В php есть "типы данных", может быть я ему Char, а не int шлю? :eek:
     
  15. HighDigital

    HighDigital Гик

    и ещё - те то разбирается в php, можете набросать, чтобы было 2 кнопки, одна посылала "0", другая "1", и внизу был вывод результата из СОМ порта. Заранее спасибо! :)
     
  16. Mitrandir

    Mitrandir Гуру

    Попробуй добавить это после deviceSet
    $serial->confBaudRate(9600); //Baud rate: 9600
    $serial->confParity("none"); //Parity (this is the "N" in "8-N-1")
    $serial->confCharacterLength(8); //Character length (this is the "8" in "8-N-1")
    $serial->confStopBits(1); //Stop bits (this is the "1" in "8-N-1")
    $serial->confFlowControl("none");
     
  17. HighDigital

    HighDigital Гик

    хм, какая-то аномалия - теперь при оправки на дуню, cветодиод слишком много раз моргает, потом гаснет, моргание как при загрузки скетча на ардуино, или перезагрузки ардуино. такое впечатление, что при отправки "1" или "2" через PHP - дуня перезагружается О_о. если через встроенную в ArduinoIDE отправлять - все нормально.
     
  18. HighDigital

    HighDigital Гик

    Проблема с "неисполнением" кода решена!
    Напомню: На Ардуине зашит скетч: при получении "1" - поморгать 3 раза.

    с PHP на СОМ порт приходило число "1", но Ардуино не исполняла код. Через встроенный в ArduinoIDE JavaCOM все нормально, следовательно проблема не в скетче ардуино, а в php коде.
    Сидел до 01:00, плюнул, пошел спать. Перед тем как уснуть, вспомнил уроки Jeremy Blum, где он объяснял "почему мы посылаем "1" а получаем "49", если должны получить "1" обратно...(6 серия ч1)". Проснулся, попробовал из php послать "49", работает!

    Не даром говорят - утро вечера мудренее! :)

    Код php:
    PHP:
    <?php
    include "php_serial.class.php";
    $serial = new phpSerial;
    $serial->deviceSet("COM3");
    $serial->deviceOpen();
    $serial->sendMessage("49");
    $serial->deviceClose();
    $serial->confBaudRate(19200);
    ?>
    Надеюсь я кому-то помог своими вопросами! :)
    P.S Был бы очень рад, если бы в вики появилась статья о передачи на СОМ порт через php, это бы многим людям помогло, т.к в интернете очень многие задают этот вопрос.
     
  19. HighDigital

    HighDigital Гик

    Остаётся только одно - считать и вывести данные с СОМ порта, попробую поискать в интернете, но от помощи не откажусь! :)
     
  20. XCB

    XCB Гик

    тамже пример есть
    // Or to read from
    $read = $serial->readPort();
    соответственно на адруине вместо моргания собираете строку и отдаете в порт