Le blog de Dju - Mot-clé - usbUn peu de moto, un zeste de geek, et un brin d'autres trucs ;-)2024-03-22T17:50:26+01:00Djuurn:md5:5e61426dd704534f4aef077f5b82260bDotclearMesure de la température ambiante avec le Raspberry Piurn:md5:d92a667c810028d01c75f246e158e6122013-01-26T19:50:00+01:002013-03-02T13:36:06+01:00DjuRaspberry Pihardwarelinuxmonitoringmuninraspberry piraspbiantemperaturethermometreusb<p><q></q><img src="https://blog.crifo.org/public/201301/.raspi_t.jpg" alt="raspi" style="float:left; margin: 0 1em 1em 0;" title="raspi, janv. 2013" /> Aujourd'hui un billet (que j'aurais du écrire depuis longtemps :p ) sur l'acquisition d'un thermomètre USB permettant de surveiller en temps réel la température ambiante.<br />
Le tout avec le raspberry Pi et munin pour relever la température toutes les 5 minutes et ainsi avoir un joli graphe et voir l'évolution.</p> <p>Ici, le pi tourne sous <a href="http://www.raspbian.org">Raspbian</a>, et grâce à un petit outil permettant de lire la température directement sur le thermomètre usb, disponible sur GitHub, on peut alors facilement surveiller.
Le dit thermomètre USB <a href="http://cgi.ebay.fr/TEMPer-2-0-USB-Thermometer-Temperatur-Auswertung-mit-Software-/160938619932?pt=Mess_Pr%C3%BCftechnik&hash=item2578b0741c">peut se trouver facilement sur Ebay</a> pour 12 euros. A ce prix la j'en ai pris 2 <img src="/themes/BlueSky/smilies/smile.gif" alt=":)" class="smiley" /></p>
<p><a href="https://blog.crifo.org/public/201301/temper_usb.jpg" title="temper usb"><img src="https://blog.crifo.org/public/201301/.temper_usb_m.jpg" alt="temper usb" title="temper usb, janv. 2013" /></a></p>
<p>Par défaut, le thermomètre ne fonctionne que sous windobe a l'aide d'un programme fourni en DotNet.<br /></p>
<p>Pour linux, un programme <a href="https://github.com/peterfarsinsen/pcsensor">dont le source est librement fourni sur GitHub</a> est disponible <img src="/themes/BlueSky/smilies/smile.gif" alt=":)" class="smiley" /><br />
Voici comment l'installer: on installe sur le pi le necessaire à la compilation, on recupere le programme, puis on le compile.</p>
<pre>
sudo aptitude install build-essential libusb-dev
cd /opt
wget https://github.com/peterfarsinsen/pcsensor/archive/master.zip
unzip pcsensor-master.zip
cd pcsensor-master
make
sudo make install
</pre>
<p>Le programme n'étant pas très gros, la compilation prend une 20aine de secondes.<br />
A partir de la, si tout s'est bien passé, il il y a un binaire nommé <strong>pcsensor</strong>.<br />
On peut désormais brancher le thermomètre, et vérifier avec la commande <strong>lsusb</strong> qu'il est bien reconnu :</p>
<pre>
lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 115: ID 0c45:7401 Microdia
</pre>
<p>ici c'est celui nommé Microdia avec l'id 0c45 7401.<br />
On execute donc le binaire afin de voir si cela fonctionne bien :</p>
<pre>
./pcsensor
2013/01/26 19:09:57
Temperature (internal) 69.12F 20.62C
Temperature (external) 214.60F 101.45C
</pre>
<p>la température ambiante est celle nommée "internal".<br />
A partir d'une ligne de commande, on peut désormais avoir la température <img src="/themes/BlueSky/smilies/smile.gif" alt=":)" class="smiley" /></p>
<pre>
./pcsensor -c | awk '/internal/ {print $NF}' | cut -dC -f1
20.62
</pre>
<p>Et a partir de la, scripter cette commande pour en faire ce que l'on veut <img src="/themes/BlueSky/smilies/smile.gif" alt=":)" class="smiley" /><br />
Par exemple, j'ai écrit un petit plugin Munin afin de la monitorer régulièrement (<a href="https://blog.crifo.org/public/201301/hid_temper.zip">à télécharger ici</a>)</p>
<p><img src="https://blog.crifo.org/public/201301/.hid_temper-week_m.jpg" alt="temper week" title="temper week, janv. 2013" /></p>
<p>Edit: Pour les inconditonnels du perl, on peut lire le thermometre avec Device::USB::PCSensor::HidTEMPer<br />
Pour cela :</p>
<pre>
export LIBUSB_LIBDIR=/usr/lib/arm-linux-gnueabihf/
export LIBUSB_INCDIR=/usr/lib/arm-linux-gnueabihf/
perl -e shell -MCPAN
install Extutils::MakeMaker
install Inline::MakeMaker
install Bundle::CPAN
install Device::USB
install Device::USB::PCSensor::HidTEMPer
</pre>https://blog.crifo.org/post/2013/01/26/Mesure-de-la-temperature-ambiante-avec-le-Raspberry-Pi#comment-formhttps://blog.crifo.org/feed/atom/comments/94Une carte réseau USBurn:md5:df6dd77ea5ab9af302b87e2b5aa464e82010-01-19T19:50:00+01:002010-01-19T20:40:46+01:00DjuHardwarecarte réseauet100ifconfigtrendnettu2ubuntuusb<p><img src="https://blog.crifo.org/public/201001/usb_rj45/.CIMG0564_t.jpg" alt="box" style="float:left; margin: 0 1em 1em 0;" title="box, janv. 2010" />
Voici la commande du jour: une carte réseau ethernet déportée en usb.<br />
C'est bien pratique quand on a un vieil ordinateur qui n'a pas de réseau, ou bien un nettop récent qui n'a qu'une seule prise <img src="/themes/BlueSky/smilies/wink.gif" alt=";)" class="smiley" /><br />
Ce modèle est un <strong>Trendnet TU2-ET100</strong>, acheté sur le net pour une quizaine d'euros.</p> <p>présentation de la boite :
<img src="https://blog.crifo.org/public/201001/usb_rj45/.CIMG0564_m.jpg" alt="box" title="box, janv. 2010" /></p>
<p>de près :
<img src="https://blog.crifo.org/public/201001/usb_rj45/.CIMG0568_m.jpg" alt="close_1" title="close_1, janv. 2010" /></p>
<p>et sur le dessus :
<img src="https://blog.crifo.org/public/201001/usb_rj45/.CIMG0567_m.jpg" alt="close_2" title="close_2, janv. 2010" /></p>
<p>on a 2 leds sur le dessus: <br />
- 100mbps pour indiquer que le réseau est à 100 megabits<br />
- Link: activité du lien</p>
<p>La carte réseau est fournie avec un petit manuel (oui, on sait insèrer un cd et brancher un port usb :o ), ainsi qu'un cd de drivers pour windows.<br />
Je l'ai achetée dans le but d'avoir une 2è carte réseau qui fonctionnera sur mon futur routeur, un nettop (je ne sais pas encore lequel...)<br />
Et un nettop ètant fait pour servir de pc de bureau, aucun n'existe avec 2 prises ethernet et c'est bien dommage. (enfin peut être un ou deux, mais hors de prix)</p>
<p>Maintenant, s'agit de faire marcher tout ça, sous linux (ici, ubuntu 9.10).<br />
Pour cela, on va utiliser le module <strong>asix</strong></p>
<p>Tout d'abord, on surveille le syslog pour voire la détection du bouzin</p>
<blockquote><p>tail -f /var/log/syslog</p></blockquote>
<p>On branche alors la carte en usb, et la on voit apparaitre pas mal de lignes. les plus importantes sont</p>
<pre>
usb 1-4: new high speed USB device using ehci_hcd and address 2
configuration #1 chosen from 1 choice
eth1: register 'asix' at usb-0000:00:1a.7-4, ASIX AX88772 USB 2.0 Ethernet, 00:00:00:00:00:00
usbcore: registered new interface driver asix
</pre>
<p>et la configuration automatique du réseau :</p>
<pre>
(eth1): carrier is OFF
Jan 19 19:35:38 xps NetworkManager: <info> (eth1): new Ethernet device (driver: 'asix')
Jan 19 19:35:38 xps NetworkManager: <info> (eth1): exported as /org/freedesktop/NetworkManager/Devices/2
Jan 19 19:35:38 xps NetworkManager: <info> (eth1): now managed
Jan 19 19:35:38 xps NetworkManager: <info> (eth1): device state change: 1 -> 2 (reason 2)
Jan 19 19:35:38 xps NetworkManager: <info> (eth1): bringing up device.
Jan 19 19:35:38 xps kernel: [ 1382.152159] eth1: link down
Jan 19 19:35:38 xps kernel: [ 1382.153685] ADDRCONF(NETDEV_UP): eth1: link is not ready
Jan 19 19:35:38 xps NetworkManager: <info> (eth1): preparing device.
Jan 19 19:35:38 xps NetworkManager: <info> (eth1): deactivating device (reason: 2).
Jan 19 19:35:38 xps NetworkManager: Added default wired connection 'Auto eth1' for /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-4/1-4:1.0/net/eth1
</pre>
<p>maintenant on vérifie nos cartes réseau :</p>
<blockquote><p>ifconfig</p></blockquote>
<p>et youpi ! une nouvelle carte <strong>eth1</strong> est la <img src="/themes/BlueSky/smilies/smile.gif" alt=":)" class="smiley" /><br />
SI elle n'est pas apparue, utilisez la commande <strong>lsmod</strong> pour obtenir la liste des modules chargés. Et si vous ne trouvez pas <strong>asix</strong> chargez le en tapant</p>
<blockquote><p>sudo modprobe asix</p></blockquote>
<p>Après y'a plus qu'à la configurer comme d'habitude avec ifconfig.<br />
Pour lui donner une adresse ip statique :</p>
<blockquote><p>sudo ifconfig eth1 192.168.0.7 netmask 255.255.255.0</p></blockquote>
<p>ou pour qu'elle se fasse attribuer une adresse ip en DHCP</p>
<blockquote><p>sudo dhclient eth1</p></blockquote>
<p>Ne pas non plus oublier de définir la configuration de la carte dans le fichier <strong>/etc/network/interfaces</strong></p>
<p>pour du dhcp, rajouter ces 2 lignes</p>
<blockquote><p>auto eth1<br />
iface eth1 inet dhcp</p></blockquote>
<p>pour du statique, rajouter cela :</p>
<blockquote><p>auto eth1<br />
iface eth1 inet static<br />
address 192.168.0.100<br />
netmask 255.255.255.0<br />
gateway 192.168.0.1</p></blockquote>
<p>Et enfin, dans le fichier <strong>/etc/modules</strong> on rajoute "asix" sur une nouvelle ligne pour que le module soit chargé automatiquement à chaque démarrage <img src="/themes/BlueSky/smilies/wink.gif" alt=";)" class="smiley" /></p>https://blog.crifo.org/post/2010/01/19/Une-carte-r%C3%A9seau-USB#comment-formhttps://blog.crifo.org/feed/atom/comments/27Gèrer un onduleur avec ubuntuurn:md5:a0a14647e8e790bf1778f0182b3c7a502010-01-04T15:50:00+01:002010-01-04T19:39:46+01:00DjuServeurapcupsdbatterieonduleurubuntuusb<p><img src="https://blog.crifo.org/public/201001/.backups_rs_800_va_apc_t.jpg" alt="onduleur" style="float:left; margin: 0 1em 1em 0;" title="onduleur, janv. 2010" />
Bonjour<br />
Maintenant que le zotac est bien installé et fonctionne bien, je vais vous montrer comment installer Apcupsd, qui permet de gérer facilement un onduleur à partir de linux.<br />
Ce petit logiciel permet d'envoyer des alertes par email, mais surtout d'éteindre proprement la machine quand la batterie n'a plus de jus.</p> <p>He oui, autant une machine récente supporte relativement bien les coupures de courant, autant les veilles machines qui tournent sans arrêt depuis plusieurs années le supportent beaucoup moins bien.... Grâce à un onduleur et un logiciel de gestion, la machine peut être arrêtée proprement et ainsi peut redémarrer sans souci par la suite <img src="/themes/BlueSky/smilies/smile.gif" alt=":)" class="smiley" /></p>
<p>Une fois l'onduleur branché en amont de la machine, on vérifie que le système le voit bien avec la commande <strong>lsusb</strong> <br />
Vous devriez voir une ligne ressemblant à ceci :</p>
<blockquote><p>Bus 004 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply<br /></p></blockquote>
<p>Maintenant, on passe en root et on installe apcupsd</p>
<blockquote><p>aptitude install apcupsd<br /></p></blockquote>
<p>Tous les fichiers de config se trouvent dans le dossier /etc/apcupsd.<br />
Tout d'abord on édite le fichier <strong>/etc/default/apcupsd</strong> et on met la valeur <strong>ISCONFIGURED</strong> à <strong>yes</strong><br />
Ensuite, on édite le fichier de config' principal: <strong>/etc/apcupsd/apcupsd.conf</strong></p>
<p>voici le minimum à renseigner, dans la section <strong>General configuration parameters</strong><br /></p>
<blockquote><p>UPSNAME mon_onduleur<br />
UPSCABLE usb<br />
UPSTYPE usb<br />
DEVICE<br /></p></blockquote>
<p>Maintenant, on va configurer le comportement de l'onduleur</p>
<p><br />## temps en secondes au bout du quel l'onduleur détectera la coupure<br />
ONBATTERYDELAY 5</p>
<p><br />## si batterie inferieure à 5% on éteint la machine<br />
BATTERYLEVEL 5</p>
<p><br />## si charge de la batterie moins de 3 minutes, on éteint la machine<br />
MINUTES 3</p>
<p><br />## si plus de n minutes passées sur batterie, extinction de la machine. fonction désactivée par défaut<br />
TIMEOUT 0</p>
<p><br />## temps en secondes avant l'extinction à partir du quel les utilisateurs loggés sur la machine seront prévenus régulièrement qu'il faut se déconnecter <br />
ANNOY 300</p>
<p><br />## prévenir les utilisateurs après 60 secondes lors d'une coupure de courant<br />
ANNOYDELAY 60</p>
<p><br />## empecher les utilisateurs de se logger sur la machine ou pas, lors de la coupure de courant. désactivé par défaut<br />
NOLOGON disable</p>
<p><br />## temps en secondes pendant lequel apcupsd continuera a tourner, une fois l'extinction de la machine lancée. désactivé par défaut<br />
KILLDELAY 0</p>
<p>Plus d'infos sur chaque variable et valeur peuvent être trouvées ici: <a href="http://linux.die.net/man/8/apcupsd">http://linux.die.net/man/8/apcupsd</a></p>
<p>Maintenant, on passe à la configuration IP</p>
<p><br />## active le serveur apcupsd sur ip, pour obtenir les informations de l'onduleur<br />
NETSERVER ON</p>
<p><br />## sur quelle ip écouter le serveur.<br />
<br />## 127.0.0.1 = local uniquement, les infos ne seront pas disponibles à partir d'une autre machine<br />
<br />## 0.0.0.0 = toutes les ip de la machine<br />
<br />## attention, on ne PEUT PAS spécifier cette variable plusieurs fois, ou donner une liste d'adresses ip<br />
NISIP 0.0.0.0</p>
<p><br />## sur quel port le serveur doit il écouter (3551 par défaut)<br />
NISPORT 3551</p>
<p><br />## fichiers de logs des évènements<br />
EVENTSFILE /var/log/apcupsd.events</p>
<p><br />## taille maximum du fichier de log, en Kilo-octets<br />
EVENTSFILEMAX 10</p>
<p><br />## valeur par défaut pour gèrer l'onduleur d'une seule machine<br />
UPSCLASS standalone</p>
<p><br />## si onduleur géré par une seule machine, désactivé<br />
UPSMODE disable</p>
<p>le reste des lignes peut être laissé par défaut.</p>
<p>Maintenant qu'on a tout bien configuré, on va lancer apcupsd</p>
<blockquote><p>/etc/init.d/apcupsd start</p></blockquote>
<p>et voici comment accèder aux infos de l'onduleur :</p>
<blockquote><p>apcaccess</p></blockquote>
<p>voici le genre d'informations que l'on obtient (ici, l'onduleur branché au zotac)<br /></p>
<pre>
APC : 001,043,1052
DATE : Mon Jan 04 15:35:11 CET 2010
HOSTNAME : zotac
VERSION : 3.14.6 (16 May 2009) debian
UPSNAME : zotac
CABLE : USB Cable
MODEL : Back-UPS BR 800
UPSMODE : Stand Alone
STARTTIME: Mon Jan 04 15:35:10 CET 2010
STATUS : ONLINE
LINEV : 222.0 Volts
LOADPCT : 42.0 Percent Load Capacity
BCHARGE : 100.0 Percent
TIMELEFT : 19.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
OUTPUTV : 230.0 Volts
SENSE : Medium
DWAKE : 000 Seconds
DSHUTD : 000 Seconds
LOTRANS : 194.0 Volts
HITRANS : 264.0 Volts
RETPCT : 000.0 Percent
ITEMP : 29.2 C Internal
ALARMDEL : Always
BATTV : 27.1 Volts
LINEFREQ : 50.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x07000008 Status Flag
SERIALNO : NB0730022333
BATTDATE : 2001-09-25
NOMOUTV : 230 Volts
NOMINV : 230 Volts
NOMBATTV : 24.0 Volts
NOMPOWER : 540 Watts
FIRMWARE : 9.o4 .I USB FW:o4
APCMODEL : Back-UPS BR 800
END APC : Mon Jan 04 15:35:14 CET 2010
</pre>
<p>on obtient notamment la température interne de l'onduleur (ITEMP) et le temps restant sur la batterie si coupure (TIMELEFT), la charge sur l'onduleur (LOADPCT) et la charge de la batterie (BCHARGE)<br /></p>
<p>Ici, vous voyez que j'ai 42% de charge électrique, et 19 minutes de courant dispo, car j'ai branché également d'autres appareils important sur mon onduleur.<br /></p>
<p>Il y a notamment le switch réseau, mon ordi principal avec une carte graphique "delamorkitue" (trèès gourmande en courant) avec son écran 24" et ma chaine hifi qui me sert également de réveil matin (ben oui, en cas de coupure la nuit, par d'alarme le matin :D )</p>
<p>En ayant branché juste le zotac sur l'onduleur, le temps passe à ~75 minutes.<br />
A coté, mon routeur qui est tout seul sur son onduleur (avec la freebox quand meme) prend 4% de la capacité, ce qui laisse 70mn <img src="/themes/BlueSky/smilies/wink.gif" alt=";)" class="smiley" /> )</p>
<p>Si on a renseigné une ip sur laquelle écouter (ou 0.0.0.0) on peut accéder depuis le réseau aux infos, depuis une autre machine.<br />
Pour ce faire, on peut taper la commande</p>
<blockquote><p>apcaccess status ip_de_la_machine</p></blockquote>
<p>par exemple, j'ai également un onduleur sur mon routeur, donc pour accèder aux infos, je tape</p>
<blockquote><p>apcaccess status 192.168.0.1</p></blockquote>
<p>Maintenant que tout marche bien, on va configurer une dernière chose, les alertes par email.<br />
Toujours dans le dossier /etc/apcupsd, on trouve plusieurs fichiers, qu'on va devoir éditer:</p>
<p>changeme
<br />## fichier appelé lorsque la batterie est naze et a besoin d'être remplacée</p>
<p>commfailure
<br />## fichier appelé lors d'une perte de connexion entre la machine et l'onduleur (par exemple, si vous avez débranché le cable usb sans faire exprès... :D )</p>
<p>commok
<br />## fichier appelé lorsque la liaison avec l'onduleur est rétablie</p>
<p>offbattery
<br />## fichier appelé lorsqu'il y a une coupure de courant</p>
<p>onbattery
<br />## fichier appelé lorque le courant est rétabli après une coupure</p>
<p>Dans chacun de ces fichiers, la structure est la meme.<br />
La ligne importante est: <strong>SYSADMIN=root</strong><br />
root ètant l'adresse email à laquelle le mail sera envoyé.<br />
Il est d'ailleurs d'avoir installé auparavant un postfix, ou exim, ou tout autre script permettant d'envoyer un mail<br />
On peut d'ailleurs appliquer des changements un peu plus approfondis à ces fichiers, vu que ce sont des scripts shell. On peut donc leur faire faire ce que l'on veut. <img src="/themes/BlueSky/smilies/wink.gif" alt=";)" class="smiley" /></p>
<p>Voila, ça fait pour moins un an et demi que j'ai un onduleur apc sur mon routeur, géré par apcupsd, et jamais de problème.<br />
Il y a eu pas mal de coupures électriques,mais jamais plus d'une demi-heure, donc jamais d'extinction de machine.<br /></p>https://blog.crifo.org/post/2010/01/04/Gerer-un-onduleur-avec-ubuntu#comment-formhttps://blog.crifo.org/feed/atom/comments/21