ENCENDER CARGAS CON UN MODULO WIFI ESP8266 + ARDUINO UNO
Hola jóvenes, en estos enlaces del BLOGG y DEL CANAL, pueden encontrar recursos sobre fundamentos de ingeniería mecatrónica como : SOLIDWORKS, PROGRAMACIÓN DE ARDUINO, HIDRÁULICA – LENGUAJE LADDER , LENGUAJE GRAFCET ,ELECTROHIDRÁULICA , NEUMÁTICA, ELECTRONEUMÁTICA, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM, FACTORY IO, CONTROL, entre otros https://www.mecatrónica.com.co/ https://mecatronicaitsa.blogspot.com/ http://www.youtube.com/c/Jovanny Duque?sub_confirmation=1_ Si te ha sido útil, regálame un Like, comenta y suscríbete :) (っ◕‿◕)
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
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. Ing. Jovanny Duque
Página 1
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
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); Ing. Jovanny Duque
Página 2
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ 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 Ing. Jovanny Duque
Página 3
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ 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();
Ing. Jovanny Duque
Página 4
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ 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.
Ing. Jovanny Duque
Página 5
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
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}); }); Ing. Jovanny Duque
Página 6
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ }); </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 sidó elabóradó cón muchó gustó. Si te es util Rega lame un Like, cómenta y suscríbete :) (っ◕‿◕) Te invitó al CANAL DE YOUTUBE MEKATRONICA Ing. Jovanny Duque
Página 7
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
http://www.yóutube.cóm/c/JóvannyDuque? sub_cónfirmatión=1_ Amigós/as en el BLOGG MEKATRONICA J DUKE pódras encóntrar cantidad de recursós sóbre SOLIDWORKS, HIDRAULICA ELECTROHIDRAULICA , NEUMATICA, ELECTRONEUMATICA, CONTROL, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM FACTORY IO, entre ótrós
https://mecatrónica-itsa.blógspót.cóm/ https://mecatrónica.cóm.có/
Ing. Jovanny Duque
Página 8