SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
Node.JS y RaspBerry Pi
     Meetup NodeJS Argentina
RaspBerry Pi
Arquitectura ARMv6 (Broadcom BCM2835, ARM1176JZF-S @700 Mhz)
256 (modelo A o B v1) / 512 Mb de RAM (modelo B v2)
Filesystem en tarjeta SD
Ethernet 10/100 Mbps (solo modelo B, el EC esta conectado via USB 2.0)
2 x USB 2.0 (1x USB 2.0 en el modelo A)
Video HD 1920 x 1080p @ > 30fps (Broadcom VideoCore IV)
Salidas de video HDMI, DSI (no existen displays soportados) y video compuesto
Conector CSI para camaras tipo celular. No existen cámaras soportadas por CSI. La
fundación está desarrollando una de 14 megapixels con lente fijo.
Salidas de audio digital via HDMI y analogica via PWM en conector jack stereo
Soporta protocolo CEC via HDMI
8 GPIO (4 GPIO extras en el Bv2), SPI (2 x multiplexado), I2C, UART (3V3)
Node.js en RaspBerry Pi
Los binarios de la última versión se pueden bajar de http:
//nodejs.org/dist/latest/ en formato .tar.gz
La recomendación es localizarlos en /usr/local/
En el caso de necesitar compilar Node.js se recomienda seguir la guia de Nathan Rajlich para cross
compiling http://n8.io/cross-compiling-nodejs-v0.8/

Algunos módulos necesitan tener instalado node-gyp.
Por lo cual es recomendable instalarlo con "sudo npm install node-gyp -g"


Existen módulos para acceder al GPIO.
Interface entre señales 3V3 y 5V
Acceso al GPIO via SYSFS
1. Exportar el pin 27 via IO via SYSFS
   sudo echo "27" > /sys/class/gpio/export
   al hacer esto aparece el directorio /sys/class/gpio/gpio27
2. Para definir el pin como entrada
   sudo echo "in" > /sys/class/gpio/gpio27/direction
   Para definir el pin como salida
   sudo echo "out" > /sys/class/gpio/gpio27/direction
3. Para invertir la señal en el pin
   sudo echo "1" > /sys/class/gpio/gpio27/active_low
4. Para establecer un estado en el pin
   sudo echo "1" > /sys/class/gpio/gpio27/value
5. Para leer un estado del pin
   sudo cat /sys/class/gpio/gpio27/value
6. Las interrupciones se manejan via poll() de value
WiringPi
WiringPi es similar al lenguaje Wiring de Arduino
Soporta los modulos GertBoard y PiFace.
Tiene mapeo de pins (BCM name, wiring like, pinout)
Tiene librerías para manejo de:
●   I2C
●   SPI
●   SoftPWM
●   Shift()
●   Serial Port
●   Interrupciones
●   LCD

Soporta multi-threading y mutex (mutual exclusions)
Utiliza /dev/mem (que es mas rapido) en lugar de SYSFS.
        Dado que el código tiene que correr como root es potencialmente más inseguro
Modulos para acceder al GPIO via Node.js
GpiO
     https://github.com/EnotionZ/GpiO
pi-gpio
     https://github.com/rakeshpai/pi-gpio
rpi-gpio
     https://github.com/JamesBarwell/rpi-gpio.js
node-wiringpi (wrapper de wiringPi incompleto)
     https://github.com/OhMeadhbh/node-wiringpi
rpi-gpiod (gpio via unix socket)
     https://blog.mayflower.de/2073-Using-GPIO-on-Raspberry-Pi.html
No se recomienda ejecutar como root si la RPi puede ser accedida desde internet. No se
recomienda node-wiringpi ya que debe ser corrido como root dado que wiringPi utiliza /dev/mem
para acceder al GPIO. Utilizar rpi-gpiod en su lugar.
Acceso al modulo 1wire via SYSFS
Cargar los modulos 1wire del kernel
   sudo modprobe w1-gpio
   sudo modprobe w1-therm

El sensor aparece en ls /sys/bus/w1/devices/
   ls -l /sys/bus/w1/devices
   28-000003b0d431 -> ../../../devices/w1_bus_master1/28-000003b0d431
   w1_bus_master1 -> ../../../devices/w1_bus_master1

El archivo w1_slave dentro del directorio del dispositivo
1wire contiene la información de la medición
   cat w1_slave
   87 01 4b 46 7f ff 09 10 48 : crc=48 YES
   87 01 4b 46 7f ff 09 10 48 t=24437

