Показано с 1 по 10 из 13

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Новичок
    Регистрация
    28.01.2014
    Сообщений
    15
    Вес репутации
    149

    По умолчанию Re: Wi-Fi модуль HLK-RM04 http запросы

    Возможно я не совсем подробно(правильно) описал задачу:
    комплектующие arduino micro(можно и другой), wifi модуль HLK-RM04, температурный датчик.
    Вот скетч, который формирует строку http запроса и кидает ее в порт:
    Код:
    #include <dht.h>
     
    DHT sensor = DHT();
     
    void setup()
    {
        Serial1.begin(115200);
        sensor.attach(A3);
        delay(1000);
    }
     
    void loop()
    {
        sensor.update();
        int h = sensor.getHumidityInt();
        int t = sensor.getTemperatureInt();
     
        String msg = "GET http://192.168.1.1/arduino.php?t="+ String(t) + "&h="+String(h);
        Serial1.println(msg);
     
        delay(9000);
    }


    При ввода в браузер строки 192.168.1.20:3333 (адрес моего wifi модуля), строки отображаюися в браузере.

    Имеется web-server apache (адрес 192.168.1.1), с mysql и php.
    скрипт php который отлавливает get запросы и производит запись в mysql:

    PHP код:
    <?php
    //адрес хоста
    $dbhost 'localhost';
    $dbuser 'test';
    $dbpass 'password';
    $dbname 'test';
    // сохраняем IP на всякий случай
    $client_ip $_SERVER['REMOTE_ADDR'];
    // получение значения переменной температура
    $temp $_GET["t"];
    // получение значения влажность
    $hum $_GET["h"];

    //устанавливаем подключение к MySQL
    $connect mysql_connect($dbhost$dbuser$dbpass);
    // Выбираем базу данных
    mysql_select_db ($dbname$connect);

    //Отправляем данные в таблицу
    $sql "INSERT INTO sensor_data VALUES (NOW(), '$temp', '$hum', '$client_ip')";

    // закрываем соединение с базой
    mysql_close($connect);
    ?>

    Соответственно если скопировать одну из строк, которые выводятся в браузер и вставить ее в адресную строку, то скрипт корректно отрабатывает и запись добавляется в базу.

    Весь вопрос заключается в том как заставить arduino+wifi отправлять запрос в web-server, как например при использовании интернет шилда:
    Код:
    #include <DHT.h>
    #include <Ethernet.h>
    #include <SPI.h>
    
    
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x4C, 0xFB };
    byte ip[] = { 192, 168, 1, 30 };
    
    //IP адрес сервера который будет собирать статистику
    byte server[] = { 192, 168, 1, 20 };
    
    EthernetClient client;
    //Контакт к которому подключен датчик температуры и влажности
    #define DHTPIN A0
    
    // Вы бираем сенсор который используется у вас, у меня DHT11
    #define DHTTYPE DHT11   
    
    
    DHT dht(DHTPIN, DHTTYPE);
    
    void setup()
    {
      Ethernet.begin(mac, ip);
      dht.begin();
      // Для отладки включим отправку данных в COM порт
      Serial.begin(9600);
      
    }
    
    void loop()
    {
    int h = dht.readHumidity();
    int t = dht.readTemperature();
    int l = analogRead(A0);
    String msg = "GET /test.php?t="+ String(t) + "&h="+String(h);
    
    // Для отладки включим отправку данных в COM порт
    Serial.println(msg);
    // Если это не требуется, то можно закомментировать
    
    
    client.connect(server, 80);
    client.println(msg);
    //Ждем 2 сек. 
    delay (2000);
    
    //потом отключаемся
    client.stop();
    
    //Данные будут отправляться каждые 10 сек, выше мы уже подождали 2 сек, подождем еще 8 сек. 
     delay (8000);
      }
    ???

    Или же такое в принципе через любой модуль wifi не возможно, или мой в частности??
    Последний раз редактировалось Chip; 19.03.2017 в 03:39.

  2. #2
    Новичок
    Регистрация
    27.02.2014
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: Wi-Fi модуль HLK-RM04 http запросы

    Цитата Сообщение от FDV Посмотреть сообщение

    Или же такое в принципе через любой модуль wifi не возможно, или мой в частности??
    приведенный скетч будет работать только со стандартным wifi shield, ссылку я на него давал. но это дорого по причине высокой стоимости wifi shield.
    может лучше взять Arduino Yun - wifi встроенный, а цена как у wifi sheild.
    если надо дешевле - http://imall.iteadstudio.com/develop...130626001.html - это аналог arduino со встроенным wifi всего на $43... и не надо соединять wifi shield с arduino micro - это тоже не совсем просто, так как shield без проблем только на UNO или Mega встает.

    описанный Chip способ возможно тоже будет работать, а возможно я говорю потому, что в CyberWrt есть веб-сервер, а согласно задаче требуется веб-клиент, который сам делает HTTP запросы. Соответственно в такой конфигурации можно сделать веб-сервер с выводом показаний датчика, но вопрос - можно ли отправить показания на внешний веб-сервер. Я не изучал глубоко доку на CyberWRT и ser2net, так что могу ошибаться.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •