2015-12-03 3 views
1

Описание:ESP 8266 Программа Выпуск

Я делаю веб-сервер на ESP-8266 (01), который будет управлять 3 замков с помощью Arduino Mega.

Замки будут контролироваться Bluetooth, ESP 8266 (получить mthod с телефона) и использовать мой браузер для ноутбуков.

-Я могу сделать все это с помощью Bluetooth HC-05 (легко).

Проблема, с которой я сталкиваюсь, - это мой Wi-Fi-модуль ESP-8266.

Мне нужно отправить 3 разных строки из ESP для ардуино, чтобы прочитать его. Если его «AAAA» Arduino будет читать его и разблокировать двери один, если он BBBB затем дверь 2 и т.д. и т.п .....

Так что я использовал код ниже:

#include <ESP8266WiFi.h> 

const char* ssid = "Do-Not-Ask-For-Password"; 
const char* password = "ITISMYPASSWORD"; 

//const char* ssid = "`STAR-NET-Azhar-32210352"; 
//const char* password = "ITISMYPASSWORD"; 

int ledPin = 2; // GPIO2 
WiFiServer server(80); 
// Update these with values suitable for your network. 
IPAddress ip(192,168,8,128); //Node static IP 
IPAddress gateway(192,168,8,1); 
IPAddress subnet(255,255,255,0); 


void setup() { 
    Serial.begin(115200); 
    delay(10); 

    pinMode(ledPin, OUTPUT); 
    digitalWrite(ledPin, LOW); 

    // Connect to WiFi network 
    Serial.println(); 
    Serial.println(); 
    Serial.print("connecting to "); 
    Serial.println(ssid); 

    WiFi.begin(ssid, password); 
    WiFi.config(ip, gateway, subnet); 

    while (WiFi.status() != WL_CONNECTED) { 
    delay(500); 
    Serial.print("."); 
    } 
    Serial.println(""); 
    Serial.println("WiFi connected"); 

    // Start the server 
    server.begin(); 
    Serial.println("Server started"); 

    // Print the IP address 
    Serial.print("Use this URL to connect: "); 
    Serial.print("http://"); 
    Serial.print(WiFi.localIP()); 
    Serial.println("/"); 

} 

void loop() { 
    ESP.wdtDisable(); 
    // Check if a client has connected 
    WiFiClient client = server.available(); 
    if (!client) { 
    return; 
    } 

    // Wait until the client sends some data 
// Serial.println("new client"); 
// while(!client.available()){ 
    // delay(1); 

// } 
    if(!client.available()){ 
    delay(1); 
    client.flush(); 
    } 

    // Read the first line of the request 
    String request = client.readStringUntil('\r'); 
    //Serial.println(request); 
    client.flush(); 

    // Match the request 

    int value1 = LOW; 
    int value2 = LOW; 
    int value3 = LOW; 
    if (request.indexOf("/LOCK=ON1") != -1) { 
    //digitalWrite(ledPin, HIGH); 
    value1 = HIGH; 
    Serial.println("AAAA"); 

    } 
    if(request.indexOf("/LOCK=ON2") != -1){ 
    value2 = HIGH; 
    Serial.println("BBBB"); 

    } 
    if(request.indexOf("/LOCK=ON3") != -1){ 
    value3 = HIGH; 
    Serial.println("CCCC"); 

    } 


// Set ledPin according to the request 
//digitalWrite(ledPin, value); 

    // Return the response 
    client.println("HTTP/1.1 200 OK"); 
    client.println("Content-Type: text/html"); 
    client.println(""); // do not forget this one 
    client.println("<!DOCTYPE HTML>"); 
    client.println("<html>"); 
client.println("<br><br>"); 
    client.print("LOCK ONE IS NOW: "); 
    if(value1 == HIGH) { 
    client.print("UNLOCKED"); 
    // Serial.println("A"); 
    } else { 
    client.print("LOCKED"); 
    } 
    client.println("<br><br>"); 
    client.print("LOCK TWO IS NOW: "); 
    if(value2 == HIGH) { 
    client.print("UNLOCKED"); 
    // Serial.println("B"); 
    } else { 
    client.print("LOCKED"); 
    } 
    client.println("<br><br>"); 
    client.print("LOCK THREE IS NOW: "); 
    if(value3 == HIGH) { 
    client.print("UNLOCKED"); 
    //Serial.println("C"); 
    } else { 
    client.print("LOCKED"); 
    } 


    client.println("<br><br>"); 
    client.println("CLICK <a href=\"/LOCK=ON1\">HERE</a> TO UNLOCK THE LOCK ONE<br>"); 
    client.println("CLICK <a href=\"/LOCK=ON2\">HERE</a> TO UNLOCK THE LOCK TWO<br>"); 
    client.println("CLICK <a href=\"/LOCK=ON3\">HERE</a> TO UNLOCK THE LOCK THREE<br>"); 



    client.println("</html>"); 

    delay(100); 
    //Serial.println("client disconnected"); 
// Serial.println(""); 

} 

