Seguramente ya todos hemos escuchado sobre el internet de las cosas, la famosa sigla “IOT”. Pues sí hoy nos adentraremos a desarrollar una tarjeta que nos permita la comunicación WIFI y también la comunicación BLUETOOTH, para ello usaremos el microcontrolador ESP32 con el módulo dfplayer el cual nos permitirá reproducir un sonido o una voz cuando se encienda o se apague un actuador. Esta tarjeta cuenta con las siguientes características; tiene 8 salidas para controlar focos de corriente alterna, 2 entradas digitales, 2 entradas analógicas y lo más importante, es que podremos subir directamente cualquier código a través del puerto USB de tipo c. Muy bien, entonces en este video les mostraré como se hizo este proyecto desde el esquemático electrónico, la creación de la tarjeta pcb y la explicación del código.
DATOS TÉCNICOS

- Tensión de alimentación……………………….…………85-265VAC
- Corriente de alimentación………………….……………28mA
- Entadas digitales 5-12VDC……………………….……2
- Entadas Analógicas 0-3.3VDC……………………….……2
- Salidas TRIAC’s…………………………………………8
-
- Tensión AC…………..……….………………….….……250V
- Corriente AC…………………………………………….2A
-
- Entorno de programación………………………..………..Arduino IDE
- Comunicación Bluetooth………………………….……..………..Sí
- Comunicación wifi…………………………….…….……..………..Sí
- Salida para speaker………………………………………………………Sí
- Salida plug audio ………………………………………………………Sí
- Condiciones ambientales min……………………….….-40°
- Condiciones ambientales max…………………..……….150°
- Dimensiones……………………………………………………….90x80mm
- Empotrable………………………………….……………………Sí
- Programación directa (PC-Tarjeta electrónica)…………Sí
LISTA DE MATERIALES

| Categoría | Cantidad | Referencias | Valor | PCB Package | Datasheet |
| Condensadores | 8 | C1,C2,C3,C4,C5,C6,C9,C10 | 100nF | 0603_CAP | (see & buy) |
| Condensadores | 1 | C7 | 220uF | CAP SMD 6.3X7.7MM 220UF/16V | (see & buy) |
| Condensadores | 1 | C8 | 470uF | ELEC-RAD20 | (see & buy) |
| Resistencias | 8 | R1,R15,R19,R23,R27,R31,R35,R39 | 470 | 0805_RES | (see & buy) |
| Resistencias | 12 | R2,R3,R9,R11,R14,R18,R22,R26,R30, R34,R38,R42 |
10k | 0603_RES | (see & buy) |
| Resistencias | 5 | R4,R5,R6,R7,R43 | 1k | 0603_RES | (see & buy) |
| Resistencias | 2 | R8,R10 | 2.2k | 1206_RES | (see & buy) |
| Resistencias | 16 | R12,R13,R16,R17,R20,R21,R24,R25, R28,R29,R32,R33,R36,R37,R40,R41 |
220 | 0603_RES | (see & buy) |
| Integrados | 8 | U1,U8,U10,U12,U14,U16,U18,U20 | ELM3052(TA)-V | SOIC250P670X300-4 | (see & buy) |
| Integrados | 8 | U2,U9,U11,U13,U15,U17,U19,U21 | T405Q-600 | DPAK-N | (see & buy) |
| Integrados | 1 | U3 | MOCD217R2M | SO8 | (see & buy) |
| Integrados | 1 | U4 | CH340C | SO16 | (see & buy) |
| Integrados | 1 | U5 | LD1117S33 | SOT230P700X180-4 | (see & buy) |
| Integrados | 1 | U6 | AC-DC MODULE 5V | AC-DC MODULE 250VAC-5V | (see & buy) |
| Integrados | 1 | U7 | ESP-32s | ESP-32S | (see & buy) |
| Transistores | 2 | Q1,Q2 | PMBT3904,215 | SOT23-3 | (see & buy) |
| Diodos | 8 | D1,D2,D3,D4,D5,D6,D7,D8 | LED-RED | LEDC2012X120 | (see & buy) |
| Miscelánea | 1 | J1 | USB TYPE C | USB TYPE C | (see & buy) |
| Miscelánea | 3 | J2,J4,J5 | TBLOCK-M2 | TERMINAL BLOCK 2P | (see & buy) |
| Miscelánea | 4 | J3,J6,J7,J8 | TBLOCK-M3 | TERMINAL BLOCK 3P | (see & buy) |
| Miscelánea | 1 | J9 | MP3 PLAYER | MP3 PLAYER | (see & buy) |
| Miscelánea | 1 | J10 | PLUS_AUX | PLUS_AUX | (see & buy) |
| Miscelánea | 1 | J11 | TBLOCK-M2 | T-BOCK 3.5MM GRENN 2P | (see & buy) |
CONEXIONES EXTERNAS


EJEMPLOS AUDIOS

CODIGO

