Llego la época del Internet de las cosas, pero desconoces todo lo relacionado a la red. Bueno aqui encontraras todos los conceptos básicos que debes conocer. Ademas encontraras una breve explicación de como funciona la red, librerías que puedes usar en el NodeMCU y mas cosas.

Conceptos basicos

Comencemos con los conceptos basicos, ya que si no manejamos todos estos conceptos, no podremos entender otros conceptos nuevos.

WIFI: es una tecnología de comunicación inalámbrica que permite conectar a internet equipos electrónicos, como computadoras, tablets, smartphones o celulares, etc., mediante el uso de radiofrecuencias o infrarrojos para la trasmisión de la información.

AP: Un punto de acceso inalámbrico (WAP o AP por sus siglas en inglés: Wireless Access Point) en redes de computadoras es un dispositivo que interconecta dispositivos de comunicación inalámbrica para formar una red inalámbrica.

ROUTER: Un router —también conocido como enrutador, ​​ o rúter​— Se trata de un producto de hardware que permite interconectar computadoras que funcionan en el marco de una red. Su función: se encarga de establecer la ruta que destinará a cada paquete de datos dentro de una red informática.

MODEM: Un módem ​ es un dispositivo que convierte las señales digitales en analógicas y viceversa, ​ y permite así la comunicación entre computadoras a través de la línea telefónica o del cablemódem. Sirve para enviar la señal moduladora mediante otra señal llamada portadora.

WAN: Una red de área amplia, o WAN (Wide Área Network en inglés), es una red de computadoras que une varias redes locales, aunque sus miembros no estén todos en una misma ubicación física.

LAN: Una Red LAN conecta diferentes ordenadores en un área pequeña, como un edificio o una habitación, lo que permite a los usuarios enviar, compartir y recibir archivos.

MAC ADDRESS: es una identificador único de 48 bits para identificar la totalidad de dispositivos de red como por ejemplo tarjetas de red Ethernet, tarjetas de red wifi o inalámbricas, Switch de red, Routers, impresoras, etc.

IP LAN: Es la dirección ip de un computador o un dispositivo físico con tarjeta de red que le asigna el router, para asi identificarlo localmente.

IP WAN: Es la dirección ip de router, que le asigna el proveedor de servicios de internet al router, conocida como ip publica.

SSID: Es el nombre de la red wifi del router

PUERTO: Un puerto de red es una ranura que porta un computadora personal. Esta ranura tiene la capacidad de que se le introduzca un cable de red con el cual el dispositivo se conectará a la señal del router.

ISP: Es el proveedor de servicio de internet, por ejemplo: intercable, movistar, cantv, claro…

HostName: Un nombre de equipo es un nombre único y relativamente informal que se le da a un dispositivo conectado a una red informática. Puede ser un ordenador, un servidor de ficheros, un dispositivo de almacenamiento por red, una máquina de fax, impresora, etc.

DHCP: El protocolo de configuración dinámica de host es un protocolo de red de tipo cliente/servidor mediante el cual un servidor DHCP asigna dinámicamente una dirección IP y otros parámetros de configuración de red a cada dispositivo en una red para que puedan comunicarse con otras redes IP.

TCP: En ocasiones se le denomina conjunto de protocolos TCP/IP, en referencia a los dos protocolos más importantes que la componen, que fueron de los primeros en definirse, y que son los dos más utilizados de la familia: TCP: protocolo de control de transmisión. IP: protocolo de internet.

DMZ: En seguridad informática, una zona desmilitarizada (conocida también como DMZ, sigla en inglés de demilitarized zone) o red perimetral es una red local que se ubica entre la red interna de una organización y una red externa, generalmente en Internet.

Como saber si tengo los puertos abiertos de mi Router

Todo depende del ISP, algunas empresas no limitan este tipo de cosas, otras si y debes pedir permisos para poder abrir un puerto, seguramente te haran varias preguntas como a que te dedicas, para que desear abrir el puerto y bla bla bla…

Hay varias paginas que nos indican si nuestros puertos estan abiertos o en tal caso escribimos el puerto con que debemos o deseamos trabajar y hacemos la consulta. Casi siempre esta bloqueado los puertos 80 y el 8080, pero como dije todo depende de la ISP. hay puertos que se han fijado para cierto trabajo, por ejemplo para las paginas web, torrent, entre otros… Si vamos a trabajar con sockets no importa con cual puerto vamos a trabajar.

Con la siguiente pagina, podremos saber 2 cosas. La ip publica de nuestro router y ademas podremos consultar si algún puerto en especifico esta abierto.

https://www.testdevelocidad.es/test-de-puertos/

Breve explicación del funcionamiento de una red

Todo dispositivo que se conecta a la RED de INTERNET tiene un hostname, una mac y una ip. No importa cual sea el protocolo de comunicación, la comunicaciones es por internet o localmente. Entonces una red LAN es una conexión entre dispositivos atrás de un router, ahora una red WAN es una de redes (internet), es la red de redes locales, donde hay servidores. Por ejemplo cuando entramos a internet, entramos a otra computadora (un servidor).

