Creación de un interruptor de encendido / apagado inalámbrico para su PC

A Inteligente El sistema que controla la iluminación, los sistemas de entretenimiento y otros electrodomésticos se pueden diseñar en casa fácilmente y también son el concepto de más rápido crecimiento en el mundo moderno. Smart Home Systems es un concepto en el que todos los electrodomésticos o dispositivos se controlan mediante un único mando a distancia. Hoy en día, un solo componente como un módulo de relés se puede utilizar para controlar varios parámetros electrónicos de una casa, por ejemplo, conmutación de electrodomésticos, monitoreo de alarmas de seguridad, automatización de puertas de garaje, etc. En este proyecto, nuestro Computadora personal será controlado por un Aplicación para Android . En estos sistemas, la mayoría de las veces, el control remoto es una aplicación móvil. Como un móvil Android es el más común entre la gente, un aplicación android es la mejor opción para controlar nuestra PC.



Interruptor de computadora inalámbrico

¿Cómo hacer un interruptor inalámbrico para su PC en un teléfono móvil?

Paso 1: recopilación de los componentes

Para realizar cualquier proyecto hay que saber cuáles son los componentes básicos que se van a necesitar para completarlo. Entonces, un excelente enfoque antes de comenzar el trabajo es hacer una lista completa de todos los componentes para ahorrar tiempo y evitar la posibilidad de quedarse atascado en medio del proyecto. A continuación se ofrece una lista completa de todos los componentes que están fácilmente disponibles en el mercado:



  • ESP32
  • Transistor NPN 2N2222
  • Resistencia de 1k ohmios (x2)
  • Módulo de relé de 5 V
  • Cables de conexión

Paso 2: Software a instalar

Como vamos a hacer un interruptor inalámbrico, necesitaremos un botón para encenderlo y apagarlo. Queremos usar un teléfono móvil para operar este botón, así que necesitaremos desarrollar una aplicación para eso. La aplicación más conveniente es una aplicación de Android. Necesitamos instalar dos programas para usar esta aplicación. Ambos se enumeran a continuación:



  • Android Studio.
  • JAVA JDK.

Paso 3: instalación de Android Studio

Antes de instalar Android Studio, instalaremos JAVA JDK primero. Para instalar esto, haga clic en el exe archivo que descargó del enlace anterior y haga clic en Siguiente hasta que se haya instalado correctamente. Ahora siga los siguientes pasos para que su símbolo del sistema reconozca Java como un comando externo o interno.



  1. Abierto Control Panel y haga clic en Sistema y seguridad .
  2. Haga clic en Sistema .

    Sistema

  3. Haga clic en Configuracion avanzada del sistema y luego haga clic en Variables ambientales .

    Configuracion avanzada del sistema

  4. En la sección Variable del sistema, haga clic en la ruta y luego haga clic en editar. Un nuevo Editar variable ambiental aparecerá el cuadro.

    Editar trayectoria



  5. Ahora ve a C: Archivos de programa Java en su PC. Abra la carpeta JDK, haga clic en la carpeta bin y luego copie la ruta de esa carpeta.

    Ruta de la carpeta bin

  6. Ahora vaya al cuadro Editar variable ambiental y haga clic en nuevo para crear una nueva variable. Pegue la ruta que copió en el paso anterior en la nueva variable y guárdela.
  7. Ahora para confirmar, si está completamente instalado, abra el símbolo del sistema y escriba java –version .

    Versión JAVA

Ahora que ha instalado con éxito Java JDK en su computadora. Instalemos ahora Android Studio en su computadora. La instalación de este software es muy sencilla. Debe abrir el archivo descargado y hacer clic en Siguiente hasta que su software esté completamente instalado.

Paso 4: Conexión a Firebase

Ahora que hemos instalado Android Studio, iniciemos y creemos un nuevo proyecto para conectarlo a la base de fuego. Para hacer esto, siga los siguientes pasos.

1. Inicie Android Studio y cree un nuevo proyecto haciendo clic en el Actividad vacía .