Si el CRC = YES la medición es correcta t = a la
temperatura en °C / 1000
Acceso al modulo 1wire desde Node.js
// Tom Holderness 03/01/2013
// Ref: www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/temperature
var fs = requiere('fs');

function readTemp(id,callback){
  fs.readFile(''/sys/bus/w1/devices/' + id + '/w1_slave'', function(err, buffer)
          {
     if (err){
        console.error(err);
        process.exit(1);
     }

    // Read data from file (using fast node ASCII encoding).
    var data = buffer.toString('ascii').split(" "); // Split by space

    // Extract temperature from string and divide by 1000 to give celsius
    var temp = parseFloat(data[data.length-1].split("=")[1])/1000.0;

    // Round to one decimal place
    temp = Math.round(temp * 10) / 10;

    // Add date/time to temperature
        var data = {
        temperature_record:[{
        unix_time: Date.now(),
        celsius: temp
        }]};

    // Execute call back with data
    callback(data);
  });
};

Weitere ähnliche Inhalte

Was ist angesagt?

Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3ALBERTO CHUICA
 
Comandos configuracion de redes
Comandos configuracion de redes Comandos configuracion de redes
Comandos configuracion de redes Darlin Diaz
 
Corrección del examen de sistemas informáticos
Corrección del examen de sistemas informáticosCorrección del examen de sistemas informáticos
Corrección del examen de sistemas informáticosPeque Uli
 
Practica nas andrei
Practica nas andreiPractica nas andrei
Practica nas andreicfgmi
 
Monica Gabriela Oliva Garcia
Monica Gabriela Oliva GarciaMonica Gabriela Oliva Garcia
Monica Gabriela Oliva Garciaskapunk
 
Comandos dispositivos
Comandos dispositivosComandos dispositivos
Comandos dispositivosJoan Diiz
 
T fase1 103380_a_grupo224
T fase1 103380_a_grupo224T fase1 103380_a_grupo224
T fase1 103380_a_grupo224Camilo Andres
 
Asegúr@IT II - Seguridad en VoiP
Asegúr@IT II - Seguridad en VoiPAsegúr@IT II - Seguridad en VoiP
Asegúr@IT II - Seguridad en VoiPChema Alonso
 
Recovery ios
Recovery iosRecovery ios
Recovery ios1 2d
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLLas Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLEDB
 
How To Install software on Ubuntu
How To Install software on UbuntuHow To Install software on Ubuntu
How To Install software on UbuntuNicolas Boettcher
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
 

Was ist angesagt? (20)

Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3
 
Comandos configuracion de redes
Comandos configuracion de redes Comandos configuracion de redes
Comandos configuracion de redes
 
Voice OVER IP
Voice OVER IPVoice OVER IP
Voice OVER IP
 
Asterix: simplemente...
Asterix: simplemente...Asterix: simplemente...
Asterix: simplemente...
 
Vlsm rip
Vlsm   rip  Vlsm   rip
Vlsm rip
 
Corrección del examen de sistemas informáticos
Corrección del examen de sistemas informáticosCorrección del examen de sistemas informáticos
Corrección del examen de sistemas informáticos
 
Practica nas andrei
Practica nas andreiPractica nas andrei
Practica nas andrei
 
Monica Gabriela Oliva Garcia
Monica Gabriela Oliva GarciaMonica Gabriela Oliva Garcia
Monica Gabriela Oliva Garcia
 
Comandos básicos
Comandos básicosComandos básicos
Comandos básicos
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Comandos dispositivos
Comandos dispositivosComandos dispositivos
Comandos dispositivos
 
T fase1 103380_a_grupo224
T fase1 103380_a_grupo224T fase1 103380_a_grupo224
T fase1 103380_a_grupo224
 
Asegúr@IT II - Seguridad en VoiP
Asegúr@IT II - Seguridad en VoiPAsegúr@IT II - Seguridad en VoiP
Asegúr@IT II - Seguridad en VoiP
 
Recovery ios
Recovery iosRecovery ios
Recovery ios
 
Reporte practica 7
Reporte practica 7Reporte practica 7
Reporte practica 7
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLLas Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQL
 
How To Install software on Ubuntu
How To Install software on UbuntuHow To Install software on Ubuntu
How To Install software on Ubuntu
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
 
Ejercicios de Subredes IP
Ejercicios de Subredes IPEjercicios de Subredes IP
Ejercicios de Subredes IP
 
Tema 2 dns
Tema 2 dnsTema 2 dns
Tema 2 dns
 

Andere mochten auch

Andere mochten auch (19)

