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

AP ESP8266+Arduino с Android

Roman2344

New member
Вообщем задача такая нужно создать AP, хотелось бы используя связку ESP8266+Arduino( в связке по ЮАРТ) управлять с андроида( почему в связке да потому что допустим нужно включать 20 устройств( как я понял если напрямую зашить 8266 там всего где-то 2-5 ног свободных остаются для использования, да и у меня уже на ардуине есть проект и хотелось бы интегрировать для включений отключений в ардуине, а не отдельно), сейчас хочу включить светодиод(для мобилы набросал прогу в апп инверторе для Андроида, и посылаю с мобилы на 8266 два слова Vkl(от кнопки включить), Vikl(от кнопки выключить), далее хочу и с интернета и с мобилы( когда нету вайфай роутера и нет выхода в нет) управлять( что - нибудь включать - выключать, взял за основу этот код http://esp8266.ru/forum/threads/esp8266-arduino-ajax-zaprosy.656/:
Вот такое набросал:
Код:
#include <SPI.h>
#include <SoftwareSerial.h>
#include <ESP8266pro.h>
#include <ESP8266proServer.h>
#define DEBUG true
const int  RX=0;
const int  TX=1;
int il =  5;
  
const long interval = 60000;               //Sampling interval time mSec
const long ajaxtimeout = 10000;            //AJAX request send
const long COM_BAUD = 115200;                       //ESP UART baudrate
const String mode = "2";                           //1 - Client, 2 - Access Point, 3 - Both                       
const String ssid = "Mikcu";       //Network SSID
const String password = "1";              //Network Password
const String apipaddress = "192.168.4.5";          //Desired IP address
const String cipaddress = "192.168.0.207";          //Desired IP address
const String subnetworkmask = "255.255.255.0";
const String gateway = "192.168.0.9";
SoftwareSerial esp8266(RX, TX); // RX, TX
ESP8266pro wifi(esp8266, Serial);
String requestPaths[ESP_MAX_CONNECTIONS];
void setup() {
    pinMode(il, OUTPUT);
    esp8266.begin(COM_BAUD);
    //Serial.begin(COM_BAUD);    //for debug
  sendData("AT+RST\r\n",3400,DEBUG); // reset module
  sendData("AT+GMR\r\n",2000,DEBUG); // Sofware version
  sendData("AT+CWMODE="+mode+"\r\n",1000,DEBUG); // configure as access point
  sendData("AT+CWJAP=\""+ssid+"\",\""+password+"\"\r\n",10000,DEBUG); // connect to AP
  sendData("AT+CIPSTA_DEF=\""+cipaddress+"\",\""+gateway+"\",\""+subnetworkmask+"\"\r\n",1000,DEBUG); // set ip address
  sendData("AT+CIPMUX=1\r\n",1000,DEBUG); // configure for multiple connections
  //sendData("AT+CIPSERVER=1,80\r\n",1000,DEBUG); // turn on server on port 80
  // Start server on port 80
  Serial.println();
  Serial.println("=================================");
  if(mode=="1"){
  Serial.println("Server started: http://" + cipaddress);
  }
  if(mode=="2"){
  Serial.println("Server started: http://" + apipaddress);
  }
  if(mode=="3"){
  Serial.println("Server started:");
  Serial.println("Access Point: http://" + apipaddress);
  Serial.println("Client: http://" + cipaddress);
  }
  Serial.println("=================================");
  digitalWrite(il,HIGH);
  delay(1000);
  digitalWrite(il,LOW);
      
}
    void loop() {
char c=SoftwareSerial.read();
            if (( c)== "vkl")   {
           digitalWrite(il, 1); }

       else if ((c)== "vikl"){
              digitalWrite(il, 0); 
  
}}
    
    
String sendData(String command, const int timeout, boolean debug)
     {
    String response = "";
    esp8266.print(command); // send the read character to the esp8266
    long int time = millis();
    while( (time+timeout) > millis())
    {
      while(esp8266.available())
      {
  
        // The esp has data so display its output to the serial window
        char c = esp8266.read(); // read the next character.
        response+=c;
      }
    }
    if(debug)
    {
      Serial.print(response);
    }
    return response;
}
Точка появляется и я ней мобилой подключаюсь но не пойму как считать Softserial порт, и сравнить пришло ли то слово и включить или выключить светодиод. Помогите пожалуйста. И какой IP мне в мобиле вводить, тот который мне мобила показывает, или комп или один из которых в этом скетче?
Быть может есть скетчи без АТ команд, либо подобное готовое, либо посоветуйте, библиотеки и скетчи.
 
Сверху Снизу