Esp8266 — сообщество разработчиков

Connect With WPA

This example shows you how to connect to a WPA2 Personal encrypted 802.11b/g network with the Arduino WiFi shield. Your Arduino Software (IDE) serial monitor will provide information about the connection once it has connected.

Circuit

The WiFi shield uses pins 10, 11, 12, and 13 for the SPI connection to the HDG104 module. Digital pin 4 is used to control the slave select pin on the SD card.

You should have access to a 802.11b/g wireless network that connects to the internet for this example. You will need to change the network settings in the sketch to correspond to your particular networks SSID.

For networks using WPA/WPA2 Personal encryption, you need the SSID and password. The shield will not connect to networks using WPA2 Enterprise encryption.

In the above image, the board would be stacked below the WiFi shield.

Code

/*
 This example connects to an unencrypted Wifi network.
 Then it prints the  MAC address of the Wifi shield,
 the IP address obtained, and other network details.
 Circuit:
 * WiFi shield attached
 created 13 July 2010
 by dlf (Metodo2 srl)
 modified 31 May 2012
 by Tom Igoe
 */#include <SPI.h>#include <WiFi.h>char ssid = «yourNetwork»;     //  your network SSID (name)char pass = «secretPassword»;  // your network passwordint status = WL_IDLE_STATUS;     // the Wifi radio’s statusvoid setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println(«WiFi shield not present»);
    // don’t continue:
    while (true);
  }
  String fv = WiFi.firmwareVersion();
  if (fv != «1.1.0») {
    Serial.println(«Please upgrade the firmware»);
  }
  // attempt to connect to Wifi network:
  while (status != WL_CONNECTED) {
    Serial.print(«Attempting to connect to WPA SSID: «);
    Serial.println(ssid);
    // Connect to WPA/WPA2 network:
    status = WiFi.begin(ssid, pass);
    // wait 10 seconds for connection:
    delay(10000);
  }
  // you’re connected now, so print out the data:
  Serial.print(«You’re connected to the network»);
  printCurrentNet();
  printWifiData();}void loop() {
  // check the network connection once every 10 seconds:
  delay(10000);
  printCurrentNet();}void printWifiData() {
  // print your WiFi shield’s IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print(«IP Address: «);
  Serial.println(ip);
  Serial.println(ip);
  // print your MAC address:
  byte mac6;
  WiFi.macAddress(mac);
  Serial.print(«MAC address: «);
  Serial.print(mac5, HEX);
  Serial.print(«:»);
  Serial.print(mac4, HEX);
  Serial.print(«:»);
  Serial.print(mac3, HEX);
  Serial.print(«:»);
  Serial.print(mac2, HEX);
  Serial.print(«:»);
  Serial.print(mac1, HEX);
  Serial.print(«:»);
  Serial.println(mac, HEX);}void printCurrentNet() {
  // print the SSID of the network you’re attached to:
  Serial.print(«SSID: «);
  Serial.println(WiFi.SSID());
  // print the MAC address of the router you’re attached to:
  byte bssid6;
  WiFi.BSSID(bssid);
  Serial.print(«BSSID: «);
  Serial.print(bssid5, HEX);
  Serial.print(«:»);
  Serial.print(bssid4, HEX);
  Serial.print(«:»);
  Serial.print(bssid3, HEX);
  Serial.print(«:»);
  Serial.print(bssid2, HEX);
  Serial.print(«:»);
  Serial.print(bssid1, HEX);
  Serial.print(«:»);
  Serial.println(bssid, HEX);
  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print(«signal strength (RSSI):»);
  Serial.println(rssi);
  // print the encryption type:
  byte encryption = WiFi.encryptionType();
  Serial.print(«Encryption Type:»);
  Serial.println(encryption, HEX);
  Serial.println();}