Результат I Получить на браузер (что мне нужно):

enter image description here

ВОПРОС:

Теперь проблема в том, что она пропускает последовательные данные, которые я отправляю. Например, если я нажимаю кнопку разблокировки двери 1, она отправляет данные, и я нажимаю кнопку разблокировки двери 2, это не делает, и когда я его сброшу, он отправляет данные из всех 3, но для два в три раза, а затем модуль автоматически возвращается ....

Это то, что я получил от Serial Monitor:

enter image description here

Теперь я искал много, и его watchdre, что я сделал неправильно в код.

это как мой ESP подключен:

VCC & CHPD до 3,3В ragulator

Gnd к земле из powersuply и Arduino ... GND

GP 0 ----- -> 3,3 В с 2,2 КБ резистором (в состоянии без вспышки).

Rst ------> 3.3В с резистором

RX на TX

TX в RX

Любые идеи, как это исправить?

Есть ли какой-либо другой способ управления контактами Arduino (6 разъемов diffrnt) от модуля ESP 8266?

ive пытался со многих дней, пожалуйста, помогите !!

ответ

0

Хорошо, я отправляю его Для тех, кто сталкивается с той же проблемой !! я взял пример Hello ESP и модифицировал его для печати серийного номера!

На Mega My Serial Началось с 9600, и я начал серийный On ESP на 9600 а также: | Так что это код .... Медленный сервер и проблема WDT почти ушли ....

#include <ESP8266WiFi.h> 
#include <WiFiClient.h> 
#include <ESP8266WebServer.h> 
#include <ESP8266mDNS.h> 

//const int RELAY_PIN = 2; //RELAY 

const char* ssid = "Do-Not-Ask-For-Password"; 
const char* password = "AeDrki$32ILA!$#2"; 
MDNSResponder mdns; 
ESP8266WebServer server(80); 

void handleRoot() { 
    server.send(200, "text/plain", "hWelcome To Door Unlock Project By Haziq Sheikh"); 
} 

void handleNotFound(){ 
    String message = "File Not Found\n\n"; 
    message += "URI: "; 
    message += server.uri(); 
    message += "\nMethod: "; 
    message += (server.method() == HTTP_GET)?"GET":"POST"; 
    message += "\nArguments: "; 
    message += server.args(); 
    message += "\n"; 
    for (uint8_t i=0; i<server.args(); i++){ 
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; 
    } 
    server.send(404, "text/plain", message); 
} 

void setup(void){ 
// pinMode(RELAY_PIN, OUTPUT); 
    Serial.begin(9600); 
    WiFi.begin(ssid, password); 
    Serial.println(""); 

    // Wait for connection 
    while (WiFi.status() != WL_CONNECTED) { 
    delay(500); 
    Serial.print("."); 
    //digitalWrite(RELAY_PIN, 1); 
    } 
    Serial.println(""); 
    Serial.print("Connected to "); 
    Serial.println(ssid); 
    Serial.print("IP address: "); 
    Serial.println(WiFi.localIP()); 
// digitalWrite(RELAY_PIN, 0); 

    if (mdns.begin("esp8266", WiFi.localIP())) { 
    Serial.println("MDNS responder started"); 
    } 

    server.on("/", handleRoot); 

    server.on("/lock1", [](){ 
    server.send(200, "text/plain", "Okay Door One Unlocked"); 
    Serial.println("AAAA"); 
    }); 

    server.on("/lock2", [](){ 
    server.send(200, "text/plain", "Okay -- Door 2 Unlocked"); 
    Serial.println("BBBB"); 
    }); 

    server.on("/lock3", [](){ 
    server.send(200, "text/plain", "Okay -- Door 3 is Unlocked"); 
    Serial.println("CCCC"); 
    }); 

    server.onNotFound(handleNotFound); 

    server.begin(); 
    Serial.println("HTTP server started"); 
} 

void loop(void){ 
    server.handleClient(); 
} 
Смежные вопросы