• Система автоматизации с открытым исходным кодом на базе 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 переделал на ардуиноЕСП+ардуино потому что вопросы стабильности и возможности по отладке ат прошивок оставляют желать..
 
Сверху Снизу