Outils pour utilisateurs

Outils du site


informatique:projets:python-am2315

Python AM2315

python-am2315 est une classe d'abstraction permettant de communiquer avec un AM2315 via le bus i2c (d'un Raspberry Pi par exemple). Le AM2315 est un capteur d'humidité et de température fabriqué par AOSONG.

Cette classe possède un mode 'debug' qui permet d'obtenir un certain nombre de messages utiles (communication avec le chip, résultat des CRC, etc…) et supporte également le “réveil” du circuit lors des communications.

Une version pour MicroPython est également disponible (uam2315). Cette version reprend le même code que la version classique mais sans les commentaires et options de debug afin d'être la plus légère possible.

AM2315 Datasheet

En effet, selon la documentation constructeur, ce circuit se met automatiquement en veille s'il n'est pas utilisé pendant 3s afin de faire des économies d'énergie et surtout d'éviter que la chauffe propre au circuit n'influence les mesures faites…

De ce fait, lors d'un scan de bus I2C il se peut que le circuit apparaisse de manière intermittente car il se met en veille lorsque non utilisé.

Documentation

L'ensemble du code est commenté de manière suffisamment explicite, et le code est compatible PyDOC. Un simple 'help(am2315.am2315)' devrait permettre d'avoir un minimum d'informations sur la syntaxe.

Un programme de test est fourni à titre d'exemple et permet de voir le fonctionnement de la classe.

test_am2315.py
#!/usr/bin/env python
# -*- coding: utf-8; -*-
 
# Test program to illustrate AM2315 class usage
 
import am2315
 
if __name__ == "__main__":
 
    # Connecting to AM2315 in Debug mode
    chip = am2315.am2315(debug=True)
 
    # Retrieve sensor temperature
    chip.GetTemperature()
 
    # Retrieve sensor humidity
    chip.GetHumidity()
Résultat
[DEBUG] Accessing AM2315 at address 0x5c on bus 1
 
[DEBUG] Reading sensor temperature
[DEBUG] Waking-up device...
[DEBUG] Sending data    : 0x03 0x02 0x02
[DEBUG] Sensor response : 0x03 0x02 0x00 0xE8 0xA1 0xEE
[DEBUG] Calculated CRC  : 0xA1 0xEE
[DEBUG] Sensor temperature is 23.2°C
 
[DEBUG] Reading sensor humidity
[DEBUG] Sending data    : 0x03 0x00 0x02
[DEBUG] Sensor response : 0x03 0x02 0x01 0xA0 0xA0 0x48
[DEBUG] Calculated CRC  : 0xA0 0x48
[DEBUG] Sensor mesured humidity is 41.6%
test_uam2315.py
# Test program to illustrate uAM2315 class usage
 
import uam2315
import machine
 
# Example using an ESP8266 (ESP-01)
i2c = machine.I2C(freq=400000, scl=machine.Pin(0),sda=machine.Pin(2))
 
# Connecting to AM2315
chip = uam2315.uam2315(i2c)
 
# Retrieve sensor temperature
chip.GetTemperature()
 
# Retrieve sensor humidity
chip.GetHumidity()

Téléchargement

Changelog

informatique/projets/python-am2315.txt · Dernière modification : 2022/11/27 17:23 de lestat

Outils de la page