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); }