phpBB [media]
Статья ведётся путём добавления материала.
По началу думал что с данным девайсом что то не так. При подаче напряжения, щелкала релюха и один раз мигали светодиоды на платах. Но открыв настройки WI-FI на смартфоне, обнаружил сеть FaryLink_38CEA9, которой ранее не было.
- FaryLink_38CEA9
Что бы как то начать программировать и получить информацию с модуля, я решил что буду использовать Arduino IDE. Более подробно можно ознакомиться в статье "ESP8266 прошивка, программирование в Arduino IDE". Я же постараюсь рассказать по короче, но это суть дела не меняет, тем более сам брал информацию из той статьи.
Так как Arduino IDE у меня уже была установлена, то мне оставалось только добавить плату ESP8266. Для этого запускаем среду разработки и перейдя в "Файл-Настройки" и в поле "Дополнительные ссылки для Менеджера плат" вставляем ссылку
http://arduino.esp8266.com/stable/package_esp8266com_index.json
и "OK"- Arduino IDE Файл-Настройки
- Инструменты-Плата-Менеджер плат
- менеджер плат esp8266
- разнообразные ESP8266
выбрав нужный COM порт(у меня это COM6),
Upload Speed выставляем на 115200.
Так как работать с платой будем через Arduino - "Программатор: AVR ISP"
- настройка платы ESP8266
- ESP8266 подключить к Arduino
- AT команда
Вот такой ответ приходит на команду AT+GMR – проверить информацию о версии
- AT+GMR
Ну если наигрались то можно приступить к прошивке. Для этого подключаем модуль по нижеприведённой схеме. Она не многим чем отличается от вышеприведённой. Тут добавлена кнопка RES она нам потребуется при заливке скетча. И выключатель на желтый провод GPIO 0, который мы будем включать для заливки скетча и отключать для проверки результатов (работы модуля). Только учтите что заливкой скетча вы удаляете заводскую прошивку модуля, и не сможете работать с AT командами. В общем то это не так уж и страшно, вы всегда сможете прошить родную прошивку Esp8266 ESP-01
- схема для прошивки esp8266 ESP-01
- Файл - Пример - ESP8266 - Blink
phpBB [media]
Работа ESP8266 с 5v реле
Ну и настало время собрать воедино ESP8266 и реле и проверить их работоспособность без Arduino. Но в нам нужно залить скетч, который был найден на просторах интернета:
Код: Выделить всё
/**
* WiFi розетка. Версия 1.0
* Copyright (C) 2015 http://samopal.pro
*/
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
// GPIO, куда подцелено реле
uint8_t PowerPin = 0;
bool PowerOn = false;
// Имя хоста
const char* host = "esp8266-power";
// Вместо звездочек свои параметры WiFi сети
const char* ssid = "samp";
const char* password = "9115067185";
ESP8266WebServer server(80);
void setup() {
// Последовательный порт для отладки
Serial.begin(115200);
Serial.printf("\n\nFree memory %d\n",ESP.getFreeHeap());
// Инициализация выхода реле
pinMode(PowerPin , OUTPUT);
digitalWrite(PowerPin , PowerOn);
// Подлючение к WiFi
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
if(WiFi.waitForConnectResult() == WL_CONNECTED){
// Запуск WEB-сервера
MDNS.begin(host);
server.on ( "/", HTTP_handleRoot );
server.onNotFound ( HTTP_handleRoot );
server.begin();
//Serial.printf( "HTTP server ok! Open http://%s.local in your browser\n", host);
Serial.println(WiFi.localIP());
}
else {
Serial.printf("WiFi started is fail");
}
}
void loop() {
server.handleClient();
delay(50);
}
/*
* Оработчик главной страницы сервера
*/
void HTTP_handleRoot(void) {
bool stat = false;
if( server.hasArg("stat") ){
if( strncmp(server.arg("stat").c_str(),"1",1) == 0 )stat = true;
}
else {
stat = PowerOn;
}
String out = "";
out =
"<html>\
<head>\
<meta charset="utf-8" />\
<title>WiFi розетка</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>\
<body>\
<h1>WiFi розетка. Версия 1.0</h1>\n";
if( stat ){
out+="\
<h2>Состояние: Включено</br>\
<a href="/?stat=0">Выключить</a></h2>\
";
}
else {
out+="\
<h2>Состояние: Выключено</br>\
<a href="/?stat=1">Включить</a><h2>\
";
}
out+= "\
</body>\
</html>";
server.send ( 200, "text/html", out );
if( stat != PowerOn ){
PowerOn = stat;
digitalWrite(PowerPin , PowerOn);
if( PowerOn )Serial.println("Power is ON");
else Serial.println("Power is OFF");
}
}
Подключаем модуль к питанию и перейду по адресу http://192.168.0.100 сможем управлять реле.
phpBB [media]
Возможно у вас будет другой, в зависимости от подключённых устройств к wi-fi роутеру.