See Also:

  • WiFi library – Your reference for the WiFi Library.
  • WiFi Shield – Product details for the retired WiFi Shield.
  • Getting started – Getting started with the retired WiFi Shield.
  • Connect No Encryption — Demonstrates how to connect to an open network.
  • Connect With WEP — Demonstrates how to connect to a network that is encrypted with WEP.
  • Scan Networks — Displays all WiFi networks in range.
  • Simple Web Server WiFi – Turn on and off an LED accessing this simple Web Server.
  • UDP NTP Client — Query a Network Time Protocol (NTP) server using UDP.
  • WiFi Chat Server — Set up a simple chat server.
  • WiFi Web Client — Connect to a remote webserver.
  • WiFi Web Client Repeating — Repeatedly make HTTP calls to a server.
  • WiFi Web Server — Serve a webpage from the WiFi shield with Analog Input values.
  • WiFi Send Receive UDP String — Send and receive a UDP string.

Last revision 2018/08/23 by SM

WiFi library

The firmware for the WiFi shield has changed in Arduino IDE 1.0.5. You are recommended to install this update per these instructions

With the Arduino WiFi Shield, this library allows an Arduino board to connect to the internet. It can serve as either a server accepting incoming connections or a client making outgoing ones. The library supports WEP and WPA2 Personal encryption, but not WPA2 Enterprise. Also note, if the SSID is not broadcast, the shield cannot connect.

Arduino communicates with the WiFi shield using the SPI bus. This is on digital pins 11, 12, and 13 on the Uno and pins 50, 51, and 52 on the Mega. On both boards, pin 10 is used as SS. On the Mega, the hardware SS pin, 53, is not used but it must be kept as an output or the SPI interface won’t work. Digital pin 7 is used as a handshake pin between the Wifi shield and the Arduino, and should not be used.

The WiFi library is very similar to the Ethernet library, and many of the function calls are the same.

For additional information on the WiFi shield, see the Getting Started page and the WiFi shield hardware page.

To use this library

Examples

  • ConnectNoEncryption : Demonstrates how to connect to an open network
  • ConnectWithWEP : Demonstrates how to connect to a network that is encrypted with WEP
  • ConnectWithWPA : Demonstrates how to connect to a network that is encrypted with WPA2 Personal
  • ScanNetworks : Displays all WiFi networks in range
  • WiFiChatServer : Set up a simple chat server
  • WiFiWebClient : Connect to a remote webserver
  • WiFiWebClientRepeating : Make repeated HTTP calls to a webserver
  • WiFiWebServer : Serve a webpage from the WiFi shield
  • WiFiSendReceiveUDPString : Send and receive a UDP string
  • UdpNTPClient : Query a Network Time Protocol (NTP) server using UDP

Last revision 2019/12/24 by SM

WiFi class

The WiFi class initializes the ethernet library and network settings.

  • begin()
  • disconnect()
  • config()
  • setDNS()
  • SSID()
  • BSSID()
  • RSSI()
  • encryptionType()
  • scanNetworks()
  • status()
  • getSocket()
  • macAddress()

The IPAddress class provides information about the network configuration.

  • localIP()
  • subnetMask()
  • gatewayIP()

Server class

The Server class creates servers which can send data to and receive data from connected clients (programs running on other computers or devices).

  • Server
  • WiFiServer()
  • begin()
  • available()
  • write()
  • print()
  • println()

Client class

The client class creates clients that can connect to servers and send and receive data.

  • Client
  • WiFiClient()
  • connected()
  • connect()
  • write()
  • print()
  • println()
  • available()
  • read()
  • flush()
  • stop()

UDP class

The UDP class enables UDP message to be sent and received.

  • WiFiUDP
  • begin()
  • available()
  • beginPacket()
  • endPacket()
  • write()
  • parsePacket()
  • peek()
  • read()
  • flush()
  • stop()
  • remoteIP()
  • remotePort()

Описание ESP8266

ESP8266 — это контроллер, работающий со стандартом беспроводной связи Wifi и способный исполнять код программ из встроенной flash-памяти. Чип был разработан и выпущен китайской компанией Espressif и моментально стал одним из популярнейших для данных целей.

