Gestión de carga en NodeMCU mediante una aplicación móvil. Trabajar con ESP8266: configuración inicial, actualización de firmware, comunicación Wi-Fi, envío/recepción de datos a PC MIMO y OFDMA multiusuario

Las funciones de la biblioteca WiFi ESP8266 son muy similares a las funciones de biblioteca para un escudo WiFi normal.

Lista de diferencias:

  • Wifi. módem): Seleccionar modo WIFI_AP(punto de acceso), WIFI_STA(cliente), o WIFI_AP_STA(ambos modos al mismo tiempo).
  • Wifi. softAP (ssid) crea un punto de acceso abierto
  • Wifi. softAP (ssid, contraseña) crea un punto de acceso con cifrado WPA2-PSK, la contraseña debe tener al menos 8 caracteres
  • Wifi. dirección mac (mac) le permite obtener la dirección MAC en modo cliente
  • Wifi. softAPmacAddress (mac) le permite obtener la dirección MAC en el modo de punto de acceso
  • Wifi. IP local() le permite obtener una dirección IP en modo cliente
  • Wifi. SoftAPIP() le permite obtener una dirección IP en el modo de punto de acceso
  • Wifi. RSSI() aun no implementado
  • Wifi. imprimirDiag(Serie) ; muestra información de diagnóstico
  • Clase Wi-FiUDP admite la recepción y transmisión de paquetes de multidifusión en modo cliente. Para enviar un paquete de multidifusión, utilice en su lugar upp. beginPacket (dirección, puerto) función upp. beginPacketMulticast(dirección , puerto , WiFi .localIP() ). Cuando espere paquetes de multidifusión, use en su lugar upp. comenzar (puerto) función upp. beginMulticast (WiFi. localIP (), multicast_ip_addr, puerto). puedes usar upp. IP de destino() para determinar si el paquete se envió a una dirección de multidifusión o si estaba destinado a usted. Las funciones de multidifusión no son compatibles con el modo AP.

WiFiServidor, WiFiCliente, y Wi-FiUDP Trabajo de la misma manera que con la biblioteca de un escudo WiFi normal. En esta biblioteca se incluyen cuatro ejemplos.

Corazón

La biblioteca Ticker se puede usar para ejecutar eventos recurrentes después de una cierta cantidad de tiempo. Dos ejemplos están incluidos en la entrega.

Actualmente no se recomienda bloquear las operaciones de E/S (operaciones de red, puerto serie, archivos) en las funciones de devolución de llamada de ticker. En lugar de bloquear, establezca una bandera en las funciones de devolución de llamada y verifique esta bandera en el bucle principal.

EEPROM

Esta biblioteca es ligeramente diferente de la EEPROM estándar de Arduino. Necesidad de llamar a una función EEPROM. comenzar (tamaño) cada vez antes de comenzar a leer o escribir, el tamaño (especificado en bytes) corresponde al tamaño de los datos que pretende utilizar en la EEPROM. El tamaño de los datos debe estar entre 4 y 4096 bytes.

Función EEPROM. escribe no escribe datos en la memoria flash inmediatamente, debe usar la función EEPROM. comprometerse() cada vez que desee guardar datos en la memoria. Función EEPROM. final() también escribe datos y también libera RAM de los datos que se han registrado. La biblioteca EEPROM usa un sector en la memoria flash, comenzando en la dirección 0x7b000, para almacenar datos. La entrega incluye tres ejemplos de trabajo con EEPROM.

I2C (biblioteca de cables)

Solo se implementa el modo maestro, la frecuencia es de aproximadamente hasta 450 kHz. Antes de usar el bus I2C, debe seleccionar los pines SDA y SCL llamando a la función cable. pines (int sda, int scl), por ejemplo cable. pines (0 , 2 ) para el módulo ESP-01. Para otros módulos, los pines predeterminados son 4 (SDA) y 5 (SCL).

SPI

La biblioteca SPI es compatible con toda la API Arduino SPI, incluidas las transacciones, incluida la fase de reloj (CPHA). La polaridad del reloj (CPOL) aún no es compatible (SPI_MODE2 y SPI_MODE3 no funcionan).

API ESP8266

La compatibilidad con funciones específicas de ESP8266 (modo de suspensión profunda y temporizador de vigilancia) se implementa en el objeto ESP. Función ESP. deepSleep (microsegundos, modo) pone el módulo en modo de suspensión profunda. Parámetro modo puede tomar valores: WAKE_DEFAULT, WAKE_RFCAL, WAKE_NO_RFCAL, WAKE_RF_DISABLED. GPIO16 debe estar conectado a RESET para salir del modo de suspensión profunda.

Funciones ESP. wdtEnable(), ESP. wdtDesactivar(), y ESP. wdtalimentar() controlar el temporizador de vigilancia.

ESP. Reiniciar() recarga el modulo

ESP. getFreeHeap()

ESP. getFreeHeap() devuelve la cantidad de memoria libre

ESP. obtenerIdChip() devuelve ESP8266 chip IDE, int 32bit

ESP. obtenerFlashChipId() devuelve ID de chip flash, int 32 bits

ESP. obtenerTamañoFlashChip() devuelve el tamaño de la memoria flash en bytes, tal como lo define el SDK (puede ser menor que el tamaño real).

ESP. getFlashChipSpeed(vacío) devuelve la frecuencia de la memoria flash, en Hz.

ESP. obtenerCuentaCiclos() devuelve el número de ciclos de CPU desde el inicio, 32 bits sin firmar. Puede ser útil para la sincronización precisa de operaciones muy cortas.

Biblioteca OneWire

