
Итак, нашу Arduino IDE для работы с ESP8266 мы настроили в прошлой статье, теперь настала очередь подключения и прошивки самой ESPшки.
Для прошивки нам потребуется переходник USB-TTL с 3,3В логикой, макетная плата (хотя можно и без неё), тактовая кнопка, и охапка проводов.
Подключение для прошивки.
Для того чтобы прошить наш модуль, нам потребуется подключить его следующим образом. Пин TX соединяем с RX на USB-TTL и, соответственно, RX с TX. Так же подключаем землю с USB-TTL к пину GND на модуле, а 3.3В к пину 3.3V (хочется заметить, лучше использовать внешние источники питания, так как ESP8266 достаточно прожорливы, а ttl конвертеры выдают порядка 100 мА). GPIO00 — земля, GPIO15 — земля, CHIP_EN — 3.3В, RST через тактовую кнопку подтягиваем на землю. GND на модуле и 3.3V подключаем к шине земли и питания соответственно.
Заливка скетча (прошивки)
Подключаем наш USB-TTL к компьютеру, запускаем Arduino IDE, идём в Файл > Образцы> ESP8266WiFi > WiFiWebServer
У нас откроется скетч содержания:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
/* * This sketch demonstrates how to set up a simple HTTP-like server. * The server will set a GPIO pin depending on the request * http://server_ip/gpio/0 will set the GPIO2 low, * http://server_ip/gpio/1 will set the GPIO2 high * server_ip is the IP address of the ESP8266 module, will be * printed to Serial when the module is connected. */ #include <ESP8266WiFi.h> const char* ssid = "your-ssid"; const char* password = "your-password"; // Create an instance of the server // specify the port to listen on as an argument WiFiServer server(80); void setup() { Serial.begin(115200); delay(10); // prepare GPIO2 pinMode(2, OUTPUT); digitalWrite(2, 0); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); 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.println(WiFi.localIP()); } void loop() { // 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); } // Read the first line of the request String req = client.readStringUntil('\r'); Serial.println(req); client.flush(); // Match the request int val; if (req.indexOf("/gpio/0") != -1) val = 0; else if (req.indexOf("/gpio/1") != -1) val = 1; else { Serial.println("invalid request"); client.stop(); return; } // Set GPIO2 according to the request digitalWrite(2, val); client.flush(); // Prepare the response String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now "; s += (val)?"high":"low"; s += "</html>\n"; // Send the response to the client client.print(s); delay(1); Serial.println("Client disonnected"); // The client will actually be disconnected // when the function returns and 'client' object is detroyed } |
В открывшемся окне скетча в строках
1 2 |
const char* ssid = "your-ssid"; const char* password = "your-password"; |
Вместо «your-ssid» и «your-password» мы прописываем SSID вашей точки доступа и соответственно её пароль. Наш модуль, по сути, будет клиентом!!!
Жмём Вгрузить, во время компиляции один раз нажимаем на нашу тактовую кнопку ( у кого нет кнопки, можно буквально на секунду подсоединить ногу RST к земле)
Далее начнётся загрузка скетча в нашу ESPшку.
После того, как всё загрузится и появится надпись Вгрузили, можем открыть Монитор последовательного порта, установить скорость в 115200 и посмотреть успешно ли прошло подключение к точке доступа, и какой IP адрес получил наш модуль(у вас он может быть отличным от моего).
1 2 3 4 5 |
Connecting to ВашаSSID .... WiFi connected Server started 192.168.1.37 |
Если у вас всё получилось и монитор COM порта выдаёт примерно такие данные, то можно переходить к следующему шагу.
Управление «ногами»
Вносим небольшие изменения в наше подключение модуля, а именно GPIO00 подключаем к 3,3В, GPIO02 подключаем через сопротивление (220 Ом) к аноду светодиода, а его катод к земле.
Запускаем снова всю нашу систему и смотрим снова в монитор COM порта, он выдаст нам тоже самое что и в прошлый раз. Нас интересует полученный модулем IP адрес. Переходим по ссылке http://ваш_ip_адрес/gpio/1 и у вас должна высветиться надпись «GPIO is now high» и загореться светодиод, а перейдя по ссылке http://ваш_ip_адрес/gpio/0 вы получите надпись «GPIO is now low» и светодиод погаснет.
Ну вот и всё, мы научились прошивать ESP8266 esp-201, как выяснилось это совершенно не сложно, и управлять нагрузкой на ноге из браузера (ведь вместо светодиода можно поставить модуль с реле). В завершение хотелось бы добавить, если у вас модуль постоянно отваливается и сыплет ошибки, в первую очередь следует копать в сторону питания.
Комментарии: