ARDUINO Proyecto de aplicación
ENCENDER CARGAS CON UN MODULO WIFI ESP8266 + ARDUINO UNO MODULO WIFI ESP8266 Pin de Recepción. URXD Pin de voltaje 3.3v. VCC Pin GPIO0. No conectar Pin RST. No conectar Pin GPIO2. No conectar Pin voltaje 3.3v. CH_PD Pin de tierra. GND Pin de transmisión. UTXD
1. Descripción del proyecto: Encender cargas con un módulo wifi esp8266 + arduino uno El proyecto permite activar cargas en las salidas del arduino uno, utilizando el modulo WIFI ESP8266 conectado en el arduino. Este proceso se efectúa atreves de una interfaz web. Los componentes que utilizaremos serán los siguientes: COMPONENTE Protoboar Modulo WiFi Led Resistencias Cableado
REFERENCIA ESP8266 220 Ω
El conexionado del módulo wifi consta de 8 pines, en la siguiente imagen vemos qué función tiene cada uno de éstos:
El siguiente paso que debemos dar, es hacer el conexionado total de los componentes. En la siguiente imagen podemos verlo.
Una vez realizada la conexión de todos los componentes tendremos que subir el código de programación al Arduino.
El código de programación que hemos utilizado nosotros es el siguiente:
#include <SoftwareSerial.h> #define DEBUG true SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3. // This means that you need to connect the TX line from the esp to the Arduino's pin 2 // and the RX line from the esp to the Arduino's pin 3 void setup() {
SSSerial.begin(19200); esp8266.begin(19200); // your esp's baud rate might be different pinMode(10,OUTPUT); digitalWrite(10,LOW); pinMode(11,OUTPUT); digitalWrite(11,LOW); pinMode(12,OUTPUT); digitalWrite(12,LOW); pinMode(13,OUTPUT); digitalWrite(13,LOW); sendData("AT+RSTrn",2000,DEBUG); // reset module sendData("AT+CWMODE=2rn",1000,DEBUG); // configure as access point sendData("AT+CIFSRrn",1000,DEBUG); // get ip address sendData("AT+CIPMUX=1rn",1000,DEBUG); // configure for multiple connections sendData("AT+CIPSERVER=1,80rn",1000,DEBUG); // turn on server on port 80 } void loop() { if(esp8266.available()) // check if the esp is sending a message { if(esp8266.find("+IPD,")) { delay(1000); // wait for the serial buffer to fill up (read all the serial data) // get the connection id so that we can then disconnect int connectionId = esp8266.read()-48; // subtract 48 because the read() function returns // the ASCII decimal value and 0 (the first decimal number) starts at 48 esp8266.find("pin="); // advance cursor to "pin=" int pinNumber = (esp8266.read()-48)*10; // get first number i.e. if the pin 13 then the 1st number is 1, then multiply to get 10 pinNumber += (esp8266.read()-48); // get second number, i.e. if the pin number is 13 then the 2nd number is 3, then add to the first number digitalWrite(pinNumber, !digitalRead(pinNumber)); // toggle pin // make close command String closeCommand = "AT+CIPCLOSE="; closeCommand+=connectionId; // append connection id closeCommand+="rn"; sendData(closeCommand,1000,DEBUG); // close connection }
} } /* * Name: sendData * Description: Function used to send data to ESP8266. * Params: command - the data/command to send; timeout - the time to wait for a response; debug - print to Serial window?(true = yes, false = no) * Returns: The response from the esp8266 (if there is a reponse) */ String sendData(String command, const int timeout, boolean debug) { String response = ""; esp8266.print(command); // send the read character to the esp8266 long int time = millis(); while( (time+timeout) > millis()) { while(esp8266.available()) { // The esp has data so display its output to the serial window char c = esp8266.read(); // read the next character. response+=c; } } if(debug) { Serial.print(response); } return response; }
Una vez cargado correctamente el programa abrimos el monitor serie y nos debería salir la siguiente pantalla.
Finalmente creamos nuestra propia interfaz web. Aquí dejamos el código html utilizado.
<html> <head> <title>ESP8266 LED Control</title> </head> <body> <button id="10" class="led">BOMBILLA</button> <button id="11" class="led">LED AZUL</button> <button id="12" class="led">LED VERDE</button> <button id="13" class="led">LED ROJO</button> <script src="jquery.min.js"> </script> <script type="text/javascript"> $(document).ready(function(){ $(".led").click(function(){ var p = $(this).attr('id'); $.get("http://192.168.4.1:80/", {pin:p}); }); }); </script> </body> </html>
Hay que tener en cuenta que la IP puede variar según la puerta de enlace de cada usuario.
Este sería el resultado final de la interfaz web:
Con la interfaz web ya montada y el enlace WiFi funcionando, ya podemos interactuar con los LED’s y la bombilla remotamente.
Jóvenes, este material ha sido elaborado con mucho gusto. Si te es útil Regálame un Like, comenta y suscríbete :) (っ◕‿◕) Te invito al CANAL DE YOUTUBE MEKATRONICA
http://www.youtube.com/c/JovannyDuque ?sub_confirmation=1_
Amigos/as en el BLOGG MEKATRONICA J DUKE podrás encontrar cantidad de recursos sobre SOLIDWORKS, HIDRÁULICA ELECTROHIDRÁULICA , NEUMÁTICA, ELECTRONEUMÁTICA, CONTROL, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM FACTORY IO, entre otros
https://mecatronica-itsa.blogspot.com/ https://mecatrónica.com.co/