Сам вай фай модуль для Ардуино Wifi достаточно дешев и содержит небольшое количество внешних элементов, имея следующие технические характеристики:

  • Поддержка протоколов стандарта Wifi b/g/n с алгоритмами шифрования и защиты данных WEP, WPA, WPA2;
  • Четырнадцать портов ввода и вывода, последовательного периферийного интерфейса SPI, I2C, UART и 10-битовый аналого-цифровой преобразователь;
  • Поддержка внешней памяти до 16 Мб;
  • Достаточное для питания напряжение от 2.2 до 3.6 Вольт и потребление тока до 300 мА, которое зависит от режима работы.

Важно! Микроконтроллер не обладает пользовательской энергонезависимой памятью. Все программы выполняются из внешних постоянных запоминающих устройств и загружаются динамическим образом

Доступ к внутренним интерфейсам осуществляется через API набор библиотек, а не с помощью документации. Количество оперативной памяти приблизительно равно 50 Кб.

Особенности платы

Контроллер обладает следующими особенностями:

  • Удобство подключения к ПК через интерфейс порта USB. Через него же выполняется и питание;
  • Встроенный преобразователь напряжения на 3.3 Вольта;
  • 4 Мб flash-памяти;
  • Наличие кнопок перезагрузки и перепрошивки;
  • Порты выведены на контроллер в два ряда с шагом в 2.5 мм.

Сферы применения

Модуль часто применяют в различных проектах в связке с другими устройствами для:

  • Автоматизации процессов;
  • Создания систем «Умный дом» своими руками, которые включают управление условиями в доме (температура и свет), сигнализации и видеокамеры, беспроводное управление приборами;
  • Мобильных приборов;
  • Метки с помощью идентификаторов ID;
  • Игрушек для детей;
  • Сети Mesh типа.

NodeMCU на базе esp8266

NodeMCU — одна из наиболее популярных платформ, основанных на чипе ESP. Она чаще всего используется, чтобы управлять схемами на расстоянии с помощью беспроводной связи Wifi. Сама плата стоит недорого, весит мало и имеет порт USB. По бокам от него расположены кнопки для перезагрузки и отладки платформы. Питание лучше всего подавать до 12 В, но не менее 10.

Важно! Наиболее преимущество платы — ее низкое энергопотребление. Именно поэтому NodeMCU часто применяют в схемах на автономном питании от батареи

Более того, NodeMCU имеет набор API для ввода и вывода в аппаратном режиме, что позволяет минимизировать количество действий при настройке и работе.

Работа схемы

Схема устройства представлена на следующем рисунке.

Примечание: чтобы видеть ответы модуля ESP8266 на поступающие команды откройте монитор последовательного порта (Serial Monitor) в программной среде Arduino IDE.

В программе первым делом нам необходимо будет соединить наш Wi-Fi модуль с Wi-Fi роутером чтобы подключить Wi-Fi модуль к сети интернет. Затем мы должны сконфигурировать локальный сервер, передать данные на веб-страницу и закрыть соединение. Для этого нам необходимо выполнить следующую последовательность действий:

1. Сначала нам необходимо произвести тест Wi-Fi модуля при помощи передачи ему AT команды, он должен ответить OK.

2. После этого мы должны выбрать необходимый режим работы с помощью команды AT+CWMODE=mode_id , мы будем использовать Mode id =3. Полный же список доступных режимов выглядит следующим образом:
1 = Station mode (client) (режим станции, клиента)
2 = AP mode (host) (режим базовой станции, хоста)
3 = AP + Station mode (Yes, ESP8266 has a dual mode!) (режим станции + хоста – модуль ESP8266 поддерживает этот двойной режим).

3. Затем мы должны отсоединить наш Wi-Fi модуль от прежней Wi-Fi сети с помощью команды AT+CWQAP поскольку модуль ESP8266 по умолчанию автоматически соединяется с предыдущей использованной сетью Wi-Fi.

4. После этого можно сбросить модуль командой AT+RST – это необязательный шаг.

5. После этого мы должны соединить модуль ESP8266 с Wi-Fi роутером с помощью команды:AT+CWJAP=”wifi_username”,”wifi_password”.

6. После этого мы должны получить IP адрес с помощью команды AT+CIFSR, которая вернет нам IP адрес.

7. После этого нам необходимо задействовать режим мультиплексирования с помощью команды AT+CIPMUX=1 (1 для соединения с мультиплексированием и 0 для одиночного соединения).

