Ouvrir un terminal
- user : osmc
- pass : osmc
Taper la commande :
connmanctl
Puis :
technologies
enable wifi
scan wifi
sgent on
services
Puis :
connect wifi_Something here_managed_psk
Puis exit et redémarrer le Raspberry.
Ouvrir un terminal
Taper la commande :
connmanctl
Puis :
technologies
enable wifi
scan wifi
sgent on
services
Puis :
connect wifi_Something here_managed_psk
Puis exit et redémarrer le Raspberry.
Pour compléter l’article sur la manière de créer un service sous Debian. Voici comment créer un service à partir d’une application NodeJS.
J’utilise forever. Pour l’installer, rien de plus simple avec NPM.
npm install -g forever
Je crée un répertoire dans lequel forever viendra écrire ses fichiers PID.
mkdir /var/run/forever
Voici maintenant le fichier de service :
#!/bin/sh # configure env export PATH=$PATH:/usr/local/bin export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules export SERVER_PORT=80 export SERVER_IFACE='0.0.0.0' # Chemin vers l'application APP_DIR=/var/app case "$1" in start) #exec forever --sourceDir=$APP_DIR -p /var/run/forever start -c "npm start" exec forever --sourceDir=$APP_DIR -p /var/run/forever start bin/www $APP_DIR ;; stop) exec forever stop --sourceDir=$APP_DIR bin/www ;; esac exit 0
Sources :
https://thomashunter.name/blog/running-a-node-js-process-on-debian-as-an-init-d-service
Voici quelques commandes pour prendre le contrôle de votre écran tactile.
Mettre à jour la framboise avant l’utilisation de l’écran :
sudo apt-get update sudo apt-get install --reinstall libraspberrypi0 libraspberrypi-{bin,dev,doc} raspberrypi-bootloader sudo reboot
Allumer ou éteindre le rétro-éclairage :
On:
echo 0 > /sys/class/backlight/rpi_backlight/bl_power
Off:
echo 1 > /sys/class/backlight/rpi_backlight/bl_power
Sources :
http://forums.pimoroni.com/t/official-7-raspberry-pi-touch-screen-faq/959
Pour la station météo, certains programmes doivent fonctionner en tache de fond. Pour cela on utilise des démons.
Dans mon exemple j’ai un script Python à lancer. Ce script est capable de fonctionner en mode autonome mais je souhaite l’intégrer au système. Mon service s’appelle « launcher ».
#!/bin/sh ### BEGIN INIT INFO # Provides: launcher # Required-Start: $remote_fs # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Run weathergh # Description: Run weatherg-hardware as daemon. ### END INIT INFO . /lib/lsb/init-functions [ -f /etc/default/rcS ] && . /etc/default/rcS PATH=/bin:/usr/bin:/sbin:/usr/sbin SCRIPT_DIR=/home/rep/ SCRIPT=script_a_lancer.py case "$1" in start) log_begin_msg "Running launcher" cd $SCRIPT_DIR python $SCRIPT --daemon log_end_msg 0 ;; stop) log_begin_msg "Stopping launcher" cd $SCRIPT_DIR python $SCRIPT --quit log_end_msg 0 ;; force-reload|restart) $0 stop $0 start ;; status) exit 0 ;; *) log_success_msg "Usage: /etc/init.d/launcher {start|stop|restart|force-reload|status}" exit 1 esac exit 0
Copier le script launcher
dans le répertoire /etc/init.d/ et donner les droits d’exécution chmod +x /etc/init.d/launcher
Enregistrer le service et le démarrer :
update-rc.d launcher defaults services start launcher
Sources :
https://openclassrooms.com/courses/faire-un-demon-sous-linux
La station météo a vocation à être posée sur un meuble. Donc souhaite afficher en plein écran les informations importantes. De manière transparente on ne souhaite pas montrer qu’il s’agit d’un ordinateur.
J’ai décidé de supprimer quelques programmes dont je n’ai pas usage pour libérer un peu la carte SD. Entre autres : Minecraft ou LibreOffice, Sonic, etc…
D’abord une mise à jour :
sudo apt-get update && sudo apt-get upgrade -y
Puis on supprime les programmes inutiles :
sudo apt-get autoremove --purge wolfram-engine minecraft-pi sonic-pi libreoffice*
Enfin le ménage :
sudo apt-get clean
Ensuite nous avons besoin de Chromium et de quelques outils que l’on installe
sudo apt-get install chromium x11-xserver-utils unclutter
Nous allons utiliser Chromium en mode kiosque c’est à dire en plein écran, sans barre d’outils ni décoration de fenêtre.
Edit : Pour installer Chromium sur Jessie
wget -qO - http://bintray.com/user/downloadSubjectPublicKey?username=bintray | sudo apt-key add - echo "deb http://dl.bintray.com/kusti8/chromium-rpi jessie main" | sudo tee -a /etc/apt/sources.list sudo apt-get update sudo apt-get install chromium-browser rpi-youtube -y
Nous allons indiquer à LXDE qu’il faut lancer Chromium automatiquement au démarrage. Editer le fichier /etc/xdg/lxsession/LXDE/autostart
# Commenter la ligne suivante afin désactiver l'écran de veille #@xscreensaver -no-splash # Les lignes suivantes désactivent la gestion de l'énergie. Elles empêchent l'écran de s'éteindre. @xset s off @xset -dpms @xset s noblank # Cette ligne permet d'éviter d'afficher les messages d'erreur éventuels au démarrage @sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences # On indique à Chromium qu'il doit démarrer et sur quelle page il doit fonctionner @chromium --noerrdialogs --kiosk http://www.page-to.display # --incognito Rajouter cette option si vous souhaitez démarrer en mode privée
Et voici ! Il ne reste plus qu’à relancer la bête framboise !
https://www.danpurdy.co.uk/web-development/raspberry-pi-kiosk-screen-tutorial/
Pour le DHT22, cloner la bibliothèque fourni par Adafruit et installer là :
$ git clone https://github.com/adafruit/Adafruit_Python_DHT.git
$ cd Adafuit_Python_DHT && sudo python setup.py install
Pour tester l’installation et votre câblage :
sudo examples/Adafruit_DHT 22 4
Ici 22 correspond au DHT22, pour le DHT11, utiliser 11 . Le 4 correspond à la broche GPIO #4 du Raspberry PI.
Recommencer pour le BMP185, ce dernier est câblé sur les broche I2C.
$ git clone https://github.com/adafruit/Adafruit_Python_BMP.git $ cd Adafruit_Python_BMP && sudo python setup.py install
Enfin un petit test :
sudo examples/simpletest.py
# Adafruit library import Adafruit_DHT import Adafruit_BMP.BMP085 as BMP085 # sensor config DHT_SENSOR = 22 PIN = 4 # Try to grab a sensor reading. Use the read_retry method which will retry up # to 15 times to get a sensor reading (waiting 2 seconds between each retry). # humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, PIN) # # # Default constructor will pick a default I2C bus. # # For the Raspberry Pi this means you should hook up to the only exposed I2C bus # from the main GPIO header and the library will figure out the bus number based # on the Pi's revision. # # For the Beaglebone Black the library will assume bus 1 by default, which is # exposed with SCL = P9_19 and SDA = P9_20. # # Can enable debug output by uncommenting: #import logging #logging.basicConfig(level=logging.DEBUG) bmp_sensor = BMP085.BMP085() # Optionally you can override the bus number: #sensor = BMP085.BMP085(busnum=2) # You can also optionally change the BMP085 mode to one of BMP085_ULTRALOWPOWER, # BMP085_STANDARD, BMP085_HIGHRES, or BMP085_ULTRAHIGHRES. See the BMP085 # datasheet for more details on the meanings of each mode (accuracy and power # consumption are primarily the differences). The default mode is STANDARD. sensor = BMP085.BMP085(mode=BMP085.BMP085_ULTRAHIGHRES) bmp_temp = bmp_sensor.read_temperature() bmp_pressure = bmp_sensor.read_pressure() bmp_altitude = bmp_sensor.read_altitude() bmp_sealevel_pressure = bmp_sensor.read_sealevel_pressure() print 'BMP measures' print 'Temp = {0:0.2f} *C'.format(bmp_temp) print 'Pressure = {0:0.2f} Pa'.format(bmp_pressure) print 'Altitude = {0:0.2f} m'.format(bmp_altitude) print 'Sealevel Pressure = {0:0.2f} Pa'.format(bmp_sealevel_pressure) print 'DHT ' + str(DHT_SENSOR) + ' measures' if humidity is not None and temperature is not None: print 'Temp={0:0.1f}* Humidity={1:0.1f}%'.format(temperature, humidity) else: print 'Failed to get reading. Try again!' sys.exit(1)
A venir
Voici la première carte WeatherG que je viens de recevoir. Celle-ci permet les relevés de températures, pression et humidité grâce aux DHT22 et BMP180.
J’ai conçu la carte afin de pouvoir l’emboiter, avec le connecteur J1, avec d’autres cartes maison. Le connecteur J2 est utile pour alimenter l’écran du PI.
Voici mon fichier source Fritzing : a venir
Je suis passé par le FritzFab pour la réalisation. A ce sujet, je trouve la qualité de fabrication très intéressante. Les délais sont très corrects. Le prix relativement abordable. Par contre gros bémol sur les frais de port, 15€ pour une lettre d’Allemagne, dommage qu’il n’y pas d’autres options qu’UPS. J’en ai eu pour un total de 48€.
Dans le cas ou tout comme moi vous avez masquez votre SSID, éditer le fichier /etc/network/interfaces
# /etc/network/interfaces allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ap-scan 1 wpa-scan-ssid 1 wpa-ssid "SSID" wpa-proto RSN wpa-pairwise CCMP wpa-key-mgmt WPA-PSK wpa-psk "PASS"
Sources :
J’ai décidé de me fabriquer une station météo à base de Rasberry Pi. Une série d’article détaillera suivant mon humeur, les étapes de cette station météo. Le projet est pour le moment à l’état d’ébauche. Cet article a pour but de servir de cahier des charges et de lister le matériel.
[toc]
La station météo devra fournir les informations suivantes :
Dans un second temps, les informations complémentaires pourront être disponibles :
En somme, un capteur déporté devra pouvoir être installé. Ce capteur fonctionnera à l’énergie solaire. Le protocole de communication avec la station est encore à définir.