La biblioteca OneWire se ha adaptado para el ESP8266 (se han realizado cambios en OneWire.h) Si tiene la biblioteca OneWire instalada en la carpeta Arduino/libraries, se utilizará y no del kit de entrega.

biblioteca mDNS ESP8266mDNS

La librería te permite implementar en tu programa una respuesta a consultas DNS multicast para la zona local, por ejemplo, “esp8266.local”. Actualmente solo se admite una zona. Le permite acceder al servidor WEB ESP8266 por nombre, y no solo por dirección IP. Puede encontrar más información en el ejemplo adjunto y en el archivo Léame de esta biblioteca.

Biblioteca de servos

La biblioteca le permite controlar servomotores. Admite hasta 24 servos en cualquier GPIO disponible. Por defecto, los primeros 12 servos usarán Timer0 y serán independientes de cualquier otro proceso. Los siguientes 12 servos usarán el Timer1 y compartirán recursos con otras funciones usando el Timer1. La mayoría de los servos funcionarán con una señal de control ESP8266 3.3v, pero no funcionarán con 3.3v y requerirán una fuente de alimentación separada. No olvides conectar el GND de esta fuente al GND del ESP8266

  • DHT11: use los siguientes parámetros para la inicialización DHT dht (DHTPIN, DHTTYPE, 15)
  • NeoPixelBus - Biblioteca Arduino NeoPixel para esp8266
  • Biblioteca PubSubClient MQTT de @Imroy. Artículo en nuestra web sobre esta biblioteca
  • Comfast CF-WU715N es el adaptador de red WiFi inalámbrico más barato que pude encontrar en los espacios abiertos de las tiendas en línea. Entonces, en la revisión de hoy, habrá un producto interesante que será muy popular entre aquellos a quienes les gusta ahorrar dinero. Veamos sus características, aprendamos cómo instalar controladores y configurar el receptor WiFi Comfast WU715N.

    También tiene un "hermano" más poderoso: Comfast CF-WU720N. Tiene casi los mismos parámetros, pero debido a un hardware más productivo, la carcasa es mucho más grande.

    Quiero hacer una reserva de inmediato de que Comfast WU715N no es el adaptador más económico; incluso hay otros más baratos, pero su calidad no satisfará ni siquiera al usuario más inexperto. Por lo tanto, trabajé un poco para encontrar un producto realmente adecuado que fuera económico, pero al mismo tiempo de alta calidad. Y encontré un modelo de un fabricante de equipos de red Comfast poco conocido en Rusia pero muy popular en China.


    Aspecto del adaptador de red Comfast CF-WU715N

    Externamente, el adaptador tiene un tamaño muy pequeño, no más de una moneda de dos rublos. Gracias a esto, al estar conectado a un portátil u ordenador a través de un puerto USB, no interfiere en absoluto y no llama la atención.

    Como hice un pedido en la tienda en línea en el paquete más económico, solo incluía el dispositivo y el disco de instalación, que contiene el programa de instalación y los controladores para el adaptador; de hecho, no se necesita nada más para que funcione.


    Si lo lleva en una caja de marca, se verá así:

    Los controladores del adaptador son adecuados para Windows 7 y 8, por lo que cualquier computadora moderna podrá trabajar con él.

    Especificaciones

    Este es el modelo más económico de la línea de este fabricante, por lo que sería ingenuo esperar algo sobrenatural de él. Pero especificaciones te permite trabajar de forma estable y sin problemas con una conexión inalámbrica dentro de un apartamento pequeño.

    • Conjunto de chips - Ralink RT5370
    • Antena - 2 decibelios
    • Interfaz - USB 2.0
    • Estándar Wi-Fi - B, G, N
    • Velocidad - hasta 150 Mbps
    • Cifrado - WEP, WPA, WPA2

    De las capacidades de este adaptador, cabe señalar que puede funcionar no solo en el rol estándar de un cliente, recibiendo una señal a través de WiFi a una computadora, sino también como un punto de acceso, recibiendo y distribuyendo simultáneamente una señal inalámbrica. También hay una función WiFi Direct incorporada. Esto es cuando los dispositivos se conectan entre sí a través de wifi sin usar un enrutador. Al comprar dos de estos adaptadores e instalarlos en diferentes PC, puede establecer comunicación entre ellos sin configurar un tradicional red local.

    Es decir, tres en uno a la vez, ¡no está mal para un modelo económico!

    Instalación y configuración del controlador Comfast CF-WU715N

    Ahora veamos cómo está configurado este pequeño. Adaptador inalambrico.
    Lo insertamos en el puerto USB, y el disco suministrado con los drivers para el adaptador y el programa de configuración en CD-Rom. Es mejor no perder el disco, ya que será problemático descargar el controlador para el adaptador de red: la versión rusa, así como cualquier otra, excepto en chino e inglés, no se encuentra en el sitio web oficial del fabricante. A través de una larga búsqueda utilizando el método de "empuje científico", todavía pude encontrar la página del modelo Comfast CF-WU715N, pero no encontré ningún software en la sección de descargas.


    Por lo tanto, si tiene miedo de perder el CD de instalación, le recomiendo que copie todos los archivos a disco duro computadora o unidad flash.

    Habiendo abierto su contenido, veremos carpetas, cuyo nombre indica que hay todo el software necesario para trabajar tanto en Windows 7/8 como en Linux y MacOS.

    Necesitamos ejecutar el archivo 3070setup.exe. Primero, estamos de acuerdo con el acuerdo de licencia, luego de lo cual seleccionamos el tipo de instalación, solo controladores Comfast o junto con una aplicación propietaria, la traducción al chino es un poco coja, pero la esencia del contenido es clara.

    Si no planea usar su adaptador inalámbrico para conexiones WiFi Direct, entonces no puede instalar el programa de configuración en sí, ya que todas las conexiones a la red se realizan medios estándar Ventanas.


    Después de la instalación, aparecerá un icono inalámbrico característico en la barra de iconos inferior de Windows. Puede hacer clic en él y seleccionar su WiFi de la lista de redes disponibles.

    Pero iremos por el otro lado y veremos qué nos ofrece el Ralink Wireless Utility instalado que estaba en el disco.

    El programa es muy simple y le permite administrar la funcionalidad principal del adaptador de red. Al hacer clic en el ícono "Lupa", veremos la misma lista de redes inalámbricas, pero con una descripción detallada de sus propiedades: calidad de la señal, tipo de encriptación, dirección MAC del punto de acceso, etc.

    Seleccionamos la WiFi que necesitamos y nos conectamos a ella paso a paso. Después de eso, toda la información sobre la conexión actual se mostrará en la ventana principal del programa.

    Si desea conectarse directamente a otra computadora que también tenga un adaptador inalámbrico compatible con WiFi Direct, haga clic en el icono de WiFi en la aplicación y abra una nueva ventana

    Para habilitar, haga doble clic en la zona de esta ventana y configure el nombre de nuestra computadora para ser detectado

    Después de eso, hacemos lo mismo en otras PC, después de lo cual todas las computadoras ubicadas en la zona de acceso para la conexión se mostrarán en la ventana principal. Desafortunadamente, debido a la falta de un segundo adaptador que funcione con esta tecnología, todavía no tengo la oportunidad de mostrar en detalle cómo sucede esto, ¡así que estad atentos para un nuevo artículo separado!

    Adaptador Comfast como punto de acceso

    Ahora veamos la tercera posibilidad del adaptador de red Comfast: funcionar como un punto de acceso (Access Point), es decir, distribuir Internet a través de WiFi a otros dispositivos.

    Para activar este modo, encontramos la "flecha" en la esquina inferior derecha del panel de iconos y en la ventana que se abre, el icono del programa Ralink Utility en forma de letra "R".

    Hacemos clic en él con el botón derecho del mouse y vemos varios elementos. Actualmente estamos interesados ​​​​en el segundo y el tercero: "Cambiar al modo STA + AP" y "Cambiar al modo de punto de acceso".

    • STA + AP es un modo en el que el adaptador recibirá simultáneamente Internet a través de wifi desde el enrutador e inmediatamente lo distribuirá a otros.
    • AP es un modo de punto de acceso simple en el que su computadora debe estar conectada a Internet a través de un cable u otro medio inalámbrico. adaptador de red- directamente o a través de un enrutador, no importa - y Comfast solo distribuirá una señal, pero no la recibirá.

    Elegiremos el modo AP, porque en la práctica, cuando no tenga un enrutador y necesite conectarse a Internet desde una computadora conectada al proveedor, tendrá más demanda.

    Se abrirá una nueva ventana en la que debemos seleccionar de la lista el adaptador de red o tarjeta que actualmente ya está conectado a Internet y desde el cual se distribuirá a través de nuestro Comfast.

    Después de eso, nuestro punto funcionará y el ícono de la aplicación en el panel cambiará a la letra "A". Al abrir esta utilidad nuevamente, ya puede configurar los ajustes del punto de acceso.

    Para ello, haga clic en el primer icono del menú y configure el SSID, la frecuencia, el canal, el tipo de cifrado y la contraseña.

    Después de eso, la nueva red aparecerá en la lista de conexión.

    prueba de velocidad

    Todo esto es genial, pero ¿qué pasa con el resultado del trabajo? Después de todo, compramos un adaptador de red principalmente para un trabajo estable en Internet. Por ello, realizamos mediciones de velocidad a través del servicio SpeedTest.net. Primero, como punto de referencia, la velocidad de la PC conectada al enrutador por cable.

    Después de eso, a través del adaptador Comfast

    Como resultado, tenemos 27 MB / s para descargar a través de un adaptador inalámbrico frente a 39 MB / s para cable y una tasa de descarga ligeramente inferior: 24 frente a 41. Muy buen rendimiento para un dispositivo de este tipo, lo que nos garantiza lo suficiente. alta velocidad al navegar por Internet a través de una conexión WiFi.

    Y casi los mismos resultados del adaptador cuando funciona como punto de acceso: le conectamos el iPad Air y medimos el rendimiento a través de la aplicación desde el mismo SpeedTest.

    Por último, la última lectura en el modo de funcionamiento simultáneo como cliente y punto, cuando el adaptador recibía señal vía WiFi y la distribuía más tiempo en el iPad.

    Como podéis ver, la velocidad bajó un poco más, lo que no es de extrañar, ya que ahora nuestro dispositivo hacía doble trabajo y la presencia de otro eslabón en la cadena desde el proveedor hasta el usuario final, como siempre, no afectaba al resultado. de la mejor manera.

    ¿Dónde comprar este adaptador de red, preguntas? Lo pedí en mi tienda online china favorita AliExpress y me costó unos 5 dólares, que eran unos 170 rublos con nuestro dinero en el momento de la compra. Ahora, debido al dólar, se ha vuelto un poco más caro, pero ¿dónde más puedes encontrar algo que valga la pena por esa cantidad de dinero?

    Si tienes alguna duda, te responderé en los comentarios..

    Si el artículo ayudó, entonces, en agradecimiento, le pido que haga 3 cosas simples:
    1. Suscríbete a nuestro Canal de Youtube
    2. Envía un enlace a la publicación a tu muro en una red social usando el botón de arriba

    El cual refleja los cambios más importantes de la nueva edición del estándar respecto al actual 802.11ac.

    Tenga en cuenta que 802.11ax funcionará en las bandas de frecuencia de 2,4 y 5 GHz (anteriormente, 802.11ac intentó abandonar la banda de 2,4 GHz). Además, la nueva especificación cuadruplicará el número de subportadoras FFT OFDM. Pero el cambio más importante es que con el lanzamiento de 802.11ax, el espacio entre subportadoras también se reducirá en un factor de cuatro, mientras que los anchos de banda de los canales existentes se mantendrán sin cambios:

    Figura 1: Espaciado entre subportadoras en 802.11ax

    Así, en la figura anterior, vemos intervalos más estrechos entre subportadoras. Además de los cambios en OFDM, también se agrega la modulación 1024-QAM, que aumentará la tasa de transferencia de datos máxima (máxima teórica posible) a casi 10 Gbps.

    Pasemos a la consideración de las tecnologías 802.11ax a nivel físico

    En 802.11ax, el mecanismo de formación de haces (formación automática de haces hacia el suscriptor) se finalizará en comparación con la versión anterior de 802.11ac. De acuerdo con este mecanismo, el formador de haces inicia un procedimiento de sondeo de canal con el paquete de datos nulos. Al hacerlo, mide el nivel de actividad en el canal y utiliza esta información para calcular la matriz del canal. Luego, la matriz de canales se usa para enfocar la energía de RF hacia cada usuario individual. Junto con la formación de haces, el estándar 802.11ax admitirá dos nuevas tecnologías multiusuario para Wi-Fi: MIMO multiusuario y OFDMA multiusuario.

    MIMO multiusuario y OFDMA

    El estándar 802.11ax definirá dos modos de funcionamiento:

    Usuario único (un usuario). En este modo, las STA inalámbricas envían y reciben datos a los AP uno a la vez tan pronto como acceden al medio. El mecanismo de acceso se ha descrito en .

    Multiusuario (modo multiusuario). Este modo permite que el punto de acceso funcione con múltiples STA al mismo tiempo. El estándar divide aún más este modo en enlace descendente y enlace ascendente multiusuario.

    enlace descendenteMETROulti-tuser permite el punto de acceso AP simultaneamente transmitir datos a varias STA inalámbricas que reciben servicio en el área de cobertura de radio del AP. El estándar 802.11ac existente ya define esta función. Pero el Uplink multijugador es una innovación.

    enlace ascendenteMETROulti-tuser permite el punto de acceso AP simultaneamente recibir datos de varias STA inalámbricas. Esta es una nueva característica del estándar 802.11ax que no existía en ninguna de las versiones anteriores del estándar Wi-Fi.

    En el modo de operación multiusuario, el estándar también define dos diferentes caminos multiplexación de más usuarios en un área determinada: MIMO multiusuario y OFDMA. Para ambos métodos, el AP actúa como un controlador central, similar a cómo una estación base celular LTE administra la multiplexación de usuarios en un área de servicio. Veamos MU-MIMO y OFDMA con más detalle.

    MIMO multiusuario

    Los dispositivos 802.11ax utilizarán técnicas de formación de haces (tomadas de 802.11ac) para enrutar paquetes a múltiples usuarios espacialmente separados al mismo tiempo. Es decir, el AP calculará una matriz de canales por usuario y administrará haces paralelos para diferentes usuarios, con cada haz conteniendo paquetes para su usuario particular.

    802.11ax admite el envío de hasta ocho transmisiones MIMO multiusuario al mismo tiempo. Además, cada flujo MU-MIMO puede tener su propio MCS (tasa de bits y grado de modulación). Se puede organizar un número arbitrario de flujos para diferentes usuarios. Con la multiplexación espacial MU-MIMO, los puntos de acceso se pueden comparar con un conmutador Ethernet con varios puertos. Cada puerto individual es un flujo MU-MIMO separado. Al mismo tiempo, se pueden "reenviar" varios flujos a cada suscriptor individual:


    Figura 2: formación de haces MU-MIMO para servir a múltiples usuarios dispersos

    Una nueva característica en 802.11ax es MU-MIMO Uplink. Como se mencionó anteriormente, el AP puede iniciar la recepción simultánea de paquetes de cada una de las STA a través de una trama de activación. Cuando varias STA transmiten sus propios paquetes en respuesta a una trama de activación, el AP aplica una matriz de canales a los haces recibidos y separa la información contenida en cada haz. Entonces, el AP también puede iniciar la recepción multiusuario simultáneamente desde todas las STA de suscriptores en la red:


    Figura 3 -

    OFDMA multiusuario

    El estándar 802.11ax introducirá una nueva tecnología Wi-Fi, prestada de las redes 4G, para multiplexar una gran cantidad de suscriptores en un ancho de banda común: acceso múltiple por división de frecuencia ortogonal (OFDMA). Esta tecnología se basa en OFDM, que ya se utiliza en 802.11ac. Su esencia es que OFDMA en 802.11ax le permite "cortar" adicionalmente canales estándar con un ancho de 20, 40, 80 y 160 MHz en otros más pequeños. Así, los canales se dividen en subcanales más pequeños con un número predeterminado de subportadoras. Al igual que en LTE, en 802.11ax el subcanal más pequeño se denomina Unidad de recursos (RU), que tiene un tamaño mínimo de 26 subportadoras. Para mayor claridad, la siguiente figura muestra la división de recursos de frecuencia para un usuario usando OFDM (izquierda) y la multiplexación de cuatro usuarios en un canal usando OFDMA (derecha):


    Figura 4 -

    En entornos congestionados donde muchos usuarios normalmente competirían de manera ineficiente por el uso del canal, el nuevo mecanismo Wi-Fi OFDMA les sirve simultáneamente con un subcanal más pequeño pero dedicado al usuario, mejorando el rendimiento promedio para cada usuario individual.

    La siguiente figura muestra cómo un sistema 802.11ax puede multiplexar un canal usando diferentes tamaños de RU. Tenga en cuenta que la división de canales más pequeña admite hasta 9 usuarios por cada 20 MHz de ancho de banda:


    Figura 5

    Separación de canales Wi-Fi usando canales de 40 MHz:


    Figura 6

    Separación de canales Wi-Fi usando canales de 80 MHz:


    Figura 7

    La siguiente tabla muestra la cantidad de usuarios (para varios anchos de canal) que ahora pueden recibir acceso multiplexado de frecuencia OFDMA:

    Número de subcanales RU Ancho de banda 20 MHz Ancho de banda 40 MHz Ancho de banda 80 MHz Ancho de banda 160 MHz
    26 9 18 37 74
    52 4 8 16 32
    106 2 4 8 16
    242 1-SU/MU-MIMO 2 4 8
    484 N / A 1-SU/MU-MIMO 2 4
    966 N / A N / A 1-SU/MU-MIMO 4
    2x966 N / A N / A N / A 1-SU/MU-MIMO

    Operación de enlace ascendente multiusuario

    Como se indicó anteriormente, en 802.11ax será posible transmitir simultáneamente paquetes de varios suscriptores a un punto de acceso. Para coordinar MU-MIMO o Uplink OFDMA, el AP envía una trama de activación a todos los usuarios. Este cuadro indica el número de flujos espaciales y/o parámetros OFDMA (tamaños de frecuencia y RU) de cada usuario. La trama de activación también contiene información de control de potencia para que los usuarios individuales puedan aumentar o disminuir su potencia de transmisión en un esfuerzo por igualar la potencia recibida por el AP de todos los usuarios y, por lo tanto, mejorar la calidad de recepción de la trama. El AP también indica a todos los usuarios cuándo iniciar y detener una transmisión. El AP envía una trama de activación multiusuario que les dice a todos los usuarios la hora exacta en que deben comenzar a transmitir datos y la duración exacta de sus tramas para garantizar que todos completen la transmisión al mismo tiempo. Tan pronto como el AP recibe tramas de todos los usuarios, envía un bloque ACK que indica la finalización de la transmisión:


    Figura 8 - Coordinación de operación multiusuario de dispositivos en una red Wi-Fi

    Conclusión

    Uno de los principales objetivos del estándar 802.11ax es proporcionar un mayor rendimiento promedio por usuario (4 veces en promedio) en redes inalámbricas densas. Con este fin, los dispositivos 802.11ax admiten tecnologías MIMO y OFDMA multiusuario. También se agregó la capacidad de transmitir simultáneamente desde múltiples dispositivos al AP, lo que reduce el tiempo de espera y el tiempo de inactividad del equipo debido a intentos fallidos de capturar el medio de transmisión. En teoría, todo se ve, como siempre, claro y hermoso, sin embargo, qué efecto tendrá en la práctica: el tiempo lo dirá. Mientras tanto, solo podemos decir con certeza que el efecto de 802.11ax será solo si todos los dispositivos en la red son compatibles con el nuevo estándar. De lo contrario, pasarán algunos años más antes de que pasemos del buen viejo Wi-Fi (con sus bloqueos en redes grandes) al eficiente 802.11ax.

    Este artículo muestra un ejemplo del uso de la placa NodeMCU. A saber, control de carga utilizando un módulo de relé de 4 relés y aplicaciones en teléfono móvil androide.

    Conectamos todos los contactos según el esquema.

    Después de conectar todos los componentes, debe copiar el código del programa a continuación y pegarlo en el programa IDE de Arduino y cargar este código de programa en la placa Arduino.

    #incluir // Nombre y contraseña de tu red WiFi const char* ssid = "test"; const char*contraseña = "prueba"; // Crear servidor y puerto de escucha 80 WiFiServer server(80); void setup() ( Serial.begin(115200); delay(10); // Preparar GPIO pinMode(5, SALIDA); digitalWrite(5, 1); pinMode(4, SALIDA); digitalWrite(4, 1); pinMode (0, SALIDA); digitalWrite(0, 1); pinMode(2, SALIDA); digitalWrite(2, 1); // asignar una dirección IP estática WiFi.mode(WIFI_STA); // modo cliente WiFi.config(IPAddress ( 192,168,1,131), Dirección IP (192,168,1,111), Dirección IP (255,255,255,0), Dirección IP (192,168,1,1)); WiFi.begin (ssid, contraseña); // Espere la conexión mientras (WiFi.status ( ) ! = WL_CONNECTED) ( delay(500); Serial.print("."); ) Serial.println(""); Serial.println("WiFi conectado"); // Iniciar servidor server.begin(); Serial .println ("Servidor iniciado"); // Imprime la dirección IP recibida Serial.println(WiFi.localIP()); ) void loop() ( // Verifica la conexión WiFiClient cliente = servidor.disponible(); if (!cliente) ( return ; ) // Esperando datos Serial.println("nuevo cliente"); while (!client.disponible()) ( delay(1); ) // Leyendo la primera línea de la consulta String req = cliente.readStringUntil("\r"); Serial println(requerido); cliente.flush(); // Trabajar con GPIO if (req.indexOf("/1/0") != -1) digitalWrite(5, 0); más si (req.indexOf("/1/1") != -1) digitalWrite(5, 1); más si (req.indexOf("/2/0") != -1) digitalWrite(4, 0); más si (req.indexOf("/2/1") != -1) digitalWrite(4, 1); más si (req.indexOf("/3/0") != -1) digitalWrite(0, 0); más si (req.indexOf("/3/1") != -1) digitalWrite(0, 1); más si (req.indexOf("/4/0") != -1) digitalWrite(2, 0); más si (req.indexOf("/4/1") != -1) digitalWrite(2, 1); else if (req.indexOf("/5") != -1) ( Serial.println("TEST OK"); String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\ n\r\n\r\n \r\nPrueba OK. Uptime: "; // Calcular UpTime int Sec = (millis() / 1000UL) % 60; int Min = ((millis() / 1000UL) / 60UL) % 60; int Hours = ((millis() / 1000UL) / 3600UL) % 24; int Día = ((millis() / 1000UL) / 3600UL / 24UL); s += Día; s += "d "; s += Horas; s += ":"; s += Min ; s += ":"; s += segundo; s += "\n"; client.print(s); client.stop(); return; ) else // Si la solicitud no es válida, escriba un error ( Serial.println("solicitud no válida"); String s = "HTTP/1.1 200 Aceptar\ r\nTipo de contenido: texto/html\r\n\r\n\r\n \r\nSolicitud no válida"; s += "\n"; client.print(s); client.stop(); return; ) client.flush(); // Formando una respuesta String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html \r\n\r\n\r\n \r\nGPIO configurado OK"; s += "\n"; // Enviar la respuesta al cliente client.print(s); delay(1); Serial.println("Cliente desconectado"); )

    Las fuentes se pueden ver en este enlace: https://yadi.sk/d/ehabE3C_3M36Yo Este enlace descargará un archivo con la extensión .aia y podrás agregarlo a la aplicación MIT inverter y ver en qué consiste el programa.

    Pedí la placa más simple con ESP8266 - ESP-01, se ve así:

    En la revisión anterior de la placa, solo se enviaban VCC, GND, URXD y UTXD al conector.
    La última revisión agregó RST, GPIO0, GPIO2 y CH_PD.

    En total hay 11 modificaciones de las placas, que difieren en el número de pines y la versión:
    ESP-01: antena PCB, después de hacer coincidir la distancia para hacer alrededor de los 400 metros abiertos, fácil de usar.
    ESP-02: paquete SMD para límite de envío, la antena se puede dibujar con la carcasa del encabezado IPX.
    ESP-03: paquete SMD, la tecnología de antena de cerámica incorporada, todos los cables IO disponibles.
    ESP-04: paquete SMD, los clientes pueden personalizar los tipos de antena, diseño flexible, todos los cables IO.
    ESP-05: paquete SMD, solo conduce a pin serial y RST, antena externa pequeña.
    ESP-06: tecnología de montaje inferior, lleva todos los puertos IO, con carcasa protectora de metal, se puede obtener la certificación FCC CE, recomendada.
    ESP-07: tecnología de chip semi-agujero, todos los cables IO, con carcasa protectora de metal, se puede tener una antena externa IPX certificada por FCC CE, también se puede incorporar una antena de cerámica.
    ESP-08: con el ESP-07, excepto que la antena tiene la forma de que los clientes puedan definir la suya.
    ESP-09: paquete de tamaño ultra pequeño, solo 10 * 10 mm, tecnología de placa de cuatro capas 1M bytes.
    ESP-10: interfaz SMD, diseño de cuerpo estrecho, 10 mm de ancho, adecuado para luz con controlador.
    ESP-11: interfaz SMD, antena de cerámica, pequeño volumen.

    Asignación de pines del conector ESP-01:

    La asignación de pines de la placa ESP-01 es la siguiente:
    VCC, GND - alimentación de la placa (+3,3 V);
    URXD, UTXD: los pines RS232 son tolerantes a 3,3 V
    RST - Restablecimiento completo (reinicio)
    GPIO0, GPIO2 - pines GPIO
    CH_PD - Habilitación de chip, debe estar conectado a +3.3V para funcionar.

    Para cambiar al modo de actualización de firmware, debe conducir bajo en GPIO0 y alto en CH_PD.

    Para conectar la placa ESP-01 a una PC, usé un convertidor de USB a RS232 en el FT232R con salidas TTL 3.3V, puede usar este por ejemplo.
    El ESP-01 necesita estrictamente una potencia de 3,3 V, así que tuve que usar un convertidor DC-DC, puedes usar este.

    Con el firmware base, la placa ESP-01 se controla mediante comandos AT, por lo que necesitamos un programa de terminal, utilicé CoolTerm.

    Hay 2 opciones para usar el módulo:
    1. Usando la placa ESP-01 junto con un microcontrolador adicional que controlará el módulo a través de UART.
    2. Escribir su propio firmware para el chip ESP8266 y usarlo como un dispositivo autosuficiente.

    Naturalmente, la segunda opción es más rentable, especialmente porque el potencial del chip ESP8266 es bastante grande.

    Para empezar probaremos la opción número 1, es decir, controlar la placa ESP-01 vía RS232.

    El diagrama de conexión es muy simple:
    pin VCC - potencia de la placa (+3.3V);
    El pin GND es común;
    Pines URXD, UTXD: conéctese al convertidor USB a RS232 (en modo 3.3V)
    Salida CH_PD: conecte a la fuente de alimentación de la placa (+ 3.3V);

    En la terminal (CoolTerm) configuramos la velocidad del puerto COM a 57600. si el chip ESP8266 tiene un firmware antiguo (y lo más probable es que lo tenga), solo funcionará con esta velocidad de puerto.

    Haga clic en Conectar, ingrese el comando AT, la respuesta debería ser correcta. Si es así, entonces el tablero está funcionando, puede continuar.

    Procedimiento de actualización de firmware

    Ingrese el comando AT + GMR: verifique la versión de AT y SDK, en respuesta da 0016000902, donde 0016 es la versión SDK, 0901 es la versión AT

    Actualmente (06/11/2014) ya está disponible el firmware 0018000902 (versión SDK - 0018, en versión AT - 0902)

    Ahora puede y debe actualizar el firmware:
    1. Descargue la utilidad XTCOM desde aquí.
    2. Descargue el firmware ESP_8266_v0.9.2.2 AT Firmware.bin desde aquí
    3. Apague la alimentación de la placa, conecte el pin GPIO0 a un cable común, encienda la alimentación.
    4. Ejecute XTCOM_UTIL.exe, vaya a Herramientas -> Dispositivo de configuración, seleccione el puerto COM al que está conectada la placa, configure la velocidad del puerto en 57600, haga clic en Abrir, luego en Conectar, el programa debería decir "¡Conectar con el objetivo OK!" , cierre la ventana de configuración. Vaya al menú API TEST, seleccione (4) Flash Image Download, especifique la ruta al archivo "ESP_8266_v0.9.2.2 AT Firmware.bin", deje la dirección 0x00000, haga clic en Descargar. La descarga del firmware debería comenzar y se mostrará un mensaje al finalizar.
    5. Desconecte la alimentación de la placa, desconecte el pin GPIO0 del cable común, encienda la alimentación, inicie el terminal (¡ATENCIÓN! Cambie la velocidad del puerto a 9600), verifique la preparación de la placa con el comando AT y el versión de firmware con el comando AT + GMR.

    Después de actualizar a la versión 0018000902, la velocidad predeterminada del puerto COM cambiará de 57600 a 9600, pero esta velocidad ahora se puede configurar en el nuevo firmware con el comando AT+CIOBAUD. Ver AT+CIOBAUD=? velocidades disponibles y configure el comando AT+CIOBAUD=115200 velocidad 115200, la respuesta debe ser correcta. Damos la orden de reiniciar: AT+RST. Cambie la velocidad del puerto en el programa de terminal a 115200.

    Ejemplo:
    EN BIEN EN+CIOBAUD=? +CIOBAUD:(9600-921600) OK AT+CIOBAUD=115200 BAUDIOS->115200 OK

    Configuración de una conexión Wi-Fi

    Ahora intentemos conectar nuestra placa ESP-01 a un punto de acceso Wi-Fi.
    Ejecutamos los siguientes comandos:
    1. Configure el modo Wi-Fi con el comando: AT+CWMODE= Están disponibles los siguientes modos: 1 - STA, 2 - AP, 3 - AMBOS
    Ejemplo:
    AT+CWMODE=1 OK 2. Ver la lista de puntos de acceso con el comando: AT+CWLAP
    Ejemplo
    AT+CWLAP +CWLAP:(3,"WiFi-DOM.ru-0474",-85,"c8:d3:a3:30:17:40",8) +CWLAP:(4,"Intersvyaz_516C",-89 ,"2c:ab:25:ff:51:6c",10) +CWLAP:(4,"pletneva",-96,"f8:1a:67:67:2b:96",11) +CWLAP:( 4,"Test",-69,"64:70:02:4e:01:4e",13) OK Especifica entre paréntesis: SEGURIDAD, SSID, RSSI, BSSID, CANAL
    SEGURIDAD puede tomar valores:
    0 - ABIERTO, 1 - WEP, 2 - WPA-PSK, 3 - WPA2-PSK, 4 - MIXTO (WPA-WPA2-PSK)
    3. Conéctese a nuestro AP con el comando: AT+CWJAP="SSID","PASSWORD" Ejemplo:
    AT+CWJAP="Prueba","habrahabr" OK La conexión dura de 2 a 5 segundos, después de lo cual aparecerá OK si es exitosa.
    3. Veamos qué dirección IP recibió nuestra placa con el comando: AT+CIFSR
    AT+CIFSR 192.168.1.104 OK La desconexión del punto de acceso se realiza con el comando AT+CWQAP.
    Dirección recibida, puede continuar.

    La placa ESP-01 puede actuar como un Soft-AP, para habilitar este modo, ejecute los siguientes comandos:
    1. Desconectarse del punto de acceso: AT + CWQAP.
    2. Cambia el modo Wi-Fi con el comando: AT+CWMODE=2
    3. Creamos nuestro AP con el comando: AT+CWSAP="SSID","PASSWORD",CHANNEL,SECURITY Ejemplo:
    AT+CWSAP="Test2","habrahabr",10,4 OK 4. Intentamos conectarnos a nuestro AP desde el ordenador. Veamos el resultado:


    Como puedes ver en la imagen, la velocidad es de solo 54Mbps, y las direcciones de los servidores DNS me confunden, creo que son claramente chinos, no puedes poner los tuyos a través de comandos AT.
    La dirección AP se puede encontrar con el comando: AT+CIFSR
    Ejemplo:
    AT+CIFSR 192.168.4.1 OK La lista de clientes de nuestro AP se puede visualizar con el comando: AT+CWLIF
    Ejemplo:
    AT+CWLIF 192.168.4.101,f4:ec:38:8d:05:62 OK

    Configuración del modo de servidor TCP

    La placa ESP-01 puede ejecutar un servidor TCP para enviar y recibir datos, o puede actuar como un cliente TCP para enviar y recibir datos al servidor.
    Para iniciar el servidor TCP, ejecute los siguientes comandos:
    1. Configure el modo de transmisión con el comando AT+CIPMODE= modo = 0 - no modo de datos (el servidor puede enviar datos al cliente y puede recibir datos del cliente)
    mode = 1 - modo de datos (el servidor no puede enviar datos al cliente, pero puede recibir datos del cliente)
    Ejemplo:
    AT+CIPMODE=0 OK 2. Establecer la posibilidad de conexiones múltiples: AT+CIPMUX= modo 0 - conexión única
    modo 1 - conexiones múltiples
    ¿Puede comprobar el modo de conexión con el AT + CIPMUX?
    Ejemplo:
    AT+CIPMUX=1 OK AT+CIPMUX? +CIPMUX:1 OK 3. Inicie el servidor en el puerto 8888: AT+CIPSERVER= [,]modo 0 - para cerrar el servidor
    modo 1 - para abrir servidor
    Ejemplo:
    AT+CIPSERVER=1.8888 OK
    Ahora puede conectarse al ESP-01 y enviar/recibir algunos datos. Para conectarnos utilizaremos la utilidad
    Lanzamos java -jar SocketTest.jar, en la pestaña Cliente, ingrese la dirección y el puerto de ESP-01, haga clic en Conectar. Si la conexión se realiza correctamente, aparecerá el mensaje Enlace en el terminal, y la línea Mensaje y el botón Enviar se activarán en SocketTest.
    Puede ver la lista de conexiones activas al ESP-01 con el comando AT + CIPSTATUS
    Ejemplo:
    AT+CIPSTATUS STATUS:3 +CIPSTATUS:0,"TCP","192.168.1.100",44667,1 OK Puede cerrar una conexión activa con el comando AT+CIPCLOSE= o todas las conexiones AT+CIPCLOSE sin opciones.
    Ejemplo:
    AT+CIPCLOSE=0 OK Desvincular 4. Enviar datos desde ESP-01 a PC
    ,
    Ejemplo:
    AT+CIPSEND=0,16 > Ping Habrahabr ENVIAR OK 5. Enviar un mensaje de prueba desde la PC:


    En el terminal aparece la línea +IPD,0,16:Ping Habrahabr Mensaje aceptado.
    El formato de los datos recibidos es:
    Para el modo Conexión única (CIPMUX=0): +IPD, :Para el modo de Conexión Múltiple (CIPMUX=1): +IPD, ,:

    Configuración del modo de cliente TCP

    Ahora cambiemos los roles, PC - servidor, ESP-01 - cliente, intente:
    1. Reinicie la placa AT+RST
    2. Configure el modo de transmisión con el comando AT+CIPMODE= modo = 0 - no modo de datos (el cliente puede enviar datos al servidor y puede recibir datos del servidor)
    mode = 1 - modo de datos (el cliente no puede enviar datos al servidor, pero puede recibir datos del servidor)
    Ejemplo:
    AT+CIPMODE=0 OK 3. Establezca el modo de conexión en Conexión múltiple: AT+CIPMUX=1
    4. En la PC en SocketTest, inicie el servidor en el puerto 8888
    5. Ejecute el cliente en ESP-01
    Para el modo de conexión única (+CIPMUX=0) el formato es AT+CIPSTART= ,,Para el modo de conexión Múltiple (+CIPMUX=1) el formato es AT+CIPMART= ,,Posibles valores de parámetros:
    identificación = 0-4
    tipo=TCP/UDP
    dirección = dirección IP
    puerto = puerto
    Ejemplo:
    AT+CIPMUX=1 OK AT+CIPMUX=0,"TCP","192.168.1.100",8888 OK Vinculado 6. Enviar datos desde ESP-01 a PC
    Para el modo de conexión única (+CIPMUX=0), el envío es así: AT+CIPSEND= Para el modo de conexión múltiple (+CIPMUX=1), el envío es así: AT+CIPSEND= ,Después de ejecutar AT + CIPSEND, debe ingresar texto, la finalización de la entrada y el envío se llevan a cabo mediante Enter.
    Ejemplo:
    AT+CIPSEND=0.16 > Ping Habrahabr ENVIAR OK
    Ejemplo de envío y recepción de datos:

    Documentación útil:
    Descripción de los comandos AT (en chino)
    Especificación del chip ESP8266 (chino)
    Especificación para el chip ESP8266 (en inglés)

    Conclusión:

    Como podemos ver, la placa hace frente con éxito a las tareas establecidas, a saber, conectarse a Wi-Fi como cliente, puede actuar como Soft-AP, puede generar un servidor TCP en la placa para recibir y enviar datos, o puede puede ser un cliente TCP.
    En este artículo, analizamos trabajar con la placa ESP-01 a través de RS232, una PC actuó como controlador de control, puede conectar fácilmente una placa Arduino o cualquier microcontrolador con UART y enviar y recibir datos a través de una red Wi-Fi entre controladores. o computadora.

    En el próximo artículo (según lo permita el karma) intentaré hablar sobre los principios de escribir mi propio firmware para el chip ESP8266, por lo que la placa ESP-01 será completamente autónoma, no necesitará un controlador adicional para controlar todos los parámetros. Intentaremos conectar varios dispositivos periféricos a la placa.

    Estaré encantado de responder preguntas, aunque aún no he estudiado completamente la placa ESP-01.