8. Теперь сконфигурируем ESP8266 как сервер с помощью команды AT+CIPSERVER=1,port_no (port может быть 80). Теперь наш Wi-Fi готов. В представленной команде ‘1’ используется для создания сервера и ‘0’ для удаления сервера.

9. Теперь с помощью соответствующих команд можно передавать данные на созданный локальный сервер:AT+CIPSEND =id, length of data
Id = ID no. of transmit connection (номер соединения)
Length = Max length of data is 2 kb (максимальная длина данный 2 Кбайта).

10. После передачи ID (номера, идентификатора) и Length (длины данных) на сервер мы можем передавать данные, к примеру: Serial.println(“circuitdigest@gmail.com”);

11. После передачи данных нам необходимо закрыть соединение с помощью команды:AT+CIPCLOSE=0
После этого данные будет переданы на локальный сервер.

12. Теперь вы можете набрать IP адрес в строке адреса вашего браузера и нажать Enter. После этого вы увидите переданные данные на веб-странице.

Все описанные шаги можно более наглядно посмотреть в видео в конце статьи.

Step 1: Build Circuit

Connect the pins more described on attached Pin table

Follow these steps.

  • connect the red wire to VIN(3.3V) to the +3.3V power from the microcontroller.
  • connect the black wire to the ground.
  • connect the green wire to the TX of the Wifi module and microcontroller
  • connect the yellow wite to the RX of the wifi module and microcontroller

About the circuit

ESP8266 is strictly powered only to 3.3 V. More than that will destroy the module.

Connect the VIN to 3.3v to power up and also the ENABLE pin to enable the module.

TX is connected to RX which means whatever we want to Transmit in ESP8266 will Receive by Arduino UNO. And vice versa for RX to TX. Upon building this circuit, we now ready to start WIFI with Arduino UNO.

Подключение через Software Serial

Позволяет подключить модуль к произвольным контактам микроконтроллера. Какие контакты использовать, необходимо указать в панели настроек подключения модуля. Так же в панели настроек указывается скорость передачи данных для порта. Модуль ESP8266 по умолчанию настроен на скорость 115200 бит/сек. Для работы через SoftwareSerial необходимо предварительно настроить скорость передачи данных ESP8266 на более низкую скорость. Стабильная работа модуля возможна на скорости не более 19200 бит/сек. Для изменения скорости работы последовательного интерфейса модуля, необходимо его подключить к консоли для возможности выполнения AT команд. Скорость работы модуля может быть изменена при помощи AT команды «AT+UART_DEF=19200,8,1,0,0».

Есть некоторые ограничения на использование контакта RX для плат Arduino. Ограничения связаны с поддержкой прерываний на соответствующих контактах микроконтроллера.

  • Arduino UNO и Nano для RX нельзя использовать контакт 13(LED);
  • Arduino Mega и Mega2560 для RX можно использовать только следующие контакты: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8(62), A9(63), A10(64), A11(65), A12(66), A13(67), A14(68), A15(69);
  • Arduino Leonardo и Micro для RX можно использовать только следующие контакты: 8, 9, 10, 11, 14, 15, 16;

Так же при использовании SoftwareSerial вы должны принять следующие ограничения:

  • Нет возможности работы на больших скоростях передачи данных. Не рекомендуем использовать скорость соединения более 19200 бит/сек.
  • Некоторые библиотеки, которые так же используют прерывания, могут работать не корректно, или же их использование может сделать неработоспособным данный способ подключения. Например библиотека Servo будет подергивать сервоприводы.

Пример подключения модуля ESP8266 для SoftwareSerial к контактам 2(RX) и 3(TX) на рисунке

Обратите внимание, что необходимо контакты подключить перекрестием, т.е. контакт Arduino 2(RX) к контакту TX модуля, и контакт 3(TX) к контакту RX модуля

Шаг 2. Суть проекта

Есть много способов использовать ESP866 для коммуникаций. Некоторые могут использовать его для отправки/получения данных онлайн или регулярной загрузки данных. В этом уроке мы покажем, как мы можем общаться с Arduino по беспроводной связи, используя ваш телефон (Android или iPhone). Всё будет сделано в автономном режиме, поэтому не нужно иметь подключение к интернету.

