Cours:InfoEmbarquee : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
 
(14 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
=Attiny10=
 
  
* [https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/ATtiny4-5-9-10-Data-Sheet-DS40002060A.pdf datasheetAttiny10]
+
Séances :
  
==support utilisé==
+
*[[Cours:InfoEmbarqueeConcommationMicroC|Analyse de la consommation d'un µcontroleur]]
Les schémas suivants vous permettent :
+
*[[Cours:InfoEmbarqueeScrutationInterruption|Analyse de la latence (et jitter)]]
*de comprendre sur quel état logique les leds s'allument
+
*[[Cours:InfoEmbarqueeThread|Thread avec Qt]]
*de trouver la liste des sorties
+
*[[Cours:QtMqtt|mqtt : créer un capteur/actionneur sur HomeAssistant]]
*d'associer chaque led avec un numéro de patte
+
*[[Cours:InstallationLinux|installation d'une distribution Linux]]
 
+
*[[Cours:BashScript|scripts]]
 
 
{|
 
|-
 
| [[Fichier:SchemaDe.png|200px]] || [[Fichier:simonsay.png|200px]]
 
|}
 
 
 
 
 
 
 
 
 
{|
 
|-
 
|[[Fichier:ATTINY10-pinout.jpg]]
 
||
 
Le tableau donne la correspondance entre patte de sortie du µcontrôleur et position de(s) led(s) sur le dé :
 
 
 
 
 
{|class="wikitable center"
 
|-
 
| PB0 ||  || PB1
 
|-
 
| PB3 || PB2 || PB3
 
|-
 
| PB1 ||  || PB0
 
|}
 
|}
 
 
 
==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=
 
 
 
 
 
==mqtt==
 
 
 
 
 
===HA mqtt sensor===
 
* https://www.home-assistant.io/integrations/sensor/
 
* https://github.com/home-assistant/core/blob/dev/homeassistant/const.py#L489
 
 
 
<source lang=bash>
 
 
 
/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
 
 
 
 
 
</source>
 

Version actuelle datée du 22 novembre 2023 à 11:31