Module RTC & Temperature I2C TMP75/M41T81S sous OpenWrt / Bifferboard Dual USB


Pour gagner de la place, je me suis procuré sur le site http://embeddedadventures.com un module qui réunit sur un circuit, un module RTC (M41T81S) et un capteur de température (TMP75).

Les seules différences avec les pages tmp102 et DS1340 sont une fonction pour régler la résolution du capteur TMP75 à 12 bits, et pour le module RTC M41T81S une fonction pour vérifier que le bit HT est bien à 0, sinon il ne met pas à jour ses registres.

Pour l'installation d'Openwrt et la configuration du bus I2C, voir la page tmp102.


1) Raccordement du module :

Comme les précédents modules, il suffit de raccorder les pins VCC/GND/SDA/SCL.




2) Installation des packages:


Les archives disponibles en bas de pages sont à extraire dans le dossier package de vos sources OpenWrt.

On les ajoute à la base logiciel :
# ./scripts/feeds install tmp75
# ./scripts/feeds install m41t81s

Grâce à make menuconfig, on les sélectionne :
Utilities  --->
    <M> m41t81s................................ Read/Write Time/Date from M41T81S
    <M> tmp75............................................. TMP75 sensor utilities

Puis on les compile :
# make package/tmp75/compile V=99
# make package/m41t81s/compile V=99

Les ipks sont disponibles en fin de compilation dans le répertoire bin/rdc/packages/.


3) Utilisation TMP75:


Une lecture simple de la température :
root@OpenWrt:~# tmp75 -r
20.5000
root@OpenWrt:~# tmp75 -r -v
Word 0x00 = 0xA014 = 0x140 or 0xA = 0x14A = 330 = 20.625000 C
20.625


Un enregistrement dans une base Sqlite toute les 10 secondes :
root@OpenWrt:~# tmp75 -d 10 -v -f /root/tmp75.db
Word 0x00 = 0xC014 = 0x140 or 0xC = 0x14C = 332 = 20.750000 C
SQL request : INSERT INTO tmp_data VALUES (20.7500)
Word 0x00 = 0x16 = 0x160 or 0x0 = 0x160 = 352 = 22.000000 C
SQL request : INSERT INTO tmp_data VALUES (22.0000)
Word 0x00 = 0x2017 = 0x170 or 0x2 = 0x172 = 370 = 23.125000 C
SQL request : INSERT INTO tmp_data VALUES (23.1250)

...

Pour lancer l'enregistrement au boot, un fichier tmp75 est disponible dans /etc/init.d :
root@OpenWrt:~# /etc/init.d/tmp75 enable


4) Utilisation M41T81S :

Un appel simple nous fournit la date et l'heure présent sur le module :
root@OpenWrt:~# m41t81s
2010-04-10 21:30:09

Pour enregistrer la date et l'heure, nous utilisons l'option -s :
root@OpenWrt:~# m41t81s -s "2011-03-11 00:15:00"
root@OpenWrt:~# m41t81s
2011-03-11 00:15:04

Et pour fixer la date du système, nous pouvons utiliser la commande suivante :
root@OpenWrt:~# m41t81s
2011-03-11 00:15:29
root@OpenWrt:~# date
Mon Apr 11 00:16:38 UTC 2011
root@OpenWrt:~# date -s "`m41t81s`"
Fri Mar 11 00:15:33 UTC 2011

ċ
m41t81s.tar.gz
(5k)
Nicolas Le Falher,
10 sept. 2012 à 14:28
ċ
tmp75.tar.gz
(6k)
Nicolas Le Falher,
8 juin 2012 à 10:29
Comments