ESP8266 будет служить точкой доступа (режим AP), то есть он будет предоставлять доступ к сети Wi-Fi другим устройствам (станциям) и далее подключать их к проводной сети. Процесс этот довольно прост.

Распиновка ESP

Используйте свой телефон, чтобы отправить любую команду в Arduino, а с помощью ESP8266 все будет работать без проводов.

Распиновка платы

Контакты под номерами от 0 до 13 требуют соединения только с цифровым сигналом, то есть они понимают только два состояния: высокий и низкий уровни сигнала. Также они работают с сигналами ШИМ и на вход, и на выход.

Цифровые пины платы Uno

Пин на плате Адрес в скетче Специальное использование ШИМ
пин 0 RX
пин 1 1 TX
пин 2 2 Вход прерываний
пин 3 3 Вход прерываний ШИМ
пин 4 4
пин 5 5 ШИМ
пин 6 6 ШИМ
пин 7 7
пин 8 8
пин 9 9 ШИМ
пин 10 10 SPI (SS) ШИМ
пин 11 11 SPI (MOSI) ШИМ
пин 12 12 SPI (MISO)
пин 13 13 SPI (SCK)

На выходе подключен встроенный светодиод

Аналоговые пины Arduino Uno

Аналоговые контакты Arduino Uno служат для подключения устройств с непрерывным сигналом. Они являются входами АЦП. В «Ардуино Уно» он имеет 10 разрядов.

Контакт Адрес в скетче Особое значение
Аналоговый A0 A0 или 14
Аналоговый A1 A1 или 15
Аналоговый A2 A2 или 16
Аналоговый A3 A3 или 17
Аналоговый A4 A4 или 18 I2C (SCA)
Аналоговый A5 A5 или 19 I2C (SCL)

На плате имеются дополнительные контакты:

  1. AREF — источник опорного напряжения для АЦП, управляемый функцией analogReference().
  2. RESET, низкий сигнал на котором перезагружает устройство.

Если не подключается…

Вы можете проверить наличие связи между Arduino и ESP8266 используя Serial Monitor, который можно открыть во вкладке Tools в Arduino IDE.

Откройте Serial Monitor и установите скорость 115200. Нажмите кнопку сброса на плате Arduino.

Проверьте наличие правильно загруженной программы

Если после сброса Arduino в Serial Monitor нет никаких сообщений, это скорее всего означает, что Arduino не выполнят вашу программу. Возможно:

  • нужный скетч не был загружен;
  • ваша Arduino не включена;
  • Serial Monitor не подключился к Arduino;
  • с вашей Arduino что то не так.

Проверьте связь между Arduino и ESP8266

Если после сброса Arduino в Serial Monitor вы видите следующую последовательность команд, это означает, что инициализация ESP8266 проходит успешно и связь между Arduino и ESP8266 есть:

Если вы видите только повторяющиеся команды «AT», это означает что нет связи между Arduino и ESP8266.

Связь может отсутствовать по разным причинам. Ниже перечислены основные:

  • контакты RX и TX подключены не верно, перепутаны контакты, или подключены не к тем контактам, или не подключены совсем;
  • нет питания на ESP8266, при подаче питания на ESP8266 должен светиться красный светодиод;
  • не хватает мощности источника питания 3.3 В для ESP8266;
  • модуль ESP8266 неисправен.

Проверьте прошивку ESP8266

Если после сброса Arduino в Serial Monitor вы видите только начало последовательности команд, но нет завершающей команды AT+CIPSERVER=1,6377 это означает, что модуль ESP8266 имеет устаревшую прошивку. Требуется обновление прошивки.

Если инициализация проходит успешно и вы видите последнюю команду AT+CIPSERVER=1,6377, но при попытке подключения с мобильного приложения возникает ошибка, возможно, что модуль ESP8266 имеет устаревшую прошивку.

