• Система автоматизации с открытым исходным кодом на базе 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 мне в мобиле вводить, тот который мне мобила показывает, или комп или один из которых в этом скетче?
Быть может есть скетчи без АТ команд, либо подобное готовое, либо посоветуйте, библиотеки и скетчи.
 
Сверху Снизу