Nuevo proyecto

2. Ahora nombre su proyecto como computerSwitc, Seleccione Kotlin como idioma, y ​​seleccione el nivel mínimo de API según su teléfono móvil.

Nuevo proyecto

3. Ya que vamos a utilizar internet para controlar los pines de la raspberry pi. Estableceremos el permiso en nuestra aplicación para acceder a wifi local. Para hacer esto, vaya a aplicación> manifiestos> AndroidManifest.xml y agregue el siguiente comando.

 

Permiso de Internet

3. Ahora, haga clic en n Herramientas. Aparecerá un menú desplegable en el que, seleccione Firebase.

Conexión de Firebase

4. Aparecerá un gran menú en el lado derecho de la pantalla que proporcionará el menú de casi todos los servicios que ofrece firebase. Pero en este momento, nuestro enfoque principal está en la base de datos en tiempo real. Entonces haga clic en Base de datos en tiempo real. Un enlace a ' Guardar y recuperar datos ' aparecerá. Haga clic en ese enlace.

Asistente de Firebase

5. Conéctese Conectarse a Firebase botón. Lo llevará al navegador web predeterminado. Primero, le pedirá que inicie sesión en su cuenta de Gmail. Luego haga clic en Agregue la base de datos en tiempo real a su aplicación y acepta los cambios.

6. Ahora ve a Consola de Firebase . Allí verá un proyecto ya realizado. El logotipo de Android en el icono de ese proyecto significa que ya pertenece a una aplicación de Android.

7. Desde el Desarrollar menú que aparece en el lado izquierdo de la pantalla, seleccione Base de datos. Un botón de Crear base de datos aparecerá a la derecha. Haga clic en ese botón.

8. Aparecerá un menú que le pedirá que configure el modo de su base de datos. Haga clic en Modo de prueba y luego haga clic en Habilitar .

Modo de prueba

9. Ahora, un paso realmente importante para recordar es cambiar el Cloud Firestore a Base de datos en tiempo real. Para hacerlo, haga clic en el botón que se muestra en la imagen de abajo y cambie la opción deseada.

Firebase en tiempo real

10. Ahora haga clic en el Reglas pestaña y cambie las configuraciones a Cierto . Una vez que todo esté hecho, haga clic en Publicar .

Cambiar configuraciones

11. Una cosa que debe hacer además de conectar la base de fuego es actualizar la versión de la base de datos. Para eso, haga clic en ir docs . Ahora haga clic en guías y seleccione Guías de Android de la lista que aparece en la pantalla. Desplácese hacia abajo hasta que aparezca una tabla. Busque la base de datos en tiempo real en esa tabla y busque su versión. en mi caso es 19.1.0

Versión

12. Haga clic en Secuencias de comandos de Gradle, un menú en el lado izquierdo de la pantalla. Luego seleccione construido. gradle (Módulo: aplicación). Ahora en el código, busque la versión de la base de datos en tiempo real y reemplácela por la nueva.

Versión de Firebase

13. Ahora sincronice el proyecto haciendo clic en el botón de sincronización que aparece en la parte superior de la pantalla.

Paso 5: hacer el diseño

Ahora, como nuestra aplicación de Android está conectada a la base de fuego, hagamos un diseño de nuestra aplicación que el usuario utilizará para encender o apagar la computadora. Para hacer un diseño, vaya a aplicación> res> diseño> activity_main.xml. donde diseñaremos un layout. Copie el código que se proporciona a continuación para crear una vista de texto.

 

El diseño de nuestra aplicación se verá así:

Diseño de la aplicación

Paso 6: codificación backend en Kotlin

Como hemos creado el frontend de la aplicación, avancemos un paso y escribamos el código del backend para conectarlo con la base de fuego. Hemos conectado un interruptor de palanca que enviará un 0 a la base de datos de la base de fuego cuando esté en estado apagado, y enviará un 1 a la base de datos de la base de fuego cuando esté en estado de encendido.

