Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2015-08-27T22:02:48+02:00Les derniers messages parus sur le forum de Zeste de Savoir.Problèmes avec les GPIO, message #709092015-08-27T22:02:48+02:00Vayel/@Vayelhttps://zestedesavoir.com/forums/sujet/3928/problemes-avec-les-gpio/?page=1#p70909<p>Je te conseille d'enlever tes deux blocs <code>try/except</code> (juste ces instructions, pas le contenu du <code>try</code>) pour obtenir plus d'informations sur la portion de code générant une erreur.</p>
<p>Et un peu de lecture sur les exceptions : <a href="http://sametmax.com/pourquoi-il-faut-specifier-lexception-quon-gere/">http://sametmax.com/pourquoi-il-faut-specifier-lexception-quon-gere/</a></p>Problèmes avec les GPIO, message #708622015-08-27T17:23:00+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/3928/problemes-avec-les-gpio/?page=1#p70862<p>Bonjour,</p>
<p>J'ai reçut ce matin toutes mes pièces ce matin pour jouer avec le raspberry pi en électronique. Voici les 3 capteurs reçut : </p>
<ul>
<li><a href="http://www.elecfreaks.com/store/octopus-soil-moisture-sensor-brick-p-422.html">Un capteur d'humidité du sol</a> </li>
<li><a href="http://www.elecfreaks.com/store/octopus-analog-photocell-brick-adjustable-sensitivity-p-756.html">Un capteur de luminosité</a> </li>
<li><a href="http://www.elecfreaks.com/store/octopus-temperature-and-humidity-sensor-p-681.html">Un DHT11</a></li>
</ul>
<p>Les deux premiers étant analogique, j'ai préféré commencer par le DHT11. Je le branche donc, sachant qu'il a besoin de 5V, je branche le VCC sur le pin 2, le GND sur le pin 6 et le signal sur le pin 7. Ensuite je lance ce script python avec des étoiles plein les yeux :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92</pre></div></td><td class="code"><div class="codehilite"><pre><span class="kn">import</span> <span class="nn">RPi.GPIO</span> <span class="kn">as</span> <span class="nn">GPIO</span>
<span class="kn">import</span> <span class="nn">time</span>
<span class="k">def</span> <span class="nf">bin2dec</span><span class="p">(</span><span class="n">string_num</span><span class="p">):</span>
<span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">string_num</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">GPIO</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">GPIO</span><span class="o">.</span><span class="n">BCM</span><span class="p">)</span>
<span class="n">GPIO</span><span class="o">.</span><span class="n">setup</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="n">GPIO</span><span class="o">.</span><span class="n">OUT</span><span class="p">)</span>
<span class="n">GPIO</span><span class="o">.</span><span class="n">output</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="n">GPIO</span><span class="o">.</span><span class="n">HIGH</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mf">0.025</span><span class="p">)</span>
<span class="n">GPIO</span><span class="o">.</span><span class="n">output</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="n">GPIO</span><span class="o">.</span><span class="n">LOW</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mf">0.02</span><span class="p">)</span>
<span class="n">GPIO</span><span class="o">.</span><span class="n">setup</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">GPIO</span><span class="o">.</span><span class="n">IN</span><span class="p">,</span> <span class="n">pull_up_down</span><span class="o">=</span><span class="n">GPIO</span><span class="o">.</span><span class="n">PUD_UP</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">500</span><span class="p">):</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">GPIO</span><span class="o">.</span><span class="n">input</span><span class="p">(</span><span class="mi">4</span><span class="p">))</span>
<span class="n">bit_count</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">HumidityBit</span> <span class="o">=</span> <span class="s">""</span>
<span class="n">TemperatureBit</span> <span class="o">=</span> <span class="s">""</span>
<span class="n">crc</span> <span class="o">=</span> <span class="s">""</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">while</span> <span class="n">data</span><span class="p">[</span><span class="n">count</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">count</span> <span class="o">=</span> <span class="n">count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">32</span><span class="p">):</span>
<span class="n">bit_count</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">while</span> <span class="n">data</span><span class="p">[</span><span class="n">count</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">count</span> <span class="o">=</span> <span class="n">count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="k">while</span> <span class="n">data</span><span class="p">[</span><span class="n">count</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">bit_count</span> <span class="o">=</span> <span class="n">bit_count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="n">count</span> <span class="o">=</span> <span class="n">count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="k">if</span> <span class="n">bit_count</span> <span class="o">></span> <span class="mi">3</span><span class="p">:</span>
<span class="k">if</span> <span class="n">i</span><span class="o">>=</span><span class="mi">0</span> <span class="ow">and</span> <span class="n">i</span><span class="o"><</span><span class="mi">8</span><span class="p">:</span>
<span class="n">HumidityBit</span> <span class="o">=</span> <span class="n">HumidityBit</span> <span class="o">+</span> <span class="s">"1"</span>
<span class="k">if</span> <span class="n">i</span><span class="o">>=</span><span class="mi">16</span> <span class="ow">and</span> <span class="n">i</span><span class="o"><</span><span class="mi">24</span><span class="p">:</span>
<span class="n">TemperatureBit</span> <span class="o">=</span> <span class="n">TemperatureBit</span> <span class="o">+</span> <span class="s">"1"</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="n">i</span><span class="o">>=</span><span class="mi">0</span> <span class="ow">and</span> <span class="n">i</span><span class="o"><</span><span class="mi">8</span><span class="p">:</span>
<span class="n">HumidityBit</span> <span class="o">=</span> <span class="n">HumidityBit</span> <span class="o">+</span> <span class="s">"0"</span>
<span class="k">if</span> <span class="n">i</span><span class="o">>=</span><span class="mi">16</span> <span class="ow">and</span> <span class="n">i</span><span class="o"><</span><span class="mi">24</span><span class="p">:</span>
<span class="n">TemperatureBit</span> <span class="o">=</span> <span class="n">TemperatureBit</span> <span class="o">+</span> <span class="s">"0"</span>
<span class="k">except</span><span class="p">:</span>
<span class="k">print</span> <span class="s">"ERR_RANGE"</span>
<span class="nb">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">8</span><span class="p">):</span>
<span class="n">bit_count</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">while</span> <span class="n">data</span><span class="p">[</span><span class="n">count</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">count</span> <span class="o">=</span> <span class="n">count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="k">while</span> <span class="n">data</span><span class="p">[</span><span class="n">count</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">bit_count</span> <span class="o">=</span> <span class="n">bit_count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="n">count</span> <span class="o">=</span> <span class="n">count</span> <span class="o">+</span> <span class="mi">1</span>
<span class="k">if</span> <span class="n">bit_count</span> <span class="o">></span> <span class="mi">3</span><span class="p">:</span>
<span class="n">crc</span> <span class="o">=</span> <span class="n">crc</span> <span class="o">+</span> <span class="s">"1"</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">crc</span> <span class="o">=</span> <span class="n">crc</span> <span class="o">+</span> <span class="s">"0"</span>
<span class="k">except</span><span class="p">:</span>
<span class="k">print</span> <span class="s">"ERR_RANGE"</span>
<span class="nb">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="n">Humidity</span> <span class="o">=</span> <span class="n">bin2dec</span><span class="p">(</span><span class="n">HumidityBit</span><span class="p">)</span>
<span class="n">Temperature</span> <span class="o">=</span> <span class="n">bin2dec</span><span class="p">(</span><span class="n">TemperatureBit</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">Humidity</span><span class="p">)</span> <span class="o">+</span> <span class="nb">int</span><span class="p">(</span><span class="n">Temperature</span><span class="p">)</span> <span class="o">-</span> <span class="nb">int</span><span class="p">(</span><span class="n">bin2dec</span><span class="p">(</span><span class="n">crc</span><span class="p">))</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">print</span> <span class="n">Humidity</span>
<span class="k">print</span> <span class="n">Temperature</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">print</span> <span class="s">"ERR_CRC"</span>
</pre></div>
</td></tr></table>
<p><em><a href="https://www.raspberrypi.org/forums/viewtopic.php?t=69427&p=505235">(Ce script à été trouvé ici.)</a></em></p>
<p>Quelle ne fut pas ma déception de voir un <code>ERR_RANGE</code> s'afficher à l'écran… </p>
<p>Du coup, je viens vous demander renseignement… Auriez-vous une idée pourquoi je ne peux pas utiliser mon DHT11? <br>
Merci de votre aide et de votre lecture</p>