dimanche 24 novembre 2013

ANTENNE RICORE WiFi

Comment construire soit même une antenne Ricoré pour le WiFi ayant un gain de 11 dBi mesuré et non calculé. On a donc un gain de 9 dB par rapport au dipôle demi onde. Cette antenne permet donc des connexions WiFi à grande distance.
La mesure de l'adaptation d'impédance de cette antenne est visible ICI grâce à mon SWR mètre fait maison

Contexte :
L'antenne Ricoré empreinte son nom à la marque de la boite de conserve qui constitue le corps de l'antenne. Dans mon cas, je vous donne les détails d'une antenne Nestlé. Nous ne consommons pas tous les mêmes produits.
L'antenne Ricoré vient du fonctionnement de l'antenne cornet. C'est en fait un guide d'onde, non conique. Il n'y a donc rien d'extraordinaire ici, mais une idée de construction simple mettant en oeuvre les lois de la physique.

Les avantages de cette antenne :
Pas de besoin en appareil de mesure si l'on respecte scrupuleusement les dimensions données ci-dessous. Résultat de très bonne facture.
Le gain, et donc la directivité de cette antenne sont importants.
Coût de revient très faible. Un connecteur de type N, BNC, SMA ou RP-SMA uniquement.
Très grande facilité de construction.

Précautions :
Se munir d'une boite de conserve lisse, non cannelée.
Ne pas déformer le fût en le perçant.
Mesurer précisément.
Mesurer le diamètre intérieur et non extérieur du fût.


Dimensions :
Boite chocolat Nestlé de 155 mm intérieur sur 98 mm intérieur.
Trou de perçage pour fixer le connecteur à 45 mm du fond
Le quart d'onde rayonnant à l'intérieur de la boite est de 31 mm

Photos :

















jeudi 4 juillet 2013

TUTORIEL RAPSBERRY PI mesures météo


Raspberry PI est une carte électronique comprenant un processeur ARM cadencé à 700 MHz et disposant de 512 Mo de mémoire dans sa version B. Il est destiné à être piloté par un système Linux.
Plusieurs distributions Linux ont été créées pour le Raspberry PI ; dans mon cas j'utilise la distribution Raspbian qui est une version Debian optimisée pour ce matériel. Cette distribution Linux est installée sur une carte SD de 8 Go.
Raspbian est évidemment gratuit et sous licence GPL et est téléchargeable ici ou tapez raspbian dans google.

Le Raspberry dispose de :
  • Un port Ethernet
  • Deux ports USB
  • Un jack sortie son
  • Un port HDMI
  • D'une sortie vidéo composite
  • De plusieurs ports GPIO (interface numérique entrée / sortie)


Dans cet article nous allons voir comment exploiter les capacités du Raspberry PI pour en faire une station de mesure de température, d'humidité et de pression.
Les sondes permettant la mesure de température et humidité intérieures et extérieures sont des DHT22 (environ 11€)
La sonde permettant la mesure de pression est une BMP085 (environ 11 €)


L'abri de la sonde DHT22 extérieure est confectionné avec des coupelles de pot de fleur pour un coût total de 14 €. Il donne les mesures de la température et humidité sous abri, de la même manière que les mesures données par météo France. Les photos de la construction sont données en bas de cette page.




La sonde DHT22 intérieure :


Etape 1
Câblage de la sonde DHT22 intérieure sur le port GPIO 4 :
(La sonde DHT22 extérieure sera câblée sur le port GPIO 17, seul le fil vert change de position)




Etape 2
Câblage de la sonde BMP085 sur les ports GPIO 2 et 3 :


2--Installation du protocole I2C, protocole de communication de la sonde BMP085.
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
Vérifiez que le protocole n'est pas blacklisté :
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Dans nano, l'éditeur de texte, utilisez les commandes suivantes :
   CTRL O pour écrire vos modifications, puis faites "ENTER"
   CTRL X pour sortir de nano

Il doit y avoir le signe # devant ces deux lignes ci-dessous, sinon ajoutez-les et enregistrez.
blacklist spi-bcm2708
blacklist i2c-bcm2708
Vous devez donc avoir cela dans le fichier raspi-blacklist.conf :
3--Tapez dans une console du Raspberry PI :
sudo nano /etc/modules (édition du fichier modules)

