Cours:NanoPi : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(NodeHat Oled)
 
(28 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
Informations sur la carte nanopi neo2
  
 
*https://www.armbian.com/nanopi-neo-2/
 
*https://www.armbian.com/nanopi-neo-2/
Ligne 7 : Ligne 8 :
 
*http://wiki.friendlyarm.com/wiki/index.php/WiringNP:_NanoPi_NEO/NEO2/Air_GPIO_Programming_with_C
 
*http://wiki.friendlyarm.com/wiki/index.php/WiringNP:_NanoPi_NEO/NEO2/Air_GPIO_Programming_with_C
 
*https://www.balena.io/etcher/ : créer une carte sd à partir d'une image
 
*https://www.balena.io/etcher/ : créer une carte sd à partir d'une image
 +
 
*http://wiki.friendlyarm.com/wiki/index.php/NanoHat_OLED : référence NanoHat OLED
 
*http://wiki.friendlyarm.com/wiki/index.php/NanoHat_OLED : référence NanoHat OLED
 +
*http://wiki.friendlyarm.com/wiki/index.php/BakeBit_-_NanoHat_Hub : référence NanoHat Hub
  
  
Ligne 33 : Ligne 36 :
  
 
script à venir ... peut-être !
 
script à venir ... peut-être !
 +
 +
*sur la carte nanoPi
 +
**apt-get build-dep qt5-default
 +
*sur le pc
 +
**apt install libicu-dev
  
 
==NodeRed==
 
==NodeRed==
Ligne 74 : Ligne 82 :
 
* Installation dans NodeRed
 
* Installation dans NodeRed
  
Le plus simple est d'utiliser la bibliothèque Python.
+
Depuis NodeRed, pour utiliser l'écran, le plus simple est de passer par la bibliothèque Python.
  
 
Il est donc nécessaire d'ajouter la palette [https://flows.nodered.org/node/node-red-contrib-python-function node-red-contrib-python-function] :
 
Il est donc nécessaire d'ajouter la palette [https://flows.nodered.org/node/node-red-contrib-python-function node-red-contrib-python-function] :
Ligne 81 : Ligne 89 :
  
 
=Utilisation=
 
=Utilisation=
 +
 +
==Réseaux==
 +
 +
* Les cartes Nanopi obtiennent comme adresse IP 10.98.9.XX avec XX=49+numéro de la carte, par exemple
 +
** carte n°11 -> Ip=10.98.9.60
 +
 +
* Broker '''MQTT''' graphique : http://shiftr.io
 +
** LPiot :
 +
*** https://shiftr.io/geii-troyes/lp-iot
 +
*** user : 1aa02488
 +
*** password : 45ade33185a98624
 +
 +
* Broker '''MQTT''' local : 10.98.9.20
  
 
==Qt==
 
==Qt==
Ligne 88 : Ligne 109 :
 
==NodeRed==
 
==NodeRed==
  
*tableau correspondance gpio <=> broche : gpio readall
+
* Lancer NodeRed :
*choisir "Pi Type" : "NanoPi Neo"
+
<source lang=bash>
*choisir la broche dans le menu déroulant
+
node-red
 +
</source>
 +
 
 +
* Accèder à NodeRed :
 +
** dans un navigateur, ouvrir la page 'http://ip-du-serveur:1880'
 +
 
 +
* Accéder à une broche :
 +
** tableau correspondance gpio <=> broche : gpio readall
 +
** choisir "Pi Type" : "NanoPi Neo"
 +
** choisir la broche dans le menu déroulant
 +
 
 +
* Lire la température du processeur :
 +
** en lisant le contenu du fichier '/sys/class/thermal/thermal_zone0/temp' (utiliser un ''node'' tout fait)
  
 
==NodeHat Oled==
 
==NodeHat Oled==
  
* Créer un nœud "python-function" :
+
* Créer un ''node'' '''python-function''' :
** Il faut ajouter le chemin vers le dossier contenant la lib python de l'oled
+
** Il faut ajouter le chemin vers le dossier contenant la lib python de l'écran
 
** le ''payload'' du message est accessible par '''msg["payload"]'''
 
** le ''payload'' du message est accessible par '''msg["payload"]'''
** Exemple de code affichant le ''payload'' (paramètre d'entrée du nœud) sur l'écran :
+
** Exemple de code affichant le ''payload'' (paramètre d'entrée du ''node'') sur la première ligne de l'écran :
 
<source lang=Python>
 
<source lang=Python>
 
import sys
 
import sys
sys.path.append('/root/NanoHatOLED/BakeBit/Software/Python)
+
sys.path.append('/root/NanoHatOLED/BakeBit/Software/Python) # Chemin du dossier de la lib
 
import bakebit_128_64_oled as oled
 
import bakebit_128_64_oled as oled
  
Ligne 113 : Ligne 146 :
 
return msg
 
return msg
 
</source>
 
</source>
 +
* S'inspirer des codes donnés dans le dossier python de la lib [https://github.com/friendlyarm/NanoHatOLED.git NanoHatOLED.git]
 +
 +
=interfaces=
 +
==i2c==
 +
utiliser l'utilitaire npi-config pour activer/désactiver l'i2c
 +
 +
===i2c0===
 +
accessible sur le connecteur 24 broches
 +
 +
*scl : broche 5
 +
*sda : broche 3
 +
===i2c1===
 +
accessible sur le connecteur 12 broches (audio + usb)
 +
 +
il faut désactiver l'interface i2s (broches partagées)
 +
 +
*scl : broche 8 (LRCK)
 +
*sda : broche 9 (BCK)
 +
 +
===i2c2===
 +
{{Rouge|!! non accessible !!}}

Version actuelle datée du 14 juin 2021 à 15:10

Informations sur la carte nanopi neo2


Installation

image et installation minimum

apt update / apt dist-upgrade
apt install build-essential apt-utils
apt install mosquitto-clients
apt install aptitude htop
apt remove modemmanager

cross QT

As usual !

  • get Sysroot
  • get qtSource
  • compilation
  • upload

script à venir ... peut-être !

  • sur la carte nanoPi
    • apt-get build-dep qt5-default
  • sur le pc
    • apt install libicu-dev

NodeRed

  • installation nodered
apt update
apt install curl
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
//ne pas installer Pi nodes
npm install node-red-contrib-opi-gpio

NanoHat Oled

Shield avec écran et trois boutons poussoir.

Documentation  : http://wiki.friendlyarm.com/wiki/index.php/NanoHat_OLED

  • Installation du code support :
git clone https://github.com/friendlyarm/NanoHatOLED.git
cd NanoHatOLED/BakeBit/Script
./install.sh

Des exemples de code C et Python d'utilisation de l'écran sont consultable dans les dossiers

NanoHatOLED/BakeBit/Software/C
NanoHatOLED/BakeBit/Software/Python
  • Installation dans NodeRed

Depuis NodeRed, pour utiliser l'écran, le plus simple est de passer par la bibliothèque Python.

Il est donc nécessaire d'ajouter la palette node-red-contrib-python-function :

-> Suivre la même procédure que dans la section NodeRed.

Utilisation

Réseaux

  • Les cartes Nanopi obtiennent comme adresse IP 10.98.9.XX avec XX=49+numéro de la carte, par exemple
    • carte n°11 -> Ip=10.98.9.60
  • Broker MQTT local : 10.98.9.20

Qt

  • Configurer QtCreator

NodeRed

  • Lancer NodeRed :
node-red
  • Accéder à une broche :
    • tableau correspondance gpio <=> broche : gpio readall
    • choisir "Pi Type" : "NanoPi Neo"
    • choisir la broche dans le menu déroulant
  • Lire la température du processeur :
    • en lisant le contenu du fichier '/sys/class/thermal/thermal_zone0/temp' (utiliser un node tout fait)

NodeHat Oled

  • Créer un node python-function :
    • Il faut ajouter le chemin vers le dossier contenant la lib python de l'écran
    • le payload du message est accessible par msg["payload"]
    • Exemple de code affichant le payload (paramètre d'entrée du node) sur la première ligne de l'écran :
import sys
sys.path.append('/root/NanoHatOLED/BakeBit/Software/Python) # Chemin du dossier de la lib
import bakebit_128_64_oled as oled

oled.init()
oled.clearDisplay()
oled.setNormalDisplay()
oled.setPageMode()

oled.setTextXY(0,0)
oled.putString(msg["payload"])

return msg
  • S'inspirer des codes donnés dans le dossier python de la lib NanoHatOLED.git

interfaces

i2c

utiliser l'utilitaire npi-config pour activer/désactiver l'i2c

i2c0

accessible sur le connecteur 24 broches

  • scl : broche 5
  • sda : broche 3

i2c1

accessible sur le connecteur 12 broches (audio + usb)

il faut désactiver l'interface i2s (broches partagées)

  • scl : broche 8 (LRCK)
  • sda : broche 9 (BCK)

i2c2

!! non accessible !!