Files
loustique-home/composants/byPanda/__pycache__/alarme.cpython-311.pyc

94 lines
10 KiB
Plaintext
Raw Normal View History

2026-03-30 18:09:36 +02:00
<EFBFBD>
׀<>iy<00><00>~<00>ddlZddlmZejej<00><00>ejd<02><00>Gd<03>d<04><00>ZdS)<05>NFc<00>\<00>eZdZd<01>Zd<02>Zd<03>Zd<04>Zd<05>Zd<06>Zd<07>Z d<08>Z
d <09>Z d
<EFBFBD>Z d <0B>Z d <0C>Zd <0A>ZdS)<0F> SystemeAlarmec<00>,<00>d|_d|_d|_d|_d|_gd<06>|_gd<07>|_gd<08>gd <09>gd
<EFBFBD>gd <0B>g|_d |_d |_ d|_
d|_ d|_ |<00> <00><00>|<00><00><00>dS)u&
Initialise les composants liés à l'alarme.
Cette classe gère uniquement la logique locale de sécurité :
- le capteur PIR
- le buzzer
- la LED RGB de statut
- le clavier 4x4
Elle ne dépend d'aucune autre partie du projet.
<20><00> <00> <00> <00>)<04><00><00>!<00>#)<04>%<00> <00>$<00>&)<04>1<>2<>3<>A)<04>4<>5<>6<>B)<04>7<>8<>9<>C)<04>*<2A>0<>#<23>D<>1234<33><00>desarmerg<00>?N)<0F>pinPir<69> pinBuzzer<65> pinLedRouge<67> pinLedVerte<74> pinLedBleue<75>lignes<65>colonnes<65>touches<65>
codeSecret<EFBFBD> codeSaisi<73>etat<61>derniereLecture<72> delaiLecture<72>initialiserGPIO<49>mettreAJourEtat<61><01>selfs <20>I/home/maxime/Documents/github/loustique-home/composants/byPanda/alarme.py<70>__init__zSystemeAlarme.__init__ s<><00><00> <19><04> <0B><1B><04><0E><1D><04><18><1D><04><18><1D><04><18>'<27>&<26>&<26><04> <0B>(<28>(<28>(<28><04> <0A> !<21> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> 
<EFBFBD><04> <0C>!<21><04><0F><1B><04><0E> <1E><04> <09> !<21><04><1C> <20><04><19> <0C><1C><1C><1E><1E><1E> <0C><1C><1C><1E><1E><1E><1E><1E>c<00><><00>tj|jtj<00><00>tj|jtjtj<00><01><00>tj|jtjtj<00><01><00>tj|jtjtj<00><01><00>tj|j tjtj<00><01><00>|j
D]-}tj|tjtj<00><01><00><00>.|j D]-}tj|tjtj <00><02><00><00>.dS)z4Configure les broches du Raspberry Pi pour l'alarme.)<01>initial)<01> pull_up_downN) <0A>GPIO<49>setupr&<00>INr'<00>OUT<55>LOWr(r)r*r+r,<00>PUD_DOWN)r6<00>pins r7r3zSystemeAlarme.initialiserGPIO@s<><00><00> <0C>
<EFBFBD>4<EFBFBD>;<3B><04><07>(<28>(<28>(<28> <0C>
<EFBFBD>4<EFBFBD>><3E>4<EFBFBD>8<EFBFBD>T<EFBFBD>X<EFBFBD>><3E>><3E>><3E>><3E> <0C>
<EFBFBD>4<EFBFBD>#<23>T<EFBFBD>X<EFBFBD>t<EFBFBD>x<EFBFBD>@<40>@<40>@<40>@<40> <0C>
<EFBFBD>4<EFBFBD>#<23>T<EFBFBD>X<EFBFBD>t<EFBFBD>x<EFBFBD>@<40>@<40>@<40>@<40> <0C>
<EFBFBD>4<EFBFBD>#<23>T<EFBFBD>X<EFBFBD>t<EFBFBD>x<EFBFBD>@<40>@<40>@<40>@<40><17>;<3B> 8<> 8<>C<EFBFBD> <10>J<EFBFBD>s<EFBFBD>D<EFBFBD>H<EFBFBD>d<EFBFBD>h<EFBFBD> 7<> 7<> 7<> 7<> 7<><17>=<3D> A<01> A<01>C<EFBFBD> <10>J<EFBFBD>s<EFBFBD>D<EFBFBD>G<EFBFBD>$<24>-<2D> @<40> @<40> @<40> @<40> @<40> A<01> Ar9c<00>2<00>tj|j|r tjn tj<00><00>tj|j|r tjn tj<00><00>tj|j|r tjn tj<00><00>dS)u<>
Allume la LED RGB selon la couleur voulue.
Paramètres :
- rouge : True / False
- vert : True / False
- bleu : True / False
N)r=<00>outputr(<00>HIGHrAr)r*)r6<00>rouge<67>vert<72>bleus r7<00>definirCouleurzSystemeAlarme.definirCouleurOsp<00><00> <0A> <0B>D<EFBFBD>$<24>5<EFBFBD>&F<>d<EFBFBD>i<EFBFBD>i<EFBFBD>d<EFBFBD>h<EFBFBD>G<>G<>G<> <0C> <0B>D<EFBFBD>$<24>4<EFBFBD>&E<>d<EFBFBD>i<EFBFBD>i<EFBFBD>T<EFBFBD>X<EFBFBD>F<>F<>F<> <0C> <0B>D<EFBFBD>$<24>4<EFBFBD>&E<>d<EFBFBD>i<EFBFBD>i<EFBFBD>T<EFBFBD>X<EFBFBD>F<>F<>F<>F<>Fr9c<00><><00>|jdkr=|<00>ddd<02><00>tj|jtj<00><00>dS|jdkr=|<00>ddd<03><00>tj|jtj<00><00>dS|jdkr=|<00>ddd<02><00>tj|jtj<00><00>dSdS)u<>
Met à jour les sorties selon l'état actuel du système.
- desarme : LED verte, buzzer éteint
- arme : LED bleue, buzzer éteint
- alarme : LED rouge, buzzer allumé
r%FT<46>arme<6D>alarmeN)r0rJr=rEr'rArFr5s r7r4zSystemeAlarme.mettreAJourEtat\s<><00><00> <10>9<EFBFBD> <09> !<21> !<21> <10> <1F> <1F><05>t<EFBFBD>U<EFBFBD> 3<> 3<> 3<> <10>K<EFBFBD><04><0E><04><08> 1<> 1<> 1<> 1<> 1<> <11>Y<EFBFBD>&<26> <20> <20> <10> <1F> <1F><05>u<EFBFBD>d<EFBFBD> 3<> 3<> 3<> <10>K<EFBFBD><04><0E><04><08> 1<> 1<> 1<> 1<> 1<> <11>Y<EFBFBD>(<28> "<22> "<22> <10> <1F> <1F><04>e<EFBFBD>U<EFBFBD> 3<> 3<> 3<> <10>K<EFBFBD><04><0E><04> <09> 2<> 2<> 2<> 2<> 2<>#<23> "r9c<00>h<00>d|_d|_|<00><00><00>td<03><00>dS)u Passe le système en mode armé.rLr$uAlarme activée.N<>r0r/r4<00>printr5s r7<00>armerzSystemeAlarme.armerps9<00><00><1B><04> <09><1B><04><0E> <0C><1C><1C><1E><1E><1E> <0A> <20>!<21>!<21>!<21>!<21>!r9c<00>h<00>d|_d|_|<00><00><00>td<03><00>dS)u$Passe le système en mode désarmé.r%r$uAlarme désactivée.NrOr5s r7<00>desarmerzSystemeAlarme.desarmerxs9<00><00><1E><04> <09><1B><04><0E> <0C><1C><1C><1E><1E><1E> <0A>$<24>%<25>%<25>%<25>%<25>%r9c<00><><00>|jdkr3d|_d|_|<00><00><00>td<03><00>dSdS)ul
Déclenche l'alarme si un mouvement est détecté alors
que le système est armé.
rMr$u+Intrusion détectée : alarme déclenchée.NrOr5s r7<00>declencherAlarmezSystemeAlarme.declencherAlarme<6D>sN<00><00>
<10>9<EFBFBD><08> <20> <20> <20>D<EFBFBD>I<EFBFBD><1F>D<EFBFBD>N<EFBFBD> <10> <20> <20> "<22> "<22> "<22> <11>?<3F> @<40> @<40> @<40> @<40> @<40> !<21> r9c<00> <00>tj<00><00>}||jz
|jkrdSt|j<00><00>D]<5D>\}}t j|t
j<00><00>t|j<00><00>D]x\}}t j |<05><00>t
jkrQt j|t
j
<00><00>||_tj d<02><00>|j ||ccS<00>yt j|t
j
<00><00><00><>dS)u<>
Scanne le clavier 4x4.
Retour :
- la touche détectée
- None si aucune touche n'est pressée
Ng<4E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?) <0A>timer1r2<00> enumerater+r=rErFr,<00>inputrA<00>sleepr-)r6<00>
maintenant<EFBFBD>
indexLigne<EFBFBD>ligne<6E> indexColonne<6E>colonnes r7<00> lireClavierzSystemeAlarme.lireClavier<65>s<00><00><1A>Y<EFBFBD>[<5B>[<5B>
<EFBFBD> <15><04>,<2C> ,<2C>t<EFBFBD>/@<40> @<40> @<40><17>4<EFBFBD>!*<2A>4<EFBFBD>;<3B>!7<>!7<> )<29> )<29> <1D>J<EFBFBD><05> <10>K<EFBFBD><05>t<EFBFBD>y<EFBFBD> )<29> )<29> )<29>)2<>4<EFBFBD>=<3D>)A<>)A<> B<01> B<01>%<25> <0C>g<EFBFBD><17>:<3A>g<EFBFBD>&<26>&<26>$<24>)<29>3<>3<><18>K<EFBFBD><05>t<EFBFBD>x<EFBFBD>0<>0<>0<>+5<>D<EFBFBD>(<28><19>J<EFBFBD>t<EFBFBD>$<24>$<24>$<24><1F><<3C>
<EFBFBD>3<>L<EFBFBD>A<>A<>A<>A<>A<>A<>4<> <11>K<EFBFBD><05>t<EFBFBD>x<EFBFBD> (<28> (<28> (<28> (<28><13>tr9c<00><><00>|j|jkr7|jdkr|<00><00><00>dS|<00><00><00>dSt d<02><00>d|_dS)u
Vérifie le code saisi.
Si le code est correct :
- alarme désarmée -> armée
- alarme armée -> désarmée
- alarme déclenchée -> désarmée
Si le code est faux :
- on efface la saisie
r%zCode incorrect.r$N)r/r.r0rQrSrPr5s r7<00> validerCodezSystemeAlarme.validerCode<64>s\<00><00> <10>><3E>T<EFBFBD>_<EFBFBD> ,<2C> ,<2C><13>y<EFBFBD>I<EFBFBD>%<25>%<25><14>
<EFBFBD>
<EFBFBD> <0C> <0C> <0C> <0C> <0C><14> <0A> <0A><0F><0F><0F><0F><0F> <11>#<23> $<24> $<24> $<24><1F>D<EFBFBD>N<EFBFBD>N<EFBFBD>Nr9c<00>l<00>|<01>dStd|<01><00>|dkrd|_td<05><00>dS|dkr|<00><00><00>dS|<01><00><00>rOt |j<00><00>dkr9|xj|z c_tddt |j<00><00>z<00><00>dSdSdS) u<>
Gère la logique du clavier :
- chiffres : ajout au code saisi
- * : efface la saisie
- # : valide le code
NuTouche appuyée :rr$uSaisie effacée.r!<00>zCode en cours :)rPr/rb<00>isdigit<69>len<65>r6<00>touches r7<00>traiterClavierzSystemeAlarme.traiterClavier<65>s<><00><00> <12>><3E> <12>F<EFBFBD> <0A>!<21>6<EFBFBD>*<2A>*<2A>*<2A> <11>S<EFBFBD>=<3D>=<3D><1F>D<EFBFBD>N<EFBFBD> <11>$<24> %<25> %<25> %<25> <12>F<EFBFBD> <11>S<EFBFBD>=<3D>=<3D> <10> <1C> <1C> <1E> <1E> <1E> <12>F<EFBFBD> <11>><3E>><3E> <1B> <1B> D<01><12>4<EFBFBD>><3E>"<22>"<22>Q<EFBFBD>&<26>&<26><14><0E><0E>&<26>(<28><0E><0E><15>'<27><13>s<EFBFBD>4<EFBFBD>><3E>/B<>/B<>)B<>C<>C<>C<>C<>C<> D<01> D<01>&<26>&r9c<00><><00>tj|j<00><00>tjk}|jdkr|r|<00><00><00>dSdSdS)u<>
Vérifie le capteur de mouvement.
Si un mouvement est détecté alors que l'alarme est armée,
on passe en état d'alarme.
rLN)r=rYr&rFr0rU)r6<00> mouvements r7<00> surveillerPIRzSystemeAlarme.surveillerPIR<49>sT<00><00><19>J<EFBFBD>t<EFBFBD>{<7B>+<2B>+<2B>t<EFBFBD>y<EFBFBD>8<> <09> <0F>9<EFBFBD><06> <1E> <1E>9<EFBFBD> <1E> <10> !<21> !<21> #<23> #<23> #<23> #<23> #<23> <1F> <1E> <1E> r9c<00><><00>|<00><00><00>}|<00>|<01><00>|<00><00><00>|<00><00><00>dS)u<>
Fonction appelée en boucle dans le programme principal.
Elle :
- lit le clavier
- traite la touche appuyée
- surveille le PIR
- synchronise LED et buzzer avec l'état courant
N)r`rirlr4rgs r7<00> mettreAJourzSystemeAlarme.mettreAJour<75>sS<00><00><16>!<21>!<21>#<23>#<23><06> <0C><1B><1B>F<EFBFBD>#<23>#<23>#<23> <0C><1A><1A><1C><1C><1C> <0C><1C><1C><1E><1E><1E><1E>r9c<00>|<00>tj|jtj<00><00>|<00>ddd<01><00>dS)uI
Remet les sorties dans un état propre à la fermeture.
FN)r=rEr'rArJr5s r7<00>cleanupzSystemeAlarme.cleanup<75>s8<00><00> <0A> <0B>D<EFBFBD>N<EFBFBD>D<EFBFBD>H<EFBFBD>-<2D>-<2D>-<2D> <0C><1B><1B>E<EFBFBD>5<EFBFBD>%<25>0<>0<>0<>0<>0r9N)<10>__name__<5F>
__module__<EFBFBD> __qualname__r8r3rJr4rQrSrUr`rbrirlrnrp<00>r9r7rrs<><00><00><00><00><00><00>5<1F>5<1F>5<1F>n A<01> A<01> A<01> G<01> G<01> G<01>3<>3<>3<>("<22>"<22>"<22>&<26>&<26>&<26> A<01> A<01> A<01><14><14><14>< <20> <20> <20>*D<01>D<01>D<01>4
$<24>
$<24>
$<24> <1F> <1F> <1F>1<>1<>1<>1<>1r9r)rW<00>RPi.GPIOr=<00>setmode<64>BOARD<52> setwarningsrrtr9r7<00><module>rys<><00><01> <0B> <0B> <0B> <0B><17><17><17><17><17><17> <0C><04> <0C>T<EFBFBD>Z<EFBFBD><18><18><18><10><04><10><15><17><17><17>p1<>p1<>p1<>p1<>p1<>p1<>p1<>p1<>p1<>p1r9