Vérifiez la présence des lignes suivantes dans ce fichier, sinon ajoutez les à la fin :
i2c-bcm2708 
i2c-dev

Votre fichier /etc/modules doit ressembler à cela :

Maintenant rebootez le Raspberry PI :
sudo reboot (attendez le re-démarrage complet)


4--Visualisation de l'adresse I2C de la sonde BMP085 :
sudo i2cdetect -y 1
Le système répond, donc tout est OK : (adresse 77)
5--Tapez dans une console du Raspberry PI :
cd /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_BMP085 (aller dans le répertoire...)
sudo python Adafruit_BMP085_example.py (test de la sonde)
La sonde répond :



Notez que la sonde BMP085 donne une pression absolue. Dans les systèmes météo cette pression est corrigée pour donner la valeur correspondante à la valeur au niveau de la mer. Il faut donc corriger cette pression mesurée en y ajoutant 8,3 hPa (hecto Pascal) par mettre d'altitude.
Je me trouve à 180 m au dessus du niveau de la mer.
180 / 8,3 = 21,6
Dans le test de la sonde la valeur mesurée est de 1001,64 hPa
La pression rendue au niveau de la mer est de : 1001,64 + 21,6 = 1023,24 hPa (pression haute !)
Météo France donne toujours la pression ramenée au niveau de la mer.




Etape 3
Installation des paquets logiciels nécessaires à l'exploitation de la sonde DHT22 :
Dans la console du Raspberry tapez les lignes vertes :
sudo apt-get clean (nettoyage des informations des paquets logiciels)
sudo apt-get update (mise à jour de la liste des paquets)
sudo apt-get upgrade (mise à jour de la distribution Raspbian)
sudo reboot (reboot système)
sudo apt-get install python-dev (installation paquets de développement python)
sudo apt-get install python-rpi.gpio (installation bibliothèque GPIO)
sudo apt-get install git-core build-essential (pas indispensable dans ce cas mais dans d'autres cas c'est utile et conseillé)
sudo apt-get install python-matplotlib (bibliothèque traçage de graphique)
wget https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/archive/master.zip
unzip master.zip (décompression)

cd /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver/ (aller dans répertoire ...)

Test de lecture de la sonde :
sudo ./Adafruit_DHT 22 4 (pour DHT22 connectée en GPIO 4)

Le système répond :
Il arrive de temps en temps que la sonde ne réponde pas correctement. Les températures et humidités ne sont pas affichées. Il faut relancer l'interrogation. Le script python de Thierry JOUVE que nous allons voire plus bas tient compte de ce désagrément et relance automatiquement la mesure en cas de non réponse de la sonde.

Etape 4
Si vous obtenez une erreur de ce style :
sudo: unable to execute ./Adafruit_DHT: No such file or directory

Alors tapez les lignes suivantes : (sinon passez cette étape)
wget http://www.open.com.au/mikem/bcm2835/bcm2835-1.8.tar.gz
tar -zxvf bcm2835-1.8.tar.gz
cd bcm2835-1.8
./configure
make
sudo make install

Refaites le test pour obtenir une réponse de la sonde :
cd /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver/
sudo ./Adafruit_DHT 22 4 (pour DHT22 connectée en GPIO 4)


Etape 5
Rendons les mesures automatiques et créons le graphe par un script python.

  • Dans le répertoire /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver/ vous devez copier les fichiers suivants.
  • Aller dans le répertoire : cd /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver/
  • Rendez-le executable par sudo chmod u+x raspmeteo.py
  • Installation de pygal par sudo apt-get install pygal
          sudo apt-get install python-pip
          sudo apt-get install libxml2-dev libxslt1-dev gcc
          sudo apt-get install python2.7-dev
          sudo pip install pygal
          sudo apt-get install python3-lxml
  • Installation de SQLlite par sudo apt-get install sqlite3
  • Création de la table QSLlite par sudo sqlite3 raspmeteo.db puis à l'invite entrez cette ligne : 
CREATE TABLE measures(sensor INTEGER, date DATETIME DEFAULT CURRENT_TIMESTAMP, measure REAL);


  • Allez dans le répertoire : cd /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_BMP085 puis copier tous les fichiers qui s'y trouvent dans le répertoire /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver

  • Revenez dans le répertoire cd /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver

  • Allez dans le répertoire de votre page internet sur votre serveur web du raspberry : 
          cd /media/www-dev/public/charts   (dans mon cas,   mettez votre chemin à vous)

         
  • Lancer le script des mesures météo après avoir rebooté le raspberry : sudo raspmeteo.py &