Проверьте объем памяти вашего ESP8266. Это можно сделать так же посмотрев маркировку чипа памяти, который находится на плате рядом с чипом ESP8266. Если размер памяти составляет 4 Mbit и меньше (установлен чип 25Q40), скорее всего этот модуль не будет работать как точка доступа для RemoteXY.

Проверьте питание ESP8266

Так же возможно, что вашей ESP8266 не хватает мощности источника питания. Некоторые платы Arduino имеют слабый стабилизатор напряжения 3.3 В, который не способен выдавать 200-300 мА в пиковых режимах. В этом случае в Serial Monitor вы так же увидите обрыв последовательности команд.

Проверьте особенности вашего смартфона

Некоторые модели смартфонов на Android имеют особенности подключения точек доступа WiFi, и возможно точка доступа не включается автоматически. Попробуйте подключиться к точке доступа предварительно в ручную, используя системные настройки. После этого попробуйте соединиться с устройством из приложения RemoteXY. Если в этом случае соединение устанавливается, значит ваш смартфон имеет такую особенность. Сообщите нам об этом.

Комплектующие

Мы собираемся связать ЖК-дисплей Nokia 5110 и Arduino. Вы изучите интерфейс Nokia 5110 Arduino с помощью двух примеров.

Во-первых, мы просто покажем некоторые данные на экране, а во втором примере мы будем читать с датчика температуры и влажности DHT22 показатели и покажем их на ЖК-экране Nokia 5110.

Nokia 5110 LCD — отличный выбор для отображения данных. Это дешевле обычных ЖК и его очень легко использовать с микроконтроллерами. Вам просто нужно подключить несколько проводов и всё готово к работе.

Для подключения Nokia 5110 к Ардуино нам нужны будут сам экран с микроконтроллером и еще ряд деталей.

  • Arduino UNO × 1
  • Nokia 5110 LCD × 1
  • Многооборотный прецизионный потенциометр — 1 кОм (25 витков) × 1
  • Резистор 10 кОм × 4
  • Резистор 1 кОм × 1
  • Резистор 330 Ом × 1
  • Перемычки × 1
  • Макет (универсальный) × 1

Дополнительно нам понадобится программное обеспечение в виде Arduino IDE, с которым вы скорее всего знакомы.

Описание модуля с его особенностями

Ардуино WiFi модуль обладает развитым интерфейсом:

  • 14 входами/выходами, 6 из которых могут работать на выход в режиме ШИМ;
  • 6 входами аналогового сигнала;
  • USB;
  • разъемом питания;
  • коннекторами для ICSP;
  • кнопкой сброса установок.

Присутствие на плате модуля Wi-Fi ESP8266 позволяет Arduino поддерживать обмен информацией по беспроводным сетям 802.11 b/g/n.

Микросхема ESP8266

Для создания беспроводной сети в пределах помещения наиболее часто используется чип ESP8266. С его помощью организуется связь по Wi-Fi, осуществляются сбор информации, дистанционное управление и выход в интернет. Платы Arduino Uno, WeMos, NodeMcu используют ESP8266. Множество самодельных проектов основано на этом чипе с использованием среды Arduino IDE.

Распиновка

Важно понять, что вариаций модуля существует немало. На рисунке в конце предыдущего подраздела представлены лишь некоторые из них

Особую популярность обрел контроллер ESP-01. Исполнение кода программы задается состоянием портов GPIO0, GPIO2 и GPIO15: включением и выключением подачи питания на них. Существует два важных режима работы:

  • Код выполняется из универсального асинхронного приёмопередатчика (UART) с комбинацией GPIO0 = 0, GPIO2 = 1 и GPIO15 = 0. Эти действия выполняются для перепрошивки flash-накопителя;
  • Код выполняется из внешнего ПЗУ с комбинацией GPIO0 = 1, GPIO2 = 1 и GPIO15 = 0 для работы в штатном режиме.