Ahora, en la esquina izquierda, haga clic en app> java> com.example.computerswitch> main_activity, y agregue el siguiente código allí en su clase. Si ocurre algún error de biblioteca, presione ALT + ENTRAR para incluir esa biblioteca automáticamente.

var database = FirebaseDatabase.getInstance () var myRef = database.reference internal lateinit var btnSwitch: Switch override fun onCreate (SavedInstanceState: Bundle?) {super.onCreate (SavedInstanceState) setContentView (R.layout.activity_main) btnSwitchd = findViewByInstance. id.switch2) como Switch btnSwitch.setOnClickListener {if (btnSwitch.isChecked) {myRef.child ('switch'). setValue ('1')} else {myRef.child ('switch'). setValue ('0') }}}

En la imagen de abajo, puede ver que si el interruptor está encendido, '1' se carga en la base de datos de firebase. De manera similar, aquí se reemplazará un '0' cuando se apague el interruptor.

Valor

Paso 7: Empezando con Arduino

Si no ha trabajado en Arduino IDE antes, no se preocupe porque a continuación se muestra un paso a paso para configurar Arduino IDE.

  1. Descargue la última versión de Arduino IDE de Arduino.
  2. Conecte su placa Arduino a la PC y abra el Panel de control. Haga clic en Hardware y sonido. Ahora abierto Dispositivos e impresora y busque el puerto al que está conectada su placa. En mi caso es COM14, pero es diferente en diferentes computadoras.

    Encontrar puerto

  3. Haga clic en Archivo y luego haga clic en Preferencias. Copia el siguiente enlace en el URL adicional del administrador de la junta. ' https://dl.espressif.com/dl/package_esp32_index.json”

    Preferencias

  4. Ahora, para usar ESP32 con Arduino IDE, necesitamos importar bibliotecas especiales que nos permitirán grabar código en ESP32 y usarlo. estas dos bibliotecas se adjuntan en el enlace que figura a continuación. Para incluir la biblioteca, vaya a Bosquejo> Incluir biblioteca> Agregar biblioteca ZIP . Aparecerá un cuadro. Busque la carpeta ZIP en su computadora y haga clic en Aceptar para incluir las carpetas.

    Incluir biblioteca

  5. Ahora ve Croquis> Incluir biblioteca> Administrar bibliotecas.

    Administrar bibliotecas

  6. Se abrirá un menú. En la barra de búsqueda, escriba Arduino JSON. Aparecerá una lista. Instalar en pc Arduino JSON de Benoit Blanchon.

    Arduino JSON

  7. Ahora haga clic en el Herramientas. Aparecerá un menú desplegable. Ponga el tablero en Módulo de desarrollo ESP.

    Tablero de ajuste 

  8. Haga clic en el menú Herramientas nuevamente y configure el puerto que observó en el panel de control antes.

    Puerto de configuración

  9. Ahora cargue el código que se adjunta en el enlace de abajo y haga clic en el botón de carga para grabar el código en el Microcontrolador ESP32 .

    Subir

Entonces, cuando cargue el código, puede ocurrir un error. Este es el error más común que puede ocurrir si está utilizando una nueva versión de Arduino IDE y Arduino JSON. Los siguientes son los errores que puede ver en la pantalla.

En el archivo incluido de C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, de C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer es una clase de ArduinoJson 5. Consulte arduinojson.org/upgrade para aprender cómo actualizar su programa a ArduinoJson versión 6 StaticJsonBuffer jsonBuffer; ^ En el archivo incluido desde C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, desde C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer es una clase de ArduinoJson 5. Consulte arduinojson.org/upgrade para saber cómo actualizar su programa a ArduinoJson versión 6 return StaticJsonBuffer (). ParseObject (_data); ^ Se encontraron varias bibliotecas para 'WiFi.h' Usado: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi No usado: C:  Archivos de programa ( x86)  Arduino  libraries  WiFi Usando la biblioteca WiFi en la versión 1.0 en la carpeta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Usando la biblioteca IOXhop_FirebaseESP32-master en la carpeta: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Usando la biblioteca HTTPClient en la versión 1.2 en la carpeta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Usando la biblioteca WiFiClientSecure en la versión 1.0 en la carpeta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Usando la biblioteca ArduinoJson en versión 6.12.0 en la carpeta: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson estado de salida 1 Error al compilar el módulo de desarrollo ESP32 de la placa.