Dans un navigateur, tapez l'adresse de votre site internet et vous obtiendrez le graphe des mesures en pleine page internet.



Mon ami Thierry JOUVE à créé le script python qui permet l'acquisition des mesures ainsi que la constitution automatique du graphe.

Pour créer un site internet sur le Raspberry ou sur un Pc Linux basé sur une distribution debian c'est ICI.


Le développeur du script python raspmeteo.py : Thierry JOUVE
---------------------------------------------------------------------
  • Pour afficher les processus en cours d’exécution : ps -ef (chercher le numéro de processus correspondant au script python raspmeteo.py)
  • Pour arrêter un processus en cours : sudo kill -9 9303 (numéro du processus)
--------------------------------------------------------------------


Ma position géographique :
Détail de la construction de l'abri de sonde extérieure DHT22 :


arrière plan : http://nobru54.blogspot.fr/2012/08/nouveau-barbecue-692-kg-de-beton-et.html





dimanche 26 mai 2013

TUTORIEL Raspberry PI paramètres à distance

Heureux possesseurs de Raspberry PI, il y a une solution pour visualiser l'état et les paramètres système à distance : RASPCONTROL.
NOTA : Ce tutoriel n'est valable que si votre Raspberry tourne sous raspbian, la distribution Debian optimisée pour Raspberry PI.
NOTA : Une commande commençant par sudo vous demandera le mot de passe administrateur.
NOTA : Toutes les commandes à taper dans ce tutoriel sur le terminal du Raspberry PI, peuvent être tapées à partir d'une console déportée par le protocole SSH. Cela se fait sous Linux, ou sous Windows avec PuTTY. Pas besoin de relier le Raspberry à clavier + écran.



Raspcontrol ne peut fonctionner que si vous avez installé au préalable un serveur web Apache2 sur votre Raspberry PI.

1-- Installation du serveur Apache2
Rien ne sert d'écrire ce qui est déjà écrit, le tutoriel pour installer un serveur web Apache2 est présent ICI
Etant donné que les distributions Raspian et Ubuntu sont toutes les deux basées sur la distribution Debian, ce tutoriel est parfaitement utilisable. Il est d’ailleurs installé à l'identique sur mon Raspberry PI et me procure un fonctionnement parfait.
La seule différence réside dans le fait qu'il faut, sur Raspberry PI, éditer les fichiers avec nano et non Dolphin puisqu'on est en mode console (sans interface graphique)

2-- Installation de Raspcontrol.
Dans un terminal tapez les commandes rouges suivantes :

sudo apt-get install git-core build-essential   (installation de paquets indispensables)

sudo git clone https://github.com/Bioshox/Raspcontrol.git raspcontrol   (installation de paquets indispensables)

sudo apt-get install php5-cli   (installation de paquets indispensables)
----------------------------------------------------

cd /media/www-dev/public   (allez dans le répertoire web apache qui est /media/www-dev/public selon mon tutoriel)

wget https://github.com/Bioshox/Raspcontrol/zipball/master   (téléchargement des fichiers Raspcontrol pour que Raspcontrol soit accessible depuis un navigateur)

unzip master   (décompression des fichiers)
----------------------------------------------------

