Node.js
Blink con Node.js en Raspberry Pi OS
Extra Angular CLINode. js es un entorno de programación creado por Ryan Dahl en el 2009. Su principal objetivo, ha sido, ser de utilidad en la creación de programas de red altamente escalables.
Como experimentación, instalaremos node.js y lo utilizaremos para controlar un led mediante los pines GPIO, pero node.js posee otras utilidades como realizar aplicaciones de red en tiempo real.
Node.js® is an open-source, cross-platform JavaScript runtime environment
Instalación--Install:
Necesitamos ser Super Usuarios para realizar la sencilla instalación, para ello abriremos la Terminal e introducimos--We need be Super User:
sudo su
Una vez seamos Super Usuarios introducimos--Type:
LTS Version:
VER=20
curl -sL https://deb.nodesource.com/setup_${VER}.x | bash -
exit
Ultima versión-Latest:
VER=21
curl -sL https://deb.nodesource.com/setup_${VER}.x | bash
exit
Una vez que ha terminado este proceso, nos indicará como instalar nodejs y npm--Once done, install nodejs & npm:
sudo apt-get install -y nodejs
Verificamos la versión instalada con--Check node version:
node -v
Opcional--Optional:
sudo apt-get install gcc g++ make
Yarn package manager(Para ArchLinux)--Yarn package:
sudo su
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
nodejs 20.x
nodejs 21.x(Now)
Instalaremos el módulo npm on-off--Install node module on-off:
npm install onoff
Posteriormente crearemos un directorio que contendrá nuestro programa, entraremos en él y crearemos nuestro primer blink.js--We need create a directory for our app, enter to the creaated folder and make blibk.js file:
mkdir nodetest
cd nodetest
nano blink.js o mousepad blink.js o geany blink.js
Ustedes eligen cual desean usar e introducen el siguiente código--You choose which text editor use, nano or mousepad or geany:
Si hemos elegido crearlo con nano, lo guardaremos con Ctrl+x, Y, Enter--If you choose nano editor, save with Ctrl+x, Y, Enter.
Si hemos elegido crearlo con Mousepad o Geany,nos dirigimos a Archivo -> Guardar--If you choose Mousepad or Geany editor, just go to File--> Save.
Apagamos nuestra Raspberry Pi y realizamos las conexiones--Turn off your Raspberry Pi to make the connections.
A conectar!--Connect!
Materiales necesarios--We need:
2 Cables -- 2 Dupont Cables
Ley de Ohm:
La intensidad de corriente que atraviesa un circuito es directamente proporcional al voltaje o tensión del mismo e inversamente proporcional a la resistencia que presenta.--A law stating that electric current is proportional to voltage and inversely proportional to resistance.
Cómo calcular la resistencia adecuada para nuestro circuito--How to calculate correct resistor value:
Buscando en la hoja de datos del Led verde 5mm podemos observar que la (VF)tensión directa normal se encuentra en 2.1V, su (IF)Corriente de operación recomendada es de 20mA. Y que la (VS)tensión de alimentación brindada por los pines GPIO de la Raspberry Pi es de 3.3V. --Searching on the Green Led 5mm datasheet we can see the typical Forward Voltage (VF) is 2.1V, the Recommended Operating Current (IF Rec) is 20 mA. And the Voltage Source(VS) given by the Raspberry Pi Pin is 3.3V.
Y aplicando Ley de Ohm podremos calcular la Resistencia adecuada para dicho LED--Apply Ohm's Law:
Ahora que sabemos de cuánto debe ser nuestra resistencia, armamos el circuito--Now we know our resistor's value, lets make the circuit:
Una vez realizadas las conexiones, chequeamos 2 veces que hayamos realizado la conexión correctamente y alimentamos nuestra Raspberry Pi.--Once all connected, check twice, then power on Raspberry Pi.
Una vez iniciado Raspberry Pi OS abrimos la Terminal y ejecutamos nuestra app blink.js--Once boot up, open Terminal and launch our app:
node nodetest/blink.js
O nos metemos a la carpeta creada nodetest y ejecutamos blink.js--Or go to our folder nodetest and run the app:
cd nodetest
node blink.js
Fuente del tutorial: W3 Schools, pueden encontrar más ejemplos en esta nutrida web--Source W3 Schools.
Tutorial detallado en W3Schools, nodejs para Raspberry Pi especificamente--Detailed tutorial on W3Schools, nodej for Raspberry Pi:
Instalar Angular CLI(Opcional)--Install Angular CLI:
sudo npm install -g @angular/cli
Actualizamos npm a la versión que nos indica en el último mensaje, si es que nos avisa sobre una actualización, actualmente nos indica:
We will update npm to the latest version indicated on the end of message, if we are warning about an old version, now indicate:
sudo npm install -g npm@latest
Verificamos que todo funcione con un ejemplo inútil. Checking if all works with an useless example:
ng new foo
cd foo
sudo npm link @angular/cli
ng serve
Abrimos el navegador e ingresamos--Open browser and type:
http://localhost:4200/
Si deseamos indicar un puerto o direccion diferente(Ej:La IP de nuestra Raspberry Pi para acceder desde otro dispositivo en nuestra LAN)--If you want choose a different port or IP(Ex: Our Raspberry Pi IP to access from different device on our LAN):
ng serve --host 192.168.0.33 --port 4201
Abrimos nuestro navegador indicando el puerto 4200. Recordemos que podemos saber nuestra IP con el comando hostname -I. Now, we can open the browser with IP:4200. Remember we can know our IP from commandline through hostname -i command.