Приводится официальное описание всех контактов:

  • 1 — заземление, а 8 — питание платы. Напряжение необходимо подавать до 3.6 В в отличие от Ардуино, в который подают 5В;
  • 6 — кнопка Reset, необходимая для перезагрузки чипа;
  • 4 — CP_PD — переводит чип в режим энергосбережения;
  • 7 или 0 — RXD0 и TXD0 аппаратные пины для универсального асинхронного приёмопередатчика, необходимые для перепрошивки;
  • 2 — TDX0, к которому подключают светодиод, срабатывающий в случае передачи данных по УАПП или при подключении на низком логическом уровне;
  • 5 — GPI0, позволяющий осуществлять вход и вывод, а также переводить контроллер в режим программирования;
  • 3 — GPIO2 — стандартный порт ввода/вывода.

Основные отличия Ардуино от ESP8266

От не менее популярного Arduino Wifi модуль ESP отличается следующими чертами:

  • Наличием большего объема flash-памяти и отсутствием энергонезависимой памяти;
  • Более быстрым процессором;
  • Наличием Wifi модуля;
  • Потреблением большей силы тока, чем Ардуино

Шаг 4. Настройка соединения

После того, как все настроено, вы заметите, что ваш ESP8266 Wifi будет доступен в радиусе действия вашего телефона.

1. Скачать TCP Client для Android

Вы можете скачать любой TCP-клиент, доступный в Play Store, но я использовал TCP-клиент от Sollae Systems

2. Со своего телефона подключитесь к вашему ESP8266 Wifi

Если ваш Wi-Fi ESP8266 не отображается в доступных сетях Wi-Fi, убедитесь, что ваш Arduino работает и все подключено правильно. Если нет, устраните неполадки вашего ESP, следуя документации модуля.

Обычно имя wifi / ssid начинается в ESP после его названия версии, у меня ESP11.

3. После подключения получите статический IP-адрес.

Важно! Вы можете проверить IP-адрес ESP, зайдя в настройки Wi-Fi своего телефона и щелкнув информацию о сети.

IP-адрес по умолчанию в режиме AP — 192.168.4.1.

Вы можете изменить статический IP-адрес, следуя этой Wifi.config() ссылке.

4. Откройте TCP Client, который вы загрузили ранее.

Создайте соединение, нажав кнопку «Подключить», добавьте IP-адрес ESP и порт 80 следующим образом:

80 — это порт, который я использовал для нашего сервера ESP, но вы можете изменить его, заменив 80 на любой номер порта из нашего кода в строке 23.

5. Подождите, пока на консоли TCP появится сообщение «Подключено».

Send and Receive UDP String

This sketch waits for a UDP packet on a local port. When a valid packet is received, an acknowledge packet is sent back to the client on a specified outgoing port.

Circuit

The WiFi shield uses pins 10, 11, 12, and 13 for the SPI connection to the HDG104 module. Digital pin 4 is used to control the slave select pin on the SD card.

You should have access to a 802.11b/g wireless network that connects to the internet for this example. You will need to change the network settings in the sketch to correspond to your particular networks SSID.

In the above image, the Arduino or Genuino board would be stacked below the WiFi shield.

Code

/*
  WiFi UDP Send and Receive String
 This sketch wait an UDP packet on localPort using a WiFi shield.
 When a packet is received an Acknowledge packet is sent to the client on port remotePort
 Circuit:
 * WiFi shield attached
 created 30 December 2012
 by dlf (Metodo2 srl)
 */#include <SPI.h>#include <WiFi.h>#include <WiFiUdp.h>int status = WL_IDLE_STATUS;char ssid = «yourNetwork»; //  your network SSID (name)char pass = «secretPassword»;    // your network password (use for WPA, or use as key for WEP)int keyIndex = ;            // your network key Index number (needed only for WEP)unsigned int localPort = 2390;      // local port to listen onchar packetBuffer255; //buffer to hold incoming packetchar  ReplyBuffer = «acknowledged»;       // a string to send back