La red funciona de la siguiente manera. la red de redes se conecta con una ISP, la ISP se conecta a nuestro Router y este le asigna una ip al dispositivo que se conecte. Esta ip (publica) asignada al router no siempre es la misma, lo que se conecte al Router se conoce como ip privada, es decir todos los dispositivos como celulares, computadores conectados al router, tendran ips privadas, que son asignadas por el router. La ip publica que le asigna el ISP al router cambia cada tanto y esto es un problema, ya que si estamos haciendo conexión con otro dispositivo y la ip cambia, no podremos saber que cambio.

Como saber que puertos estas habilitados

El ISP, posiblemente tenga bloqueados todos los puertos, para conocer que puertos tengo disponibles entro esta pagina la cual me dira la ip publica del router y podremos ingresar el puerto que deseamos analizar. Tambien es posible hacer un escaneo de todos los puertos, para saber cual esta disponible, eso lo podremos hacer desde esta pagina.

Como configurar mi Router

En estas configuraciones de red es importante saber como entrar al router y configurarlo. Por ejemplo para abrir un puerto necesitamos configurarlo desde el router, asignar una ip fija, entre otras opciones.

Para configurar el router, debemos abrir el navegador e ingresar la puerta de enlace del router (getway). Esta puerta de enlace casi siempre es “192.168.0.1” o “192.168.1.1”, pero para estar seguros de cual es nuestra puerta de enlace en GNU-Linux, abrimos la terminal y tipeamos

ip route show

saldra la ip default para entrar al router.

Dos Routers en serie

Si te estas conectando a un router que su vez esta conectado a otro router. Lo importante saber de todo esto, es que si nos conectamos desde otra red y queremos hacer comunicacion con la red donde se encuentra nuestro ESP8266, el router al que nos vamos a conectar es aque que este conectado el modem, es decir es aquel router que tiene una ip asignada por el ISP, por tal motivo debemos conectarnos a la ip de ese router, en cuanto a los puertos, no importa si el segundo router los tiene abiertos, lo importante es que el primer router si los tenga abiertos, ya que es el que esta conectado a internet, el segundo router ya hace parte de una red Local.

Que es hacer ping

Para describir de forma sencilla que es un ping. Algunos telefenos tienen la opcion de recibir confirmacion de mensaje. Esto lo que haces es que si envias un mensaje de texto si el mesaje le llega a la otra persona, el tlf de la otra persona le envia un ping a su telefono, es decir le confima que si llego el mensaje. Por ejemplo cuando yo quiero saber si tengo internet. Hago un ping a google.

De esta forma se que tengo internet, porque me devuelve el ping… Tambien es posible hacer un ping a nuestro router, le podemos agregar el puerto tambien.

Si queremos hacer ping a nuestro router, debemos conocer la ip publica de nuestro router y si tenemos un dispositivo conectado a uno de sus puertos, por ejemplo el puerto 80. debemos hacer lo siguiente. supongamos que la ip es 200.xxx.xxx.20

ping 200.xxx.xxx.20:80

En tal caso que no haga pin debe salir un mensaje como este unknow host

Como fijar una ip a un dispositivo

Por ejemplo si deseamos que nuestro telefono tenga una ip fija cada vez que se conecte al router o en este caso hablaremos del ESP8266. Para asignarle una ip fija debemos conocer tres cosas, el mac address, hostname y una ip que se encuentre entre el rango DHCP disponible.

Abrimos nuestro navegador, ingresamos la puerta de enlace al router, en mi caso que tengo flashado el router con dd-wrt nos dirigimos a la pestaña Services, luego a la otra pestaña services y donde dice static leases ingresamos los trs parametros, luego le damos al boton aply settings y en save, para guardar los cambios. Ese es todo el proceso, unavez que conectemos el ESP8266, el router le asiganara la ip que hemos fijado.

Conocer la ip, la MAC y el Hostname del ESP8266

Para conocer la direccion ip que le asigna el router, tambien la direccion mac y el hostname de la placa, la siguiente rutina podremos conocer esos datos, por medio del monitor serie.

Serial.print ("Conectado, IP: "); Serial.println (WiFi.localIP()); // Imprimimos las MAC ADDRESS Serial.print("MAC: "); Serial.println(WiFi.macAddress()); //Imprimimos el hostname Serial.printf("Hostname por defecto: %s

", WiFi.hostname().c_str());

Libreria de NOIP para el ESP8266

La libreria easyddns, se instala desde el administrador de librerias, la encontramos disponible en github.

Esta libreria lo que hace es conectarse al servicio NOIP y verificar si la ip publica del router ha cambiado, pero para que funcione, el router debe tener la capacidad de aceptar este servicio. En tal caso se debe configurar infresando el hostname designado por el servicio no ip, el nombre de usuario la clave de usuario. Si no se configura el router, no tendra utilidad esta libreria, a demas de esto la utilidad de esta libreria la tendra es el cliente no el servidor.

#include #include const char* ssid = "your-ssid"; const char* password = "your-password"; WiFiServer server(80); void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) {delay(500); Serial.print("."); } Serial.println(WiFi.localIP()); // Print the IP addressserver.begin(); EasyDDNS.service("noip"); // Enter your DDNS Service Name - "duckdns" / "noip"EasyDDNS.client("domain","username","password"); // Enter ddns Domain & Username & Password | Example - "esp.duckdns.org","username", "password"}void loop() {EasyDDNS.update(10000); // Check for New Ip Every 10 Seconds.}