Installation

Cette rubrique détaille les étapes pour mettre en place l’environnment de développement pour notre application.

🖮 Travail n° 1 : Préparation de la Raspberry Pi

  1. Préparer une Raspberry Pi conformément à ce qui est expliqué ici

Dans la suite de l’activité, vous utiliserez la Raspberry Pi en mode headless.

🖮 Travail n° 2 : Installation de NodeJS

Notre application s’appuie sur NodeJS.

NodeRED — que vous avez eu l’occasion de mettre en œuvre dans l’activité Prise en main de NodeRED et qui pourra vous servir dans ce projet — est également une application NodeJS.

Même si NodeJS en est actuellement à sa version 18.x LTS (LTS pour Long Time Support), le site officiel de NodeRED recommande d’utiliser la version 16x LTS (→ voir Supported Node versions link). C’est donc cette version que vous allez installer.

Pour cela, exécuter les instructions suivantes sur la Raspberry Pi :

sudo curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
sudo apt-get install -y nodejs
sudo apt-get install build-essential (1)
1 Installation d’un paquet qui peut être nécessaire lors d’installation de modules NodeJS supplémentaires qui nécessitent d’être recompilés sur la Raspberry Pi

Le site de NodeRED propose un script d’installation qui permet non seulement d’installer la dernière version de NodeRED mais également de mettre à jour/installer la version de NodeJS recommandée pour son utilisation (→ voir Running on Raspberry Pi link).

On pourra donc se contenter de l’exécuter pour installer les 2 logiciels dans la foulée :

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

.

🖮 Travail n° 3 : Initialisation de l’application

L’initialisation de l’application se fait par l’intermédiaire du gestionnaire de paquets propre à NodeJS (→ npm) :

  1. Créer un répertoire pour l’application — que l’on nommera njs-lyreduino-- dans le répertoire /home/pi/Documents et s’y déplacer

    mkdir ~/Documents/njs-lyreduino & cd ~/Documents/njs-lyreduino
  2. Initialiser l’application en répondant aux questions de l’assistant

    npm init
    Exemple de réponses fournies à l’assistant
    pi@raspberrypi:~ $ mkdir ./Documents/njs-lyreduino && cd njs-lyreduino/
    pi@raspberrypi:~/Documents/njs-lyreduino $ npm init
    This utility will walk you through creating a package.json file.
    It only covers the most common items, and tries to guess sensible defaults.
    
    See `npm help init` for definitive documentation on these fields
    and exactly what they do.
    
    Use `npm install <pkg>` afterwards to install a package and
    save it as a dependency in the package.json file.
    
    Press ^C at any time to quit.
    package name: (njs-lyreduino)
    version: (1.0.0)
    description: Pilotage d'une lyre d'éclairage artisanale
    entry point: (index.js) app.js
    test command:
    git repository:
    keywords: servomotor, neopixel, web dashboard
    author: BTS SN1 Lycée Alphonse Benoit
    license: (ISC)
    
    About to write to /home/pi/Documents/njs-lyreduino/package.json:
    
    {
    "name": "njs-lyreduino",
    "version": "1.0.0",
    "description": "Pilotage d'une lyre d'éclairage artisanale",
    "main": "app.js",
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [
    "servomotor",
    "neopixel",
    "web",
    "dashboard"
    ],
    "author": "BTS SN1 Lycée Alphonse Benoit",
    "license": "ISC"
    }
    
    
    Is this OK? (yes) yes
    npm notice
    npm notice New minor version of npm available! 8.1.2 -> 8.3.0
    npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.3.0
    npm notice Run npm install -g npm@8.3.0 to update!
    npm notice
    pi@raspberrypi:~/Documents/njs-lyreduino $

🖮 Travail n° 4 : Installation du module Express

L’installation du cadre applicatif Express se fait simplement avec la commande suivante :

npm install express --save
Détails de l’installation du module
pi@raspberrypi:~/Documents/njs-lyreduino $ npm install express --save

added 50 packages, and audited 51 packages in 22s

2 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
pi@raspberrypi:~/Documents/njs-lyreduino $

🞄  🞄  🞄