No hay nada de qué preocuparse porque podemos eliminar estos errores siguiendo unos sencillos pasos. Estos errores surgen porque la nueva versión de Arduino JSON tiene otra clase en lugar de StaticJsonBuffer. Esta es la clase de JSON 5. Así que podemos simplemente eliminar este error degradando la versión de Arduino JSON de nuestro Arduino IDE. Simplemente ve a Croquis> Incluir biblioteca> Administrar bibliotecas. Buscar Arduino JSON de Benoit Blanchon que ha instalado antes. Desinstálelo primero y luego configure su versión en 5.13.5.  Ahora que hemos configurado una versión antigua de Arduino JSON, instálela nuevamente y recompile el código. Esta vez, su código se compilará correctamente.

Para descargar el código, hacer clic aquí.

Paso 8: Montaje del circuito

Ahora que nuestra aplicación está lista y es completamente funcional, veamos cómo conectamos el circuito a la computadora.

  1. En primer lugar, tome una centralita y conecte todos los enchufes del sistema informático, es decir, monitor, impresora, CPU, fuente de alimentación, etc.
  2. Ahora tome el interruptor de conexión de esta placa y haga un corte entre el cable para que dos cables, negro y rojo, sean visibles desde el interior.
  3. Saque el cable rojo y córtelo por la mitad. Conecte un extremo del cable en el punto NO del módulo de relé y el otro extremo en el punto COM del punto de relé. (no hagas nada con el cable negro)
  4. Ahora fije el ESP32 en la placa de pruebas y enciéndalo con una batería de 5V. Conecte el Vcc y la tierra del módulo de relé en la placa de pruebas, con los terminales positivo y negativo de la batería.
  5. Realice la siguiente configuración con el transistor en la placa de pruebas.

Paso 9: Código

El código es bastante simple, pero aún así, se explica brevemente a continuación.

1. Al principio, se incluyen dos bibliotecas para que firebase se pueda usar con ESP32.

#include #include

2. Luego, se proporciona información sobre su base de datos de base de fuego y la conexión Wifi y se declara el pin de ESP que se utilizará con el módulo de relé.

#define FIREBASE_HOST 'xxxxx' // reemplácelo con su host de base de fuego #define FIREBASE_AUTH 'xxxxx' // reemplácelo con su auth de base de fuego #define WIFI_SSID 'xxxxx' // reemplace esto con su SSID de WIFI #define WIFI_PASSWORD 'xxxxx' // reemplácelo con su contraseña wifi int swi = 34; // conecta el pin 34 del ESP con el módulo de relé

3. configuración vacía () es una función que se ejecuta solo una vez cuando se enciende el circuito o se presiona el botón Habilitar. Aquí el código está escrito para conectar la placa ESP a la WIFI. El pin del ESP que se utiliza con el módulo de relé también se declara aquí como SALIDA.

configuración vacía () {Serial.begin (115200); pinMode (swi, SALIDA); // conectarse a wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('conectando'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); retraso (500); } Serial.println (); Serial.print ('conectado:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

4. bucle vacío () es una función que se ejecuta repetidamente en un bucle. Aquí, se lee el valor de la base de fuego. Si este valor es igual a “1”, entonces la señal ALTA se enviará al módulo de relé y la computadora se encenderá. Cuando este valor sea “0”, la computadora se apagará.

void loop () {// leer valor if (Firebase.getFloat ('switch') == 1) {digitalWrite (swi, HIGH); } else {digitalWrite (swi, LOW); } // manejar el error if (Firebase.failed ()) {Serial.print ('configuración / número fallido:'); Serial.println (Firebase.error ()); regreso; } retraso (1000); }