sudo mkdir /etc/raspcontrol   (création d'un répertoire raspcontrol dans le répertoire etc)

cd /etc/raspcontrol   (allez dans le répertoire /etc/raspberry)

sudo touch /etc/raspcontrol/database.aptmnt   (création d'un fichier vide database.aptmnt)

sudo nano /etc/raspcontrol/database.aptmnt   (modification du fichier database.aptmnt contenant les login et mots de passe des ayants-droit à Raspcontrol)

Et on colle les lignes suivantes dans le fichier database.aptmnt 
Remplacez pi par le login de votre choix
Remplacez test par le mot de passe de votre choix
N'enlevez pas les guillemets.
{
   "user":       "pi",
   "password":   "test"
}

Dans l'éditeur de texte nano : 
CTRL O pour prise en compte des lignes modifiées
Puis faire "ENTER"
CTRL X pour quitter nano

----------------------------------------------------

A noter au passage que selon ce tutoriel le login.php à pointer dans votre navigateur est dans le répertoire suivant : /media/www-dev/public/Bioshox-Raspcontrol-6c4b19a/login.php (répertoire de votre serveur web Apache2)

Et voila, c'est fini. Dans un navigateur :
Depuis votre réseau tapez l'adresse http://192.168.1.XX/public/Bioshox-Raspcontrol-6c4b19a/
Depuis un réseau externe : http://votre_domaine.no-ip.biz/public/Bioshox-Raspcontrol-6c4b19a/

Bien évidemment le répertoire Bioshox-Raspcontrol-6c4b19a peut être renommé pour une histoire de commodité.


A partir d'un Smartphone, il suffit de taper l'adresse de votre site web qui tourne sur votre Raspberry PI. Par contre si votre Smartphone n'est pas relié à votre réseau intérieur, il vous faudra vous inscrire gratuitement sur NO-IP.com pour utiliser un DNS dynamique. Le tutoriel est ICI chapitre 1.
-------------------------------------------------------------------------------


Prise en main à distance avec le protocole SSH. Mon raspberry n'a ni écran ni clavier. L'administration est faite à distance depuis n'importe quel Pc.

-------------------------------------------------------------------------------

Une commande donnant la température du processeur ARM :
/opt/vc/bin/vcgencmd measure_temp
-------------------------------------------------------------------------------





TUTORIEL Raspberry PI sauvegarde

Clonage de la carte SD d'un Raspberry :

Notez que cette façon de faire peut être utilisée pour tout clonage de carte SD, disque dur, carte USB etc ... pas uniquement pour le clonage de la carte SD du Raspberry PI.


Heureux possesseurs d'un Raspberry PI, vous avez peut-être passé quelques temps à configurer, installer des packages, modifié des fichiers de config... Maintenant que votre serveur web ou votre application domotique fonctionne parfaitement vous aurez un énorme intérêt à sauvegarder votre carte SD et ainsi la remplacer rapidement lors d'un problème.
Cette sauvegarde à partir de n'importe quelle distribution Linux est simple.


1-- Insérez votre carte SD du Raspberry dans un Pc Linux :
Votre Pc de bureau par exemple.
En tapant la commande suivante vous verrez l'emplacement de tous vos disques dur et carte SD (carte USB etc ..)

sudo fdisk -l (L minuscule)

Réponse du système : On voit la carte SD montée en mmcblk0 ,  p1 est la première partition, p2 est la deuxième partition.





2-- Sauvegarde de la carte SD :
Ouvrez un terminal et tapez en mode administrateur (sudo) cette unique ligne de commande :

sudo dd if=/dev/mmcblk0 of=/home/bruno/ma_carte_raspbian.img

cela signifie : copie sous forme d'image disque, le contenu de la carte SD qui se trouve à /dev/mmcblk0 vers le fichier image qui se trouvera à /home/bruno/nom_de_fichier.img

Cette commande demande environ 5 minutes selon le taux de remplissage de la carte SD
Sous LINUX les cartes SD sont souvent montées sur dev/mmcblk0. C'est en quelque sorte un répertoire temporaire pour lire votre carte SD.
Conservez très soigneusement ce fichier "ma_carte_raspbian.img"

En fin de copie de la carte SD le système vous redonne la main :



3-- Restauration de cette image carte SD sur une carte SD neuve :

Insérez une carte neuve dans votre Pc de bureau tournant sous Linux.
Ouvrez un terminal et tapez en mode administrateur (sudo) cette unique ligne de commande :

sudo dd if=/home/bruno/ma_carte_raspbian.img of=/dev/mmcblk0



Voila, c'est tout, vous retrouvez une carte SD identique à ce qu'elle était le jour de la sauvegarde.





dimanche 12 mai 2013

TUTORIEL installer et utiliser VirtualBox

VirtualBox est un système de virtualisation d'un système d'exploitation. Il permet la création d'un ou plusieurs ordinateurs virtuels sur lesquels vous pouvez installer le système d'exploitation de votre choix. C'est un très bon moyen d'essayer différents systèmes sans toucher à votre système principale.
Cette démonstration est faite sur mon Pc portable PackardBell TS11 HR240fr tournant sur KUBUNTU 13.04 64 bit mais le fonctionnement de VirtalBox est identique quel que soit le système que vous utilisez.
Nous allons dans cette démonstration installer VirtualBox, le configurer et installer UBUNTU en machine virtuelle. Mon Pc portable fonctionne avec KUBUNTU et nous allons, sur une partie du disque dur, créer un ordinateur virtuel dans lequel nous allons installer UBUNTU 13.04 ( j'aurais pu choisir tout autre système d'exploitation)

1-- Télécharger le fichier iso de UBUNTU (32 bit ou 64 bit, si vous ne savez pas choisissez 32 bit) ICI




2-- Installation de VirtualBox sur mon Pc UBUNTU
Dans un terminal tapez sudo apt-get install virtualbox
Le système vous demande le mot de passe administrateur pour installer virtualbox. Tapez le et faites "ENTER"


3-- Faites "O" et laissez faire l'installation, attendez de retrouver la main


4-- Maintenant que VirtualBox est installé, démarrons le à l'aide du menu principale de KUBUNTU



5-- Une fois VirtualBox démarré, cliquez sur le bouton "nouvelle"


6-- Après avoir cliqué sur "nouvelle" nous obtenons le menu de création d'une nouvelle machine virtuelle. 
  • Nommez cette machine virtuelle
  • Donnez le type de cette machine virtuelle
  • Donnez la version de cette machine virtuelle
Faites "Suivant"



7-- Définissons la taille de la mémoire allouée à cette machine virtuelle. Prenons 1024.
Faites "Suivant"


8-- Choisissez  "Créer un disque virtuel maintenant"
Faites "Créer"

9-- Cochez "Image Disque VirtualBox"
Faites "Suivant"


10-- Choisissez "Taille fixe"
Faites "Suivant"


11-- Choisissez le nom de votre disque virtuel sur lequel nous allons installer UBUNTU et définissez une taille de 8Go
Faites "Créer" et laissez faire l'opération de création.



12-- Lorsque VirtualBox vous redonne la main, cliquez sur le bouton "Configuration"


13-- Dans la rubrique "Système" , onglet "Carte mère" vous décochez "Disquette" et cochez "Réseau"
Faites "OK"


14-- Cliquez sur le bouton "Démarrer" pour démarrer notre ordinateur virtuel et ainsi nous pourrons démarrer notre UBUNTU que nous avons téléchargé en début de ce tutoriel.



15-- VirtualBox vous informe que vous affecterez clavier et souris à la machine virtuelle ou à votre système principale en appuyant sur la touche CTRL droite.
Faites "OK"



16-- VirtualBox à démarré mais le disque virtuel de 8Go est vide. Donc rien ne se passe. C'est normal, nous n'avons rien installé sur ce disque dur. Lorsque des messages d'information apparaissent, lisez les et faites "OK"



17-- Cliquez sur le menu "Périphérique / Lecteur CD DVD / Choisissez un lecteur de CD DVD virtuel" comme indiqué sur la copie d'écran ci-dessous.
NOTA : si vous ne disposez pas du fichier téléchargé mais du CD du système UBUNTU vous allez cocher la case "Lecteur de l'hôte..."



18-- Allez chercher le fichier ubuntu.iso que vous avez téléchargé en début de tutoriel.
Faites "Open"



19-- Redémarrer la machine virtuelle.




20-- Laissez faire le démarrage de UBUNTU, notez qu'une machine virtuelle est plus lente, ne cliquez pas dans tous les sens.

------------------------------------------------------------------------------

21-- Installons UBUNTU... dans notre machine virtuelle toute neuve, sur notre disque virtuel de 8Go.



22-- Après avoir cocher l'option d'installation "Utiliser le disque entier" UBUNTU continu son processus d'installation. UBUNTU va s'installer sur le disque virtuel de 8Go.



23-- Il faut retirer le fichier d'installation de UBUNTU (le fichier ubuntu.iso)


24-- Cliquez sur "Ejection forcée"



25-- Il faut redémarrer la machine virtuelle, puisque maintenant UBUNTU est installé sur le disque virtuel de 8Go.


FIN-- Vous pouvez profiter pleinement de votre nouveau système d'exploitation qui tourne sur une machine virtuelle.