======== Orange PI =========
===== Site web =====
[[http://www.orangepi.org/|Orange Pi EN]]
[[http://www.orangepi.org/orangepiwiki/index.php/Main_Page|Wiki Orange PI EN]]
[[http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_2W|Orange_Pi_Zero_2W EN ]]
===== Orange PI zero =====
{{ :start:capture_d_ecran_du_2023-12-26_19-13-23.png?direct&600 |}}
=== Cablage ===
{{ :start:800px-zero2w-img7.png?direct&600 |}}
==== Methode pour charger une carte orange Pi zero ====
=== Prérequis pour l'installation ( absence de convertisseur USB<-> serie) ===
   -- 1 [[https://fr.aliexpress.com/item/1005005979335218.html?spm=a2g0o.store_pc_groupList.8148356.9.385f50adWapXXx&pdp_npi=4%40dis%21USD%21US%20%2415.48%21US%20%2410.97%21%21%2115.48%2110.97%21%402103868d17036149901124589e5d7d%2112000035335618950%21sh%21FR%210%21&gatewayAdapt=glo2fra|carte Orange PI zero 1Go]] ( pour serveur MQTT et node red )
   -- 1 carte sd >= 8 go  
   -- le logiciel https://www.balena.io/etcher/
   -- 1 PC sous windows ou linux 
   -- 1 adaptateur HDMI/mini HDMI
   -- 1 cable HDMI/HDMI
   -- 1 ecran HDMI 
   -- 1 clavier USB 
   -- 1 adaptateur USBC vers USB
   -- 1 [[https://drive.google.com/drive/folders/1Lnosr3bmdbG6F9RsDjY_RCLJl2zT4l61|logiciel pour l'OrangePI Zero serveur]]
   -- 1 alimentation 5V 2A  USBC ou directe sur les broches GPIO +5V et GND
=== Prérequis pour l'installation ( Avec un  convertisseur USB<-> serie) ===
   -- 1 [[https://fr.aliexpress.com/item/1005005979335218.html?spm=a2g0o.store_pc_groupList.8148356.9.385f50adWapXXx&pdp_npi=4%40dis%21USD%21US%20%2415.48%21US%20%2410.97%21%21%2115.48%2110.97%21%402103868d17036149901124589e5d7d%2112000035335618950%21sh%21FR%210%21&gatewayAdapt=glo2fra|carte Orange PI zero 1Go]] ( pour serveur MQTT et node red )
   -- 1 carte sd >= 8 go  
   -- le logiciel https://www.balena.io/etcher/
   -- 1 PC sous windows ou linux 
   -- 1 Convertisseur USB<->série 3.3V
   -- 1 [[https://drive.google.com/drive/folders/1Lnosr3bmdbG6F9RsDjY_RCLJl2zT4l61|logiciel pour l'OrangePI Zero serveur]]
   -- 1 alimentation 5V 2A  USBC ou directe sur les broches GPIO +5V et GND
=== Chargement ===
[[http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_2W#Method_to_burn_Linux_image_to_TF_card_based_on_Ubuntu_PC| Chargement sous ubuntu ]]
[[http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_2W#Method_of_burning_Linux_image_to_TF_card_based_on_Windows_PC | Chargement sous windows ]]
==== Connexion par le port serie ====
[[start:rasberry:orangepi:uart|Connexion serie Orangepi]]
===== Parametrage OrangePI zero =====
   -- Brancher l'ecran HDMI et le clavier sur l'adaptateur USBC /USB qui lui même est branche sur l USBC1, l'alimentation sur USBC0
   -- Demmarrer l'orange Pi zero 
   -- Sur l'ecran en mode terminal,  on visualise : **orangepi@orangepizero2w:~$** 
   -- On tape **sudo orangepi-config** !!!!Attention [[https://fr.wikipedia.org/wiki/QWERTY#/media/Fichier:KB_USA-standard.svg|clavier en qwerty]]!!!!
   -- On obtient une fenetre 
    {{ :start:capture_d_ecran_du_2023-12-26_19-44-24.png?direct&600 |}}
     
Dans "Personnal" on peut modifier la langue et son clavier en français
Dans "Network" , on peut parametrer le wifi ( SSID et mot de passe Wifi  de votre Box) 
Pour connaitre @IP de votre orangePI taper dans un terminal :
    ip a
    
si vous avez le wifi , cela sera de la forme :
{{ :start:capture_d_ecran_du_2023-12-27_11-37-20.png?direct&600 |}}
wlan0
inet = 192.168.1.xxx
si vous avez une connection Filaire ( carte fille ajoutée sur l'orangepi Zero )
enpxxxx
inet = 192.168.1.xxx
  
===== Se connecter en ssh =====
-1- Soit on utilise [[https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html|Putty]] 
-2- Soit on utilise le mode terminal sous linux ou sous windows10/11 ( PowerShell)
   ssh orangepi@IP   et ensuite on vous demande le mot de passe
   
   
===== On installe MQTT version Mosquitto pour Debian =====
[[https://fr.linux-console.net/?p=3592|Installer MQTT , Mosquitto sous Linux Debian  FR]]
=== Installation ===
Tout d'abord, mettez à jour et actualisez votre index de paquet Debian via la commande apt ci-dessous.
    sudo apt update -y
    sudo apt upgrade -y
Recherchez le package mosquitto à l'aide de la commande apt suivante.
    sudo apt search mosquitto
    
commande apt ci-dessous pour installer les packages Mosquitto
    sudo apt install -y  mosquitto mosquitto-clients
    
vérifiez le service Mosquitto via la commande systemctl suivante.
    sudo systemctl is-enabled mosquitto
    sudo systemctl status mosquitto
    
== Config Reseau pour connection anonyme ==
   sudo nano /etc/mosquitto/mosquitto.conf
   
Copier les 3 lignes ci-dessous à la fin du fichier mosquitto.conf
   
   #listerner 1883
   port 1883
   allow_anonymous true
   
Noubliez pas faire ctrl +o pour sauver, de valider avec Entrée, et de quitter avec ctrl + x        
    
=== Test MQTT ===
Exécutez la commande mosqitto_sub suivante pour recevoir des messages sur le sujet test sur le  premier terminal ( Terminal 1 )
    sudo mosquitto_sub -h localhost -t test
    
Ensuite, ouvrez une nouvelle session de terminal ( Terminal 2 )  de votre serveur et exécutez la commande mosquitto_pub suivante pour envoyer des messages au sujet test
    sudo mosquitto_pub -h localhost -t test -m "Hello from terminal 2"
    sudo mosquitto_pub -h localhost -t test -m "Hello from terminal 2 - Publisher"
    sudo mosquitto_pub -h localhost -t test -m "Hello"
Vous verrez alors les messages publiés via le mosquitto_pub sur le récepteur mosquitto_sub (Terminal 1), ce qui signifie que l'installation du serveur et du client Mosquitto a réussi.
{{ :start:capture_d_ecran_du_2023-12-27_11-33-50.png?direct&600 |}}
===== Installation de Node-Red ======
===Lien Web===
[[https://www.activpart.com/installer-node-red-lunux-debian/| Installer Node-Red sur Debian]]
=== Installer Nginx ===
[[https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04|Installer Nginx sous linux ]]
       sudo apt-get update
       sudo apt-get install nginx
       
=== npm -v Node.js ===
    sudo apt-get install nodejs
    
Test nodejs :
    node -v
=== Installation de npm ===
   
    sudo apt-get install npm
    
Test npm
    npm -v
    
=== Installer Node red ===
    sudo npm install -g --unsafe-perm node-red node-red-admin
    
 OU idem raspberry ( ok sur orangepi )
   bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
====Automatiser le démarrage====
Lançons maintenant Node-RED :
node-red-start
Avant de découvrir son interface, puisque nous allons utiliser Node-RED en domotique, nous voulons qu’il se lance automatiquement au démarrage de notre OrangePi.
Pour ce faire, nous avons besoin de cette commande :
sudo systemctl enable nodered.service
=== Installer un parfeux ( Firewall) ===
    sudo apt-get install ufw -y 
    
===Activer le pare feux ufw ===
   sudo ufw enable  
et ouvrir les ports sur l'Orangepi
   sudo ufw allow 1883
   sudo ufw allow 1880
   sudo ufw allow 22
   sudo ufw allow 443
afficher l'etat des regles du pare feux
   sudo ufw status verbose
   
Pour activer la journalisation du pare feux
   sudo ufw logging on 
   
Un reboot en mode terminal sur l'OrangePi 
   sudo shutdown -r now
   
=====Se connecter à Node-RED avec un navigateur=====
Nous en avons fini avec notre terminal et nous allons désormais utiliser une interface graphique avec notre navigateur préféré :
192.168.XX.XXX:1880 (@IP de votre Orange Pi) et creer un noeud MQTT in avec le l'@IP du serveur  MQTT et mettre "test" dans le sujet 
On doit avoir :
{{ :start:capture_d_ecran_du_2023-12-28_14-41-15.png?direct&200 |}}