Cours:InfoEmbarquee : Différence entre versions
(→Attiny10) |
|||
Ligne 3 : | Ligne 3 : | ||
* [https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/ATtiny4-5-9-10-Data-Sheet-DS40002060A.pdf datasheetAttiny10] | * [https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/ATtiny4-5-9-10-Data-Sheet-DS40002060A.pdf datasheetAttiny10] | ||
+ | ==support utilisé== | ||
Les schémas suivants vous permettent : | Les schémas suivants vous permettent : | ||
*de comprendre sur quel état logique les leds s'allument | *de comprendre sur quel état logique les leds s'allument | ||
Ligne 27 : | Ligne 28 : | ||
|} | |} | ||
+ | ==Sleep modes== | ||
+ | Afin de limiter la consommation de la carte, nous allons utiliser les modes d'économie d'énergie disponibles sur le µcontrôleur utilisé. | ||
+ | |||
+ | Le principe sera le suivant : | ||
+ | #On place le µcontrôleur dans le mode d'économie d'énergie choisi -> le programme s'arrête et il faut un événement pour sortir de ce mode faible consommation | ||
+ | #Le bouton déclenche une interruption externe permettant de sortir du mode d'économie d'énergie | ||
+ | #On affiche un nombre aléatoire | ||
+ | #Retour au mode faible consommation après quelques secondes | ||
+ | |||
+ | Vous vous servirez des fonctions disponibles [http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html dans le fichier {{Rouge|avr/sleep.h}}] pour passer en économie d'énergie. | ||
+ | |||
+ | Les différents modes sont détaillés [[media:Attiny10.pdf|Attiny10.pdf]] dans la partie 7. Le tableau donne la correspondance entre le mode de consommation et la valeur à utiliser dans les fonctions du fichier {{Rouge|avr/sleep.h}}. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Sleep Mode !! valeur programme c | ||
+ | |- | ||
+ | | idle || SLEEP_MODE_IDLE | ||
+ | |- | ||
+ | | ADC Noise Reduction || SLEEP_MODE_ADC | ||
+ | |- | ||
+ | | Standby || SLEEP_MODE_PWR_DOWN | ||
+ | |- | ||
+ | | Power-Down || SLEEP_MODE_STANDBY | ||
+ | |} | ||
=script shell= | =script shell= |
Version du 5 septembre 2023 à 08:08
Sommaire
Attiny10
support utilisé
Les schémas suivants vous permettent :
- de comprendre sur quel état logique les leds s'allument
- de trouver la liste des sorties
- d'associer chaque led avec un numéro de patte
![]() |
Le tableau donne la correspondance entre patte de sortie du µcontrôleur et position de(s) led(s) sur le dé :
|
Sleep modes
Afin de limiter la consommation de la carte, nous allons utiliser les modes d'économie d'énergie disponibles sur le µcontrôleur utilisé.
Le principe sera le suivant :
- On place le µcontrôleur dans le mode d'économie d'énergie choisi -> le programme s'arrête et il faut un événement pour sortir de ce mode faible consommation
- Le bouton déclenche une interruption externe permettant de sortir du mode d'économie d'énergie
- On affiche un nombre aléatoire
- Retour au mode faible consommation après quelques secondes
Vous vous servirez des fonctions disponibles dans le fichier avr/sleep.h pour passer en économie d'énergie.
Les différents modes sont détaillés Attiny10.pdf dans la partie 7. Le tableau donne la correspondance entre le mode de consommation et la valeur à utiliser dans les fonctions du fichier avr/sleep.h.
Sleep Mode | valeur programme c |
---|---|
idle | SLEEP_MODE_IDLE |
ADC Noise Reduction | SLEEP_MODE_ADC |
Standby | SLEEP_MODE_PWR_DOWN |
Power-Down | SLEEP_MODE_STANDBY |
script shell
mqtt
HA mqtt sensor
- https://www.home-assistant.io/integrations/sensor/
- https://github.com/home-assistant/core/blob/dev/homeassistant/const.py#L489
/usr/local/bin/createHaSensor :
#!/bin/bash
echo "name : $1"
echo "device class : $2"
echo "unit : $3"
topic="homeassistant/sensor/$1/config"
payload="{\"name\": \"$1\", \
\"unique_id\": \"$1\", \
\"state_topic\": \"homeassistant/sensor/$1/state\", \
\"device_class\":\"$2\", \
\"unit_of_measurement\":\"$3\" \
}"
mosquitto_pub -t "$topic" -m "$payload" -h 192.168.0.7
/usr/local/bin/deleteHaSensor :
#!/bin/bash
echo "name : $1"
echo "device class : $2"
echo "unit : $3"
topic="homeassistant/sensor/$1/config"
mosquitto_pub -t "$topic" -m "" -h 192.168.0.7
/usr/local/bin/publishHaSensor :
#!/bin/bash
echo "name : $1"
echo "valeur : $2"
topic="homeassistant/sensor/$1/state"
payload="{\"name\": \"$1\", \
\"unique_id\": \"$1\", \
\"state_topic\": \"homeassistant/sensor/$1/state\", \
\"device_class\":\"$2\", \
\"unit_of_measurement\":\"$4\" \
}"
mosquitto_pub -t "$topic" -m "$2" -h 192.168.0.7