Como desarrollador Node.js, probablemente esté impaciente por poner sus habilidades de JavaScript más allá del navegador o el servidor, para sumergirse en el mundo del control de hardware con Raspberry Pi GPIOS. Si este es el caso, ¡estás en el lugar correcto!
Este artículo es la tercera parte de nuestra serie, siguiendo una guía para ver sus datos de Raspberry Pi en Arduino Cloud | La Parte I y el Python controlan su Raspberry Pi GPIO en la nube de Arduino usando Python | Parte II, que introdujo la gestión de GPIO. Ahora, es hora de explorar cómo Node.js puede ser su puente hacia el control de Raspberry Pi GPIOS, una tarea fundamental en el desarrollo de IoT. Ya sea que reduzca los LED, los sensores de lectura o el control de retransmisión, Node.js ofrece herramientas y flexibilidad para que esto suceda de manera transparente.
Pero el IoT no es solo para administrar el equipo localmente. Los proyectos reales de IoT requieren Paneles distantes Esto le permite visualizar los datos en tiempo real y dispositivos históricos y de control desde cualquier lugar. Con Nube arduinoPuedes hacer todo esto con facilidad.
¡Bucear y ver cómo puede obtener sus habilidades para ir al nivel superior con Node.js y la nube Arduino!
Configuración de Raspberry Pi Basic GPIO
En este artículo, presentamos un ejemplo simple pero completo para demostrar el poder de la nube Arduino. Aprenderá a usar un tablero de nubes de Arduino para controlar y monitorear GPIOS digitales desde su Raspberry Pi de forma remota. Más específicamente, cubriremos cómo:
- Gire un LED conectado a su Raspberry Pi y desactivó.
- Detecte cuándo se presiona un botón Push conectado a su Raspberry Pi.
- Visualice los valores históricos e reales de una variable completa.
Para comenzar, conecte un LED y un botón de presentación a su Raspberry Pi como se ilustra en el diagrama a continuación.
Es una configuración muy simple. Ahora que tenemos todo listo, ¡comencemos!
Crea el dispositivo y la cosa en Arduino Cloud
Para enviar sus datos de Raspberry Pi a Arduino Cloud, debe seguir estos simples pasos:
1. Configure un Cuenta de nube arduino Si no tuvieras antes.
2. Crea tu dispositivo como un dispositivo manual.
Nota: Tenga en cuenta su identificador del dispositivo y el secreto, porque lo necesitaremos más tarde.
3. Crea tu Cosa Y agregue sus variables.
En el ejemplo indicado en este artículo de blog, utilizamos las siguientes tres variables:
- test_value: Utilizaremos toda esta variable para mostrar un valor completo generado periódicamente en nuestra aplicación Raspberry Pi en nuestro panel de control de Cloudino.
- botón: Utilizaremos esta variable booleana para enviar información a la nube cuando se presione el botón Push.
- dirigido: Utilizaremos esta variable booleana para encender y desactivar el LED desde el tablero Arduino Cloud.
Crea una nube Arduino panel Para la visualización de datos:
- Crear un widget de interruptor (nombre: LED) y un widget LED (nombre: LED) y enlaces dirigido variable.
- Cree un widget gráfico (nombre: valor de evolución) y un widget de valor (nombre: valor) y enléelo al test_value variable.
- Crear un botón Push (nombre: botón Push) y un widget de estado (nombre: botón) y vincularlos a botón variable.
Con el tablero, puedes:
- Compartir y desactivar el LED usando el widget del interruptor
- Visualizar el estado del LED con el widget LED
- Visualizar el valor en tiempo real de la variable test_value con el widget de valor
- Visualizar la evolución a lo largo del tiempo de la variable test_value Con el widget gráfico
- Visualice en los widgets de botón y botón cuando el botón Push se ha apoyado en la tarjeta
Nota: Puede encontrar información más detallada sobre el proceso completo de nuestra documentación guía.
Programe tu dispositivo IoT usando node.js
Ahora es el momento de desarrollar su nodo.j.
Const gpioD = request (‘nodo-libgpiod’); Const {arduoiniotcloud} = require (‘arduino-iiot-js’); Const {Device_id, Secret_Key} = require (‘./ Independes’); // Cambiar estas líneas en función de la configuración de su const gpiochip = ‘gpiochip4’; Const led = 14; // gpio14, pin 8 botón const = 15; // GPIO15, PIN 10 // Asegúrese de que estas variables sean globales. De lo contrario, no funcionarán correctamente dentro del chip para temporizadores = nuevo GPIOD.CHIP (GPIOCHET); Ledline = chip.getline (LED); Buttonline = chip.getline (botón); Ledline.RequestoutputMode (“GPIO-Busic”); // Para configurar el sesgo de pull-up, use 32 en lugar de gpiod.lineflags.gpiod_line_request_flag_bias_pull_up si no se define el botón.RequestInputModeFlags (“GPIO-BASIC”, GPIOD.LINEFLAGS.GPIOD_LINE_REQUEST_FLAG_BIAS_PULL); Dejar al cliente; // Esta función se realiza cada 1.0 segundos, cuestiona el valor // del botón y envía los datos al Arduino Cloud ReadButton (Customer) {Let Button = Button.getValue ()? Verdadero: falso; If (cliente) Cliente. Console.log (“PollButton:”, botón); } // Esta función se realiza cada 10.0 segundos, obtiene un número aleatorio // entre 0 y 100 y envía los datos al Arduino ReadValue (Customer) {LET Value = Math.Floor (Math.Random () * 101); If (cliente) Cliente. Console.log (“Pollvalue”, valor); } // Esta función se realiza cada vez que la función variable “LED” modifica Onledchanged (LED) {Ledline.SetValue (LED? 1: 0); Console.log (“¡Cambio de LED! El estado es:”, LED); } // Cree una conexión en la nube Arduino (async () => {try {customer = Wait ArduinoiotCloud.Connect ({DeviceId: Device_ID, SecretKey: Secret_Key, OnDisconnect: (Message) => Console.error (Message),}); Cliente; // Valor de la encuesta cada 10 segundos const pollvalue = setInterval (() => {readValue (cliente);}, 10000); // botón de votación cada 1 segundos const pollButton = setInterval (() => {readButton (cliente);}, 1000);
Crea un archivo llamado creación de habilidades.js Con su dispositivo e identificador secreto.
Módulo de exportación = {dispositivo_id: ’09d3a634-e1ad-4927-9da0-dde663f8e5c6′, secret_key: ‘ixd3u1s37qpJxlzmp5’};
Este código es compatible con todos los modelos Raspberry Pi y también debe funcionar en cualquier máquina basada en Linux. Solo asegúrese de especificar el GPIOCHET correcto y configurar las líneas GPIO apropiadas en el extracto de código a continuación:
Const gpiochip = ‘gpiochip4’; Const led = 14; // gpio14, pin 8 botón const = 15; // GPIO15, pin 10
Para obtener más información sobre el proyecto, consulte los detalles sobre Centro de proyectos. Puede encontrar el código completo y los recursos adicionales en el Repositorio de Github. Además, no se pierda la guía completa de JavaScript + Arduino en lo que sigue artículo.
Comience con Arduino Cloud gratis
Conecte su Raspberry a Arduino Cloud con Node.js es increíblemente simple. Simplemente Crea tu cuenta gratuitaY estás listo para comenzar. Arduino Cloud es gratuita y viene opcionalmente Características premium Para aún más flexibilidad y potencia.
Si está listo para simplificar la visualización de los datos y el control remoto para sus aplicaciones Raspberry Pi usando Node.js, Python o Node-Red, Arduino Cloud es la plataforma perfecta para explorar y elevar sus proyectos.
Para empezar Nube arduino!