Presentacion minecraft-pi SciPyLa2015
Presentacion minecraft-pi SciPyLa2015Presentacion minecraft-pi SciPyLa2015
Presentacion minecraft-pi SciPyLa2015
 
Raspberry pi & Python. UAC
Raspberry pi & Python. UACRaspberry pi & Python. UAC
Raspberry pi & Python. UAC
 
Jupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datosJupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datos
 
Programación con Pygame VI
Programación con Pygame VIProgramación con Pygame VI
Programación con Pygame VI
 
Programación con Pygame (II)
Programación con Pygame (II)Programación con Pygame (II)
Programación con Pygame (II)
 
Intro Pygame Capitulo 2
Intro Pygame Capitulo 2Intro Pygame Capitulo 2
Intro Pygame Capitulo 2
 
Programación con Pygame IX
Programación con Pygame IXProgramación con Pygame IX
Programación con Pygame IX
 
Intro pygamev2
Intro pygamev2Intro pygamev2
Intro pygamev2
 
Capitulo 4
Capitulo 4Capitulo 4
Capitulo 4
 
Programación con Pygame V
Programación con Pygame VProgramación con Pygame V
Programación con Pygame V
 
Programación con Pygame IV
Programación con Pygame IVProgramación con Pygame IV
Programación con Pygame IV
 
Programación con Pygame VII
Programación con Pygame VIIProgramación con Pygame VII
Programación con Pygame VII
 
Programación con Pygame VIII
Programación con Pygame VIIIProgramación con Pygame VIII
Programación con Pygame VIII
 
Intro PyGame Capitulo 1
Intro PyGame Capitulo 1Intro PyGame Capitulo 1
Intro PyGame Capitulo 1
 
Intro PyGame Capitulo 5
Intro PyGame Capitulo 5Intro PyGame Capitulo 5
Intro PyGame Capitulo 5
 
Transmisión de datos de temperatura por medio de red lan
Transmisión de datos de temperatura por medio de red lanTransmisión de datos de temperatura por medio de red lan
Transmisión de datos de temperatura por medio de red lan
 
Programación con Pygame III
Programación con Pygame IIIProgramación con Pygame III
Programación con Pygame III
 
Programación con Pygame I
Programación con Pygame IProgramación con Pygame I
Programación con Pygame I
 
Intro PygameCapitulo 3
Intro PygameCapitulo 3Intro PygameCapitulo 3
Intro PygameCapitulo 3
 

Ähnlich wie Node.js on Raspberry PI

Ajustes posteriores a la instalación de cent os 6
Ajustes posteriores a la instalación de cent os 6Ajustes posteriores a la instalación de cent os 6
Ajustes posteriores a la instalación de cent os 6Isaac Gómez M
 
Lw2010 Pedro Valera
Lw2010 Pedro ValeraLw2010 Pedro Valera
Lw2010 Pedro Valeraguestf280e2
 
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En RedesLw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redesguest5d7f33c
 
Trabajo IOS de CISCO
Trabajo IOS de CISCOTrabajo IOS de CISCO
Trabajo IOS de CISCOcyberleon95
 
