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 == |