Modifications

Sauter à la navigation Sauter à la recherche
2 511 octets ajoutés ,  10 octobre 2018 à 12:39
Ligne 81 : Ligne 81 :  
{{ESP8266-MICROPYTHON-SUBTUTO}}
 
{{ESP8266-MICROPYTHON-SUBTUTO}}
   −
== Bibliothèque ==
+
== Bibliothèque modio ==
 
Avant d'utiliser le script d'exemple, il est nécessaire de transférer la '''bibliothèque modio''' sur votre carte MicroPython.
 
Avant d'utiliser le script d'exemple, il est nécessaire de transférer la '''bibliothèque modio''' sur votre carte MicroPython.
   Ligne 89 : Ligne 89 :     
Vous pouvez également transférer le script de test {{fname|test.py}} sur la carte MicroPython.
 
Vous pouvez également transférer le script de test {{fname|test.py}} sur la carte MicroPython.
 +
 +
== Code ==
 +
=== Les bases ===
 +
La carte MOD-IO utilise le bus I2C (adresse par défaut est 0x22) pour communiquer sur le bus I2C du port UEXT.
 +
 +
[[Fichier:ESP8266-DEV-12.jpg|480px]]
 +
 +
En adaptant le code (et les raccordements), vous pourriez tout aussi facilement faire fonctionner des cartes ESP8266 comme {{pl|67|Feather ESP8266 Huzza}} ou {{cl|121|Wemos D1}}.
 +
 +
<syntaxhighlight lang="python">
 +
# Utilisation du MOD-IO d'Olimex avec un ESP8266 sous MicroPython
 +
#
 +
# Shop: http://shop.mchobby.be/product.php?id_product=1408
 +
# GitHub: https://github.com/mchobby/esp8266-upy/tree/master/modio
 +
 +
from machine import I2C, Pin
 +
from time import sleep_ms
 +
from modio import MODIO
 +
 +
i2c = I2C( sda=Pin(2), scl=Pin(4) )
 +
brd = MODIO( i2c ) # Adresse par défaut=0x58
 +
 +
# === Lire les entrées analogiques ===========================
 +
for input_index in range( 4 ):
 +
    print( 'Analogique %s : %s Volts' %( input_index,brd.analogs[input_index] ) )
 +
 +
brd.analogs.raw = True
 +
for input_index in range( 4 ):
 +
    print( 'Analogique %s : %s of 1023' %( input_index,brd.analogs[input_index] ) )
 +
 +
print( 'Lire toutes les entrées analogiques, mode RAW, en une seule opération' )
 +
print( brd.analogs.states )
 +
 +
print( 'Lire les tensions, en VOLTS, de toutes les entrée analogiques en une seule opération' )
 +
brd.analogs.raw = False # Réactiver la conversion en tension
 +
print( brd.analogs.states )
 +
 +
# === Lire les entrées Opto-Isolées =========================
 +
print( 'Lire toutes les entrées Opto-Isolées' )
 +
print( brd.inputs.states )
 +
print( 'Lire la 3ieme entrée Opto-Isolée' )
 +
# Python donc indexé à partir de 0!
 +
print( brd.inputs[2] )
 +
 +
# === RELAIS ======================================
 +
# Activer les relais REL1 et REL3 (Python donc indexé à 0)
 +
print( 'Modifier les relais par index' )
 +
brd.relais[0] = True
 +
brd.relais[2] = True
 +
print( 'Etat des Relais[0..3] : %s' % brd.relais.states )
 +
sleep_ms( 2000 )
 +
# Eteindre tous les relais
 +
brd.relais.states = False
 +
 +
print( 'Commander un relais à la fois')
 +
for irelay in range( 4 ):
 +
    print( '  relais %s' % (irelay+1) )
 +
    brd.relais[irelay] = True # Activer
 +
    sleep_ms( 1000 )
 +
    brd.relais[irelay] = False # Désactiver
 +
    sleep_ms( 500 )
 +
 +
print( 'Mettre tous les relais à jour en une seule opération' )
 +
brd.relais.states = [True, True, False, True]
 +
sleep_ms( 2000 )
 +
print( 'Activer tous les relais' )
 +
brd.relais.states = True
 +
sleep_ms( 2000 )
 +
print( 'Désactiver tous les relais' )
 +
brd.relais.states = False
 +
 +
print( "That's the end folks")
 +
</syntaxhighlight>
    
== Où acheter ==
 
== Où acheter ==
29 837

modifications

Menu de navigation