• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Общение ардуины с сервером php на компьтере через esp8266

FDV

New member
Имеется web-сервер apache+mysql+php на стационарном компе. Имеется несколько arduino с этими wifi модулями и датчиками/ устройствами.
Wifi сеть построена на базе роутера. Часть с отправкой данных на web-сервер с arduin по wifi отработана. Кому интересно код выложу (ничего сложного).
А вот обратная связь хромает..... ((((
Вопрос в том как можно сделать запрос из php устройсту, чтобы то запустило какой-либо набор действий на arduino (зажгло лампочку и т.д.)?
 

volfvvv

New member
Дык. PHP выполняется на сервере, чё-то считает , а результат (обычно в виде текстового файла формата HTML) выдаётся как раз Вашей ардуине или чиво там подключено к ESP. Это и есть обратная связь так Вам необходимая. Ежели очень хочется можно передать на ардуину даже новую прошивку и тем самым изменить ея поведение...
Как-то так...
А вообще, Вы, по-видимому, чё-то не догоняете в модели клиент-сервер.
В таких случаях, надо обратиться к первоисточникам и составным частям..., Маркса, Энгельса почитать...
 

SerGO

New member
Я в свое время собирал на 51 контроллере такую блуду. ПХП менял текстовый файл на компе. Этот файл постоянно отслеживала программа, которая и отсылала по РС232 команду контроллеру. Тот в свою очередь зажигал светик и включал реле.

Щас постепенно перехожу на ардуину
 

metaforos

New member
Всем привет. Присоединяюсь к ТС. Вобщем суть такова: Есть ESP+Arduino. Без Ардуины - никак!. Т.е. в принципе КАК, но не хочу.
Нужно прикрутить к дуине ESPшку таким образом, чтобы ESP работала в качестве клиента. Например так : Сервер (Raspberry PI+php скрипт+GET запрос) шлет на Ардуину (Через ESP) например цифру 1, а Ардуино, опят же через ESP отправляет серверу определенные значения. С PHP проблем нет. А вот со скетчем Ардуино+ESP проблемы есть. Сколько учусь... Но не научился я дуины программировать..
Может кто сталкивался с таким?
 

Ivizil

New member
Спасибо за ссылку. Вот только библиотеку найти не могу. Вроде нашел https://github.com/metaforos/esp8266-Arduino/tree/master/esp8266com/esp8266/libraries/ESP8266WiFi, но постоянно ругается -
Arduino\libraries\ESP8266WiFi\src/WiFiClient.h:28:18: fatal error: memory: No such file or directory
[HASHTAG]#include[/HASHTAG] <memory>
Просто скачав библиотеку ничего работать не будет нужно установить следуя вот этим инструкциям http://esp8266.ru/forum/threads/obschie-voprosy-po-arduino-ide-dlja-esp8266.224/
 

metaforos

New member
Насколько я понял, эти инструкции, для программирование самого esp из Ардуино IDE. Под скетч :
Код:
#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
const char* ssid     = "SSID";
const char* password = "PASSWORD";
const char* host = "arduino.zhodinovel.com";
int val=0;
int buff=0;
void setup() {
  sensors.begin();
  delay(10);
  pinMode(12, OUTPUT);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }
}
void loop()
{
  sensors.requestTemperatures();
  WiFiClient client;
  if (client.connect(host, 80))
    {
    client.print( "GET /add_data.php?");
    client.print("temp-1=");
    client.print( sensors.getTempCByIndex(0) );
    client.print("&");
    client.print("&");
    client.print("temp-2=");
    client.print( sensors.getTempCByIndex(1) );
    client.println( " HTTP/1.1");
    client.print( "Host:" );
    client.println(host);
    client.println( "Connection: close" );
    client.println();
    client.println();
  
    while (client.available())
    {
    char line = client.read();
    if ( line=='1')
        {
        buff=1;
        }
        if ( line=='0')
        {
         buff=0;
        }
     }
}
  if ( buff==1)
        {
        digitalWrite (12, HIGH);
        }
        else
        {
          digitalWrite(12, LOW);
        }
}
тоже нужно это делать?
 

Ivizil

New member
Насколько я понял, эти инструкции, для программирование самого esp из Ардуино IDE. Под скетч :
Код:
#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
const char* ssid     = "SSID";
const char* password = "PASSWORD";
const char* host = "arduino.zhodinovel.com";
int val=0;
int buff=0;
void setup() {
  sensors.begin();
  delay(10);
  pinMode(12, OUTPUT);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }
}
void loop()
{
  sensors.requestTemperatures();
  WiFiClient client;
  if (client.connect(host, 80))
    {
    client.print( "GET /add_data.php?");
    client.print("temp-1=");
    client.print( sensors.getTempCByIndex(0) );
    client.print("&");
    client.print("&");
    client.print("temp-2=");
    client.print( sensors.getTempCByIndex(1) );
    client.println( " HTTP/1.1");
    client.print( "Host:" );
    client.println(host);
    client.println( "Connection: close" );
    client.println();
    client.println();
 
    while (client.available())
    {
    char line = client.read();
    if ( line=='1')
        {
        buff=1;
        }
        if ( line=='0')
        {
         buff=0;
        }
     }
}
  if ( buff==1)
        {
        digitalWrite (12, HIGH);
        }
        else
        {
          digitalWrite(12, LOW);
        }
}
тоже нужно это делать?
Это скетч для esp. Сам контроллер ардуино здесь не нужен. Вы прошиваете esp и используете её как arduino.
Хотя если вам критично использовать именно arduino, а esp вы хотите использовать как wi-fi модуль, то вы можете сделать все то же что написано в скетче здесь, используя AT команды.
 

metaforos

New member
Спасибо. Мне нужно обязательно с Ардуиной его исполтзовать. Можно просто АТ командами без библиотеки?
 

Vitaly

Member
Спасибо. Мне нужно обязательно с Ардуиной его исполтзовать. Можно просто АТ командами без библиотеки?
Можно через АТ команды, но лично я даже связки espAT+arduino переделал на ардуиноЕСП+ардуино потому что вопросы стабильности и возможности по отладке ат прошивок оставляют желать..
 
Сверху Снизу