WiFiUDP Udp;void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println(«WiFi shield not present»);
    // don’t continue:
    while (true);
  }
  String fv = WiFi.firmwareVersion();
  if (fv != «1.1.0») {
    Serial.println(«Please upgrade the firmware»);
  }
  // attempt to connect to Wifi network:
  while (status != WL_CONNECTED) {
    Serial.print(«Attempting to connect to SSID: «);
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid);
    // wait 10 seconds for connection:
    delay(10000);
  }
  Serial.println(«Connected to wifi»);
  printWifiStatus();
  Serial.println(«\nStarting connection to server…»);
  // if you get a connection, report back via serial:
  Udp.begin(localPort);}void loop() {
  // if there’s data available, read a packet
  int packetSize = Udp.parsePacket();
  if (packetSize) {
    Serial.print(«Received packet of size «);
    Serial.println(packetSize);
    Serial.print(«From «);
    IPAddress remoteIp = Udp.remoteIP();
    Serial.print(remoteIp);
    Serial.print(«, port «);
    Serial.println(Udp.remotePort());
    // read the packet into packetBufffer
    int len = Udp.read(packetBuffer, 255);
    if (len > ) {
      packetBufferlen = ;
    }
    Serial.println(«Contents:»);
    Serial.println(packetBuffer);
    // send a reply, to the IP address and port that sent us the packet we received
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(ReplyBuffer);
    Udp.endPacket();
  }}void printWifiStatus() {
  // print the SSID of the network you’re attached to:
  Serial.print(«SSID: «);
  Serial.println(WiFi.SSID());
  // print your WiFi shield’s IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print(«IP Address: «);
  Serial.println(ip);
  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print(«signal strength (RSSI):»);
  Serial.print(rssi);
  Serial.println(» dBm»);}

See Also:

  • WiFi library – Your reference for the WiFi Library.
  • WiFi Shield – Product details for the retired WiFi Shield.
  • Getting started – Getting started with the retired WiFi Shield.
  • Connect No Encryption — Demonstrates how to connect to an open network.
  • Connect With WEP — Demonstrates how to connect to a network that is encrypted with WEP.
  • Connect With WPA — Demonstrates how to connect to a network that is encrypted with WPA2 Personal.
  • Scan Networks — Displays all WiFi networks in range.
  • Simple Web Server WiFi – Turn on and off an LED accessing this simple Web Server.
  • UDP NTP Client — Query a Network Time Protocol (NTP) server using UDP.
  • WiFi Chat Server — Set up a simple chat server.
  • WiFi Web Client — Connect to a remote webserver.
  • WiFi Web Client Repeating — Repeatedly make HTTP calls to a server.
  • WiFi Web Server — Serve a webpage from the WiFi shield with Analog Input values.

Last revision 2018/08/23 by SM

Как подключить Wi-Fi модуль

Давайте же рассмотрим подключение esp8266 esp 12e и что такое esp8266 мост wi-fi uart. Ведь именно подключение и настройка модуля вызывают больше всего вопросов.

Распиновка esp8266 esp 12e

В первую очередь определитесь, какая версия микроконтроллера у вас на руках. В первой встраиваются светодиоды около пинов, а на второй, которую стали выпускать совсем недавно, сигнальные огни находятся около антенны.

Перед подключением стоит подгрузить последнюю прошивку, позволяющую увеличивать скорость обмена пакетами до 9600 единиц информации в секунду. А проверять соединение мы будем через кабель usb-ttl и соответствующий терминал от CoolTerm.

Схема подключения ESP8266 к Arduino Nano

Пины для подключения вышеописанного кабеля стандартные, а вот питание идёт через 3.3 вольтовый пин с Ардуино

Важно помнить, что максимальную силу тока, которую подаёт плата, невозможно поставить выше 150 мА, а esp8266 esp 07 и esp8266 witty cloud wi-fi модуль для arduino требуют 240 Ма

Однако, если другого источника тока нет, можете использовать и стандартный вариант от Ардуино, но мощность платы пострадает. Хотя, при не сильной загрузке, достаточно и 70 мА, будьте готовы к внезапным перезагрузкам микроконтроллера в пиковые моменты нагрузки и пишите софт соответственно, чтобы он фильтровал и разбивал файлы, не перегружая плату.

Вариант подключения модуля ESP и Ардуино Uno

Еще один вариант подключения ниже

Важно — контакты RX-TX соединяются перекрестием. Так как уровни сигналов модуля ESP8266 3.3В, а Arduino 5В, нам нужно использовать резистивный делитель напряжения для преобразования уровня сигнала

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector