-
Notifications
You must be signed in to change notification settings - Fork 0
Home
antoinezaz edited this page Apr 21, 2016
·
20 revisions
- un raspberry
- une sonde de température
- une base mongo-db avec Mlab
- Télécharger l'image Raspbian Jessie lite
- Lecture de la carte SD sur un pc
- Monter l'image sur la carte SD pour Linux :
- df -h <- pour lister les partitions
- Run umount /dev/mmcblk0p1, et umount /dev/mmcblk0p2
- dd bs=4M if=2016-03-18-raspbian-jessie.img of=/dev/mmcblk0
- Broche 1 (GND*) sur la PIN 6 du Respberry Pi
- Broche 2 (Data**) sur la PIN 7 (GPIO #4) du Respberry Pi
- Broche 3 (VDD) sur la PIN 1 (3.3V) du Raspberry Pi
*GND = G sur le capteur
**Data = S sur le capteur
- Ajouter au fichier /boot/config.txt la ligne suivante : dtoverlay=w1-gpio
- Relancer le programme: sudo reboot
- Lancer les commandes suivantes :
- sudo modprobe w1-gpio
- sudo modprobe w1-therm
- cd /sys/bus/w1/devices/
- ls -> permet de vérifier que l'on récupère bien les données du capteur
Création d'un compte sur www.mlab.com
- Récupration de l'API KEY
- Création d'une nouvelle base de données
- Création d'une collection
- Ajouter un éléments avec les champs ID celcius et fahrenheit
- Activation du data API access
Brancher le câble Ethernet de la Raspberry sur du routeur pour obtenir une connexion internet Lancer les commandes suivantes sur le shell de la raspberry:
- sudo apt-get install bridge-utils
- sudo nano /etc/network/interfaces //édite le fichier
Ajouter les lignes suivantes :
- "auto br0
- iface br0 inet dhcp
- bridge_ports wlan0 eth0"
Ce programme permet de récupérer les données de la sonde de température Dans un premier nous chargeons les modules pour récupérer les données du capteur:
- os.system('modprobe w1-gpio')
- os.system('modprobe w1-therm')
Extraction de la température:
def read_temp_raw():
`f = open(device_file, 'r')`
`lines = f.readlines()`
`f.close()`
`return lines`
def read_temp():
`lines = read_temp_raw()`
`while lines[0].strip()[-3:] != 'YES':`
`time.sleep(0.2)`
`lines = read_temp_raw()`
`equals_pos = lines[1].find('t=')`
`if equals_pos != -1:`
`temp_string = lines[1][equals_pos+2:]`
`temp_c = float(temp_string) / 1000.0`
`temp_f = temp_c * 9.0 / 5.0 + 32.0`
envoie des données à mLab:
comand = '{"celcius":"'+str(temp_c)+'","farenheit":"'+str(temp_f)+'"}'
`os.system('curl -i -X POST -H "Content-Type:application/json" -d '+comand+' https://api.mlab.com/api/1/databases/temperature_raspberry/collections/data_rasp?apiKey=P1k7QvxL9EdwCVkpRJL6NqB-XX9peOlt')`
- Interrogation du serveur toutes les 1/2 secondes pour récupérer les données
- Affichage des données sur la vue principale