VoIP con Asterisk Marzo 2010
VoIP con Asterisk Marzo 2010VoIP con Asterisk Marzo 2010
VoIP con Asterisk Marzo 2010Gabriel Astudillo
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, TALLER RESUELTO 1ra EVALUACIÓN (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, TALLER RESUELTO 1ra EVALUACIÓN (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, TALLER RESUELTO 1ra EVALUACIÓN (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, TALLER RESUELTO 1ra EVALUACIÓN (2019 2do ...Victor Asanza
 
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780Osvaldo Cantone
 
Configuracion de Firewalls e Pasarelas
Configuracion de Firewalls e PasarelasConfiguracion de Firewalls e Pasarelas
Configuracion de Firewalls e PasarelasMiguel Morales
 
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]RootedCON
 
Gobernar un microcontrolador desde la beagle board xm
Gobernar un microcontrolador desde la beagle board xmGobernar un microcontrolador desde la beagle board xm
Gobernar un microcontrolador desde la beagle board xmBiblioman Aquihayapuntes
 
Administración de red servidores y seguridad
Administración de red servidores y seguridadAdministración de red servidores y seguridad
Administración de red servidores y seguridadEmilio
 
Guía Laboratorio 6.pdf
Guía Laboratorio 6.pdfGuía Laboratorio 6.pdf
Guía Laboratorio 6.pdfAdaLpezCotrina
 
Microcontroladores: Tutorial de microcontrolador AVR desde 0
Microcontroladores: Tutorial de microcontrolador AVR desde 0Microcontroladores: Tutorial de microcontrolador AVR desde 0
Microcontroladores: Tutorial de microcontrolador AVR desde 0SANTIAGO PABLO ALBERTO
 
Hack like a pro with custom gadgets - Bitup2018
Hack like a pro with custom gadgets - Bitup2018Hack like a pro with custom gadgets - Bitup2018
Hack like a pro with custom gadgets - Bitup2018Alejandro Quesada
 
Seminario de arduino DeustoTech
Seminario de arduino DeustoTechSeminario de arduino DeustoTech
Seminario de arduino DeustoTechAdolfo García
 
¿Que falló en Playstation 3?
¿Que falló en Playstation 3?¿Que falló en Playstation 3?
¿Que falló en Playstation 3?GUEIM
 

Ähnlich wie Node.js on Raspberry PI (20)

Ajustes posteriores a la instalación de cent os 6
Ajustes posteriores a la instalación de cent os 6Ajustes posteriores a la instalación de cent os 6
Ajustes posteriores a la instalación de cent os 6
 
Lw2010 Pedro Valera
Lw2010 Pedro ValeraLw2010 Pedro Valera
Lw2010 Pedro Valera
 
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En RedesLw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
 
Trabajo IOS de CISCO
Trabajo IOS de CISCOTrabajo IOS de CISCO
Trabajo IOS de CISCO
 
VoIP con Asterisk Marzo 2010
VoIP con Asterisk Marzo 2010VoIP con Asterisk Marzo 2010
VoIP con Asterisk Marzo 2010
 
Redes
RedesRedes
Redes
 
Plantilla fase1
Plantilla fase1Plantilla fase1
Plantilla fase1
 
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, TALLER RESUELTO 1ra EVALUACIÓN (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, TALLER RESUELTO 1ra EVALUACIÓN (2019 2do ...⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, TALLER RESUELTO 1ra EVALUACIÓN (2019 2do ...
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, TALLER RESUELTO 1ra EVALUACIÓN (2019 2do ...
 
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
 
Configuracion de Firewalls e Pasarelas
Configuracion de Firewalls e PasarelasConfiguracion de Firewalls e Pasarelas
Configuracion de Firewalls e Pasarelas
 
Conexion wi fi_con_un_modulo_esp8266
Conexion wi fi_con_un_modulo_esp8266Conexion wi fi_con_un_modulo_esp8266
Conexion wi fi_con_un_modulo_esp8266
 
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
 
Gobernar un microcontrolador desde la beagle board xm
Gobernar un microcontrolador desde la beagle board xmGobernar un microcontrolador desde la beagle board xm
Gobernar un microcontrolador desde la beagle board xm
 
Administración de red servidores y seguridad
Administración de red servidores y seguridadAdministración de red servidores y seguridad
Administración de red servidores y seguridad
 
Guía Laboratorio 6.pdf
Guía Laboratorio 6.pdfGuía Laboratorio 6.pdf
Guía Laboratorio 6.pdf
 
Memorias
MemoriasMemorias
Memorias
 
Microcontroladores: Tutorial de microcontrolador AVR desde 0
Microcontroladores: Tutorial de microcontrolador AVR desde 0Microcontroladores: Tutorial de microcontrolador AVR desde 0
Microcontroladores: Tutorial de microcontrolador AVR desde 0
 
Hack like a pro with custom gadgets - Bitup2018
Hack like a pro with custom gadgets - Bitup2018Hack like a pro with custom gadgets - Bitup2018
Hack like a pro with custom gadgets - Bitup2018
 
Seminario de arduino DeustoTech
Seminario de arduino DeustoTechSeminario de arduino DeustoTech
Seminario de arduino DeustoTech
 
¿Que falló en Playstation 3?
¿Que falló en Playstation 3?¿Que falló en Playstation 3?
¿Que falló en Playstation 3?
 

Node.js on Raspberry PI

  • 1. Node.JS y RaspBerry Pi Meetup NodeJS Argentina
  • 2. RaspBerry Pi Arquitectura ARMv6 (Broadcom BCM2835, ARM1176JZF-S @700 Mhz) 256 (modelo A o B v1) / 512 Mb de RAM (modelo B v2) Filesystem en tarjeta SD Ethernet 10/100 Mbps (solo modelo B, el EC esta conectado via USB 2.0) 2 x USB 2.0 (1x USB 2.0 en el modelo A) Video HD 1920 x 1080p @ > 30fps (Broadcom VideoCore IV) Salidas de video HDMI, DSI (no existen displays soportados) y video compuesto Conector CSI para camaras tipo celular. No existen cámaras soportadas por CSI. La fundación está desarrollando una de 14 megapixels con lente fijo. Salidas de audio digital via HDMI y analogica via PWM en conector jack stereo Soporta protocolo CEC via HDMI 8 GPIO (4 GPIO extras en el Bv2), SPI (2 x multiplexado), I2C, UART (3V3)
  • 3. Node.js en RaspBerry Pi Los binarios de la última versión se pueden bajar de http: //nodejs.org/dist/latest/ en formato .tar.gz La recomendación es localizarlos en /usr/local/ En el caso de necesitar compilar Node.js se recomienda seguir la guia de Nathan Rajlich para cross compiling http://n8.io/cross-compiling-nodejs-v0.8/ Algunos módulos necesitan tener instalado node-gyp. Por lo cual es recomendable instalarlo con "sudo npm install node-gyp -g" Existen módulos para acceder al GPIO.
  • 5. Acceso al GPIO via SYSFS 1. Exportar el pin 27 via IO via SYSFS sudo echo "27" > /sys/class/gpio/export al hacer esto aparece el directorio /sys/class/gpio/gpio27 2. Para definir el pin como entrada sudo echo "in" > /sys/class/gpio/gpio27/direction Para definir el pin como salida sudo echo "out" > /sys/class/gpio/gpio27/direction 3. Para invertir la señal en el pin sudo echo "1" > /sys/class/gpio/gpio27/active_low 4. Para establecer un estado en el pin sudo echo "1" > /sys/class/gpio/gpio27/value 5. Para leer un estado del pin sudo cat /sys/class/gpio/gpio27/value 6. Las interrupciones se manejan via poll() de value
  • 6. WiringPi WiringPi es similar al lenguaje Wiring de Arduino Soporta los modulos GertBoard y PiFace. Tiene mapeo de pins (BCM name, wiring like, pinout) Tiene librerías para manejo de: ● I2C ● SPI ● SoftPWM ● Shift() ● Serial Port ● Interrupciones ● LCD Soporta multi-threading y mutex (mutual exclusions) Utiliza /dev/mem (que es mas rapido) en lugar de SYSFS. Dado que el código tiene que correr como root es potencialmente más inseguro
  • 7. Modulos para acceder al GPIO via Node.js GpiO https://github.com/EnotionZ/GpiO pi-gpio https://github.com/rakeshpai/pi-gpio rpi-gpio https://github.com/JamesBarwell/rpi-gpio.js node-wiringpi (wrapper de wiringPi incompleto) https://github.com/OhMeadhbh/node-wiringpi rpi-gpiod (gpio via unix socket) https://blog.mayflower.de/2073-Using-GPIO-on-Raspberry-Pi.html No se recomienda ejecutar como root si la RPi puede ser accedida desde internet. No se recomienda node-wiringpi ya que debe ser corrido como root dado que wiringPi utiliza /dev/mem para acceder al GPIO. Utilizar rpi-gpiod en su lugar.
  • 8. Acceso al modulo 1wire via SYSFS Cargar los modulos 1wire del kernel sudo modprobe w1-gpio sudo modprobe w1-therm El sensor aparece en ls /sys/bus/w1/devices/ ls -l /sys/bus/w1/devices 28-000003b0d431 -> ../../../devices/w1_bus_master1/28-000003b0d431 w1_bus_master1 -> ../../../devices/w1_bus_master1 El archivo w1_slave dentro del directorio del dispositivo 1wire contiene la información de la medición cat w1_slave 87 01 4b 46 7f ff 09 10 48 : crc=48 YES 87 01 4b 46 7f ff 09 10 48 t=24437 Si el CRC = YES la medición es correcta t = a la temperatura en °C / 1000
  • 9. Acceso al modulo 1wire desde Node.js // Tom Holderness 03/01/2013 // Ref: www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/temperature var fs = requiere('fs'); function readTemp(id,callback){ fs.readFile(''/sys/bus/w1/devices/' + id + '/w1_slave'', function(err, buffer) { if (err){ console.error(err); process.exit(1); } // Read data from file (using fast node ASCII encoding). var data = buffer.toString('ascii').split(" "); // Split by space // Extract temperature from string and divide by 1000 to give celsius var temp = parseFloat(data[data.length-1].split("=")[1])/1000.0; // Round to one decimal place temp = Math.round(temp * 10) / 10; // Add date/time to temperature var data = { temperature_record:[{ unix_time: Date.now(), celsius: temp }]}; // Execute call back with data callback(data); }); };