Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
La HiFive1 es la primera placa basada en RISC-V compatible con Arduino construida con CPU FE310 de SiFive. La placa es aproximadamente 20 veces más rápida que Arduino UNO, pero al igual que la placa UNO, carece de conectividad inalámbrica.
Afortunadamente, existen varios módulos económicos en el mercado para mitigar esta limitación. En este tutorial utilicé un ESP32 o un ESP8266 para obtener conectividad inalámbrica. A pesar de lo barato que es el ESP-01, debido a la necesidad de programarlo con un boceto de Arduino, el ESP-01 fue una solución menos práctica. Para programar el ESP-01, se necesita un adaptador USB a ESP-01 externo que no tenía al momento de realizar este tutorial. (Si está interesado en usar un HiFive1 con el ESP-01, siga este enlace) También contemplé el uso de un Arduino Shield, pero terminé quedándome con el ESP8266 / 32 debido al precio relativamente caro que tienen la mayoría de los escudos.
Este proyecto se enfocará en la creación de un Sistema de Detección de Intrusos que operará enviando una notificación a MQTT Broker cada vez que el sensor ultrasónico (SRF05) detecte un objeto que cruce su línea de visión.
Materiales necesarios para este proyecto:
- Placa HiFive1 (se puede comprar aquí)
- Módulo de desarrollo ESP32 o ESP8266 NodeMCU 1.0
- Resistencia de 10k x 2
- Resistencia de 1k
- Tablero de circuitos
- cable de puente x 6
- Módulo ultrasónico SRF05
- Dispositivo móvil
Paso 1: Configurar el entorno
Instale el IDE de Arduino
1. Siga las instrucciones para instalar el paquete Arduino de la placa HiFive1 y el controlador USB.
2. Instale el paquete de la placa ESP32 o ESP8266 agregando una URL adecuada en "Archivo-> Preferencias-> Administrador de placas adicionales":
- ESP8266 -
- ESP32:
Paso 2: cableado del ESP32
Si está utilizando un ESP8266, vaya al paso 3.
Importante: El SRF05 viene en 2 versiones de pinout que son versiones duplicadas entre sí, asegúrese de tener el mismo módulo que el mío usando el enlace a continuación.
Para obtener más detalles técnicos sobre el SRF05, siga este enlace.
GND (HiFive1) -> GND (SRF05) 5v (HiFive1) -> VCC (SRF05) DI / O 11 (HiFive1) -> Pin de disparo (SRF05) DI / O 12 (HiFive1) -> Pin de eco (SRF05) DI / O 5 (HiFive1) -> Tx (ESP32) DI / O 6 (HiFive1) -> Rx (ESP32)
Nota: asegúrese de que el puente IOREF esté configurado en 3.3v.
Paso 3: cableado del ESP8266
Importante: El SRF05 viene en 2 versiones de pinout que son versiones duplicadas entre sí, asegúrese de tener el mismo módulo que el mío usando el enlace a continuación.
Para obtener más detalles técnicos sobre el SRF05, siga este enlace
GND (HiFive1) -> GND (SRF05) 5v (HiFive1) -> VCC (SRF05) DI / O 11 (HiFive1) -> Pin de disparo (SRF05) DI / O 12 (HiFive1) -> Pin de eco (SRF05) DI / O 5 (HiFive1) -> Tx (ESP8266) DI / O 6 (HiFive1) -> Rx (ESP8266)
Nota: asegúrese de que el puente IOREF esté configurado en 3.3v.
Paso 4: programación
Código HiFive1:
Antes de programar, configure "Tools-> Board" en HiFive1, "Tools-> CPU Clock Frequency" en "256MHz PLL", "Tools-> Programmer" en "SiFive OpenOCD" y se selecciona el puerto serie correcto.
También necesitará descargar esta biblioteca ultrasónica y este PubSubClient y extraerlos en su carpeta de bibliotecas Arduino que se encuentra en "Usuario-> Documentos-> Arduino-> Bibliotecas".
ESP32 / 8266 Código:
Durante la programación, la placa ESP debe tener los pines Rx y Tx del hardware desconectados. Después de que el código se cargó con éxito, vuelva a cablear los pines Rx y Tx en el ESP para asegurar la comunicación entre el HiFive1 y el ESP.
Para ESP32: establezca "Herramientas-> Placa" en "Módulo de desarrollo ESP32", "Herramientas-> Programador" en "AVRISP mkll" y seleccione el puerto serie correcto.
Para ESP8266 - Establezca "Herramientas-> Placa" en "NodeMCU 1.0 (Módulo ESP-12E)", "Herramientas-> Programador" en "AVRISP mkll" y seleccione el puerto serie correcto.
El código de boceto se tomó prestado de aquí con modificaciones para convertirlo en un sistema de detección de intrusos.
Paso 5: Configurar el cliente
Usé un MQTT Broker basado en la nube (este) y un teléfono Android con esta aplicación.
Para configurar todo, deberá abrir una cuenta.
Utilice las capturas de pantalla proporcionadas para configurar CloudMQTT y la aplicación.
Paso 6: Resultado final
Nota: Debe establecer la velocidad en baudios de su monitor en serie en 115200, ya que es la velocidad en baudios que usamos en nuestro esquema.
Su resultado final debe ser similar a las capturas de pantalla finales.