//This example code is in the Public Domain (or CC0 licensed, at your option.)
//By Evandro Copercini - 2018
//
//This example creates a bridge between Serial and Classical Bluetooth (SPP)
//and also demonstrate that SerialBT have the same functionalities of a normal Serial
/*
la luz de la sala, ha sido encendido. = N° Audio 6
la luz del estudio, ha sido encendido. = N° Audio 14
la luz del dormitorio 1, ha sido encendido. = N° Audio 11
la luz del dormitorio 2, ha sido encendido. = N° Audio 13
la luz del closet, ha sido encendido. = N° Audio 9
la luz del patio, ha sido encendido. = N° Audio 5
la luz del segundo piso, ha sido encendido. = N° Audio 16
la luz de la cocina, ha sido encendido. = N° Audio 8
la luz de la sala, ha sido apagado. = N° Audio 1
la luz del estudio, ha sido apagado. = N° Audio 3
la luz del dormitorio 1, ha sido apagado. = N° Audio 10
la luz del dormitorio 2, ha sido apagado. = N° Audio 12
la luz del closet, ha sido apagado. = N° Audio 2
la luz del patio, ha sido apagado. = N° Audio 4
la luz del segundo piso, ha sido apagado. = N° Audio 15
la luz de la cocina, ha sido apagado. = N° Audio 7
*/
#include "Arduino.h"
#include "DFRobotDFPlayerMini.h"
#include "BluetoothSerial.h"
DFRobotDFPlayerMini mp3;
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
BluetoothSerial SerialBT;
int Q0 = 12;
int Q1 = 14;
int Q2 = 15;
int Q3 = 2;
int Q4 = 4;
int Q5 = 5;
int Q6 = 18;
int Q7 = 19;
void setup() {
Serial.begin(115200);
Serial2.begin(9600);
delay(100);
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
if (!mp3.begin(Serial2)) { //Use softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while (true);
}
Serial.println(F("DFPlayer Mini online."));
mp3.setTimeOut(500); //Set serial communictaion time out 500ms
mp3.volume(30); //Set volume value (0~30).
// delay(1000);
// mp3.play(98); //Play the first mp3
delay(1000);
SerialBT.begin("ESP32_ELECTROALL"); //Bluetooth device name
Serial.println("The device started, now you can pair it with bluetooth!");
pinMode(Q0, OUTPUT);
pinMode(Q1, OUTPUT);
pinMode(Q2, OUTPUT);
pinMode(Q3, OUTPUT);
pinMode(Q4, OUTPUT);
pinMode(Q5, OUTPUT);
pinMode(Q6, OUTPUT);
pinMode(Q7, OUTPUT);
}
void loop() {
if (SerialBT.available()) {
char dato = SerialBT.read();
if (dato == 'A') { //la luz de la sala, ha sido encendido.
digitalWrite(Q0, 1);
mp3.play (6);
}
else if (dato == 'a') {//la luz de la sala, ha sido apagado.
digitalWrite(Q0, 0);
mp3.play (1);
}
if (dato == 'B') {//la luz del estudio, ha sido encendido.
digitalWrite(Q1, 1);
mp3.play (14);
}
else if (dato == 'b') {//la luz del estudio, ha sido apagado.
digitalWrite(Q1, 0);
mp3.play (3);
}
if (dato == 'C') {//la luz del dormitorio 1, ha sido encendido
digitalWrite(Q2, 1);
mp3.play (11);
}
else if (dato == 'c') {//la luz del dormitorio 1, ha sido apagado
digitalWrite(Q2, 0);
mp3.play (10);
}
if (dato == 'D') {//la luz del dormitorio 2, ha sido encendido
digitalWrite(Q3, 1);
mp3.play (13);
}
else if (dato == 'd') {//la luz del dormitorio 2, ha sido apagado
digitalWrite(Q3, 0);
mp3.play (12);
}
if (dato == 'E') { //la luz del closet, ha sido encendido.
digitalWrite(Q4, 1);
mp3.play (9);
}
else if (dato == 'e') {//la luz del closet, ha sido apagado.
digitalWrite(Q4, 0);
mp3.play (2);
}
if (dato == 'F') {//la luz del patio, ha sido encendido.
digitalWrite(Q5, 1);
mp3.play (5);
}
else if (dato == 'f') {//la luz del patio, ha sido apagado.
digitalWrite(Q5, 0);
mp3.play (4);
}
if (dato == 'G') {//la luz del segundo piso, ha sido encendido.
digitalWrite(Q6, 1);
mp3.play (16);
}
else if (dato == 'g') {//la luz del segundo piso, ha sido apagado.
digitalWrite(Q6, 0);
mp3.play (15);
}
if (dato == 'H') {//la luz de la cocina, ha sido encendido.
digitalWrite(Q7, 1);
mp3.play (8);
}
else if (dato == 'h') {//la luz de la cocina, ha sido apagado.
digitalWrite(Q7, 0);
mp3.play (7);
}
}
delay(20);
}


