Вообщем задача такая нужно создать AP, хотелось бы используя связку ESP8266+Arduino( в связке по ЮАРТ) управлять с андроида( почему в связке да потому что допустим нужно включать 20 устройств( как я понял если напрямую зашить 8266 там всего где-то 2-5 ног свободных остаются для использования, да и у меня уже на ардуине есть проект и хотелось бы интегрировать для включений отключений в ардуине, а не отдельно), сейчас хочу включить светодиод(для мобилы набросал прогу в апп инверторе для Андроида, и посылаю с мобилы на 8266 два слова Vkl(от кнопки включить), Vikl(от кнопки выключить), далее хочу и с интернета и с мобилы( когда нету вайфай роутера и нет выхода в нет) управлять( что - нибудь включать - выключать, взял за основу этот код http://esp8266.ru/forum/threads/esp8266-arduino-ajax-zaprosy.656/:
Вот такое набросал:
Точка появляется и я ней мобилой подключаюсь но не пойму как считать Softserial порт, и сравнить пришло ли то слово и включить или выключить светодиод. Помогите пожалуйста. И какой IP мне в мобиле вводить, тот который мне мобила показывает, или комп или один из которых в этом скетче?
Быть может есть скетчи без АТ команд, либо подобное готовое, либо посоветуйте, библиотеки и скетчи.
Вот такое набросал:
Код:
#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;
}
Быть может есть скетчи без АТ команд, либо подобное готовое, либо посоветуйте, библиотеки и скетчи.