Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Synergie OpenSCAD/Blender

Les logiciel de dessin 3D ont une chose en commun : au départ, ils demandent tous un effort relativement important pour apprendre à les utiliser. Trimble SketchUp ne fait pas exception à cette règle, mais, comme son interface est conviviale et son rendering engine donne de beaux résultats, c’est le logiciel que je recommande généralement pour les débutants. Malheureusement, SketchUp ne fonctionne pas vraiment sous Linux. L’alternative la plus évidente est Blender. Ce logiciel est beaucoup plus puissant que Sketchup et vient avec un rendering engine nommé Cycles qui permet de générer de très belles images, très « réalistes ». Par contre, l’interface de Blender n’est pas intuitive du tout. À cause de mon intérêt pour l’impression 3D, j’ai découvert récemment un logiciel appelé OpenSCAD. À bien des égards, ce logiciel est plus facile à apprendre que SketchUp. Il utilise un langage de programmation simple, mais puissant pour générer des formes 3D. Pour vous convraicre, vous pouvez jeter un coup d’oeil à cette cheat sheet :

Ce logiciel vient cependant avec un rendering engine donne des résultats plus ou moins attrayants visuellement.

Sachant que ni Blender ni OpenSCAD n’offrent une solution idéale, j’ai décidé de faire un tutoriel qui explique comment utiliser les forces de chacun de ces logiciels tout en évitant leurs défauts. Ainsi, vous apprendrez à faire du dessin 3D avec OpenSCAD et à faire la génération d’images avec Blender.

Lire la suite de

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Un superbe projet, malgré le nom bizarre (Crevette?!?)

Dans l’émission #98, Sandrine affirme que c’est plutôt simple de faire son propre Arduino/Genuino Uno avec quelques pièces et elle a tout à fait raison. J’ajouterais que c’est une activité très formatrice qui vous permet de mieux comprendre le microprocesseur ATMEGA328 de Atmel qui est au coeur du Arduino/Genuino Uno. Mieux encore, être en mesure de faire ce circuit vous même, vous donnera plus de flexibilité dans vos projets futurs.

Le circuit que je vous propose de réaliser dans ce tutoriel est appelé un Shrimp. Il vous permet de fabriquer l’équivalent d’un Arduino/Genuino Uno pour moins de 10$. Compte tenu du fait qu’un Arduino/Genuino Uno officiel coute autour de 20$ à 30$, c’est une activité qui est quand même avantageuse au niveau des coûts. Notez cependant que, comme Sandrine le mentionne dans émission #98, si vous voulez simplement vous procurer un Arduino/Genuino Uno à faible coût, vous n’arriverez pas à battre les clones qui se vendent pour ~5,00$ sur eBay.

Par ailleurs, un Shrimp est beaucoup plus qu’un simple circuit. En fait, c’est un super beau projet qui a pour but d’apprendre l’électronique aux gens qui le souhaitent! Je vous recommande fortement d’aller visiter le site web officiel, soit http://shrimping.it. Il est très bien fait, donne des instructions claires et propose pleins d’applications intéressantes!!

Circuit et bill of material (BOM)

Sur le site officiel du Shrimp, vous retrouverez 2 versions du circuit : la version minimale et la version protégée. Comme la version protégée est pratiquement aussi simple à monter que la version minimale, j’utilise toujours la version protégée.

Jetons un coup d’oeil au circuit à réaliser ainsi qu’aux pièces à se procurer…

Circuit Fritzing d'un Shrimp protégé
Télécharger le circuit Fritzing

Circuit KiCAD d'un Shrimp protégé
Télécharger le circuit KiCAD

BOM

Nom Quantité Prix
12 jumper wires 1 1,42$
Breadboard 400 contacts 1 4,35$
ATMEGA328 (avec bootloader du Uno) 1 5,02$
Cristal 16 Mhz 1 0,31$
Condensateur 10 uF (électrolythique) 1 0,14$
Condensateur 100 nF (céramique) 4 0,48$ (0,12$ ch)
Condensateur 22 pF (céramique) 2 0,18$ (0,09$ ch)
Résistance 10 k 1/4 W 1 0,08$
Bouton 1 0,15$
CP2102 1 1,83$

Note: Les prix des composants proviennent tous du site dipmicro, sauf le prix du CP2102 qui vient de eBay.

Le coût total pour 1 Shrimp est donc de 13,96$.

Trucs pour économiser

Bon, 13,96$ est moins cher qu’un Arduino/Genuino Uno officiel, mais ce n’est pas en dessous de 10$. En fait, ce n’est pas nécessairement facile de faire 1 seul Shrimp pour moins de 10$. Par contre, étant donné que le prix unitaire des composants peut diminuer drastiquement en fonction du nombre acheté, c’est plutôt facile de faire plusieurs Shrimps pour moins de 10$ chacun.

Voyons la liste d’achats que je propose :

Nom Nombre acheté Prix Prix unitaire
Breadboard 400 contacts + 65 jumper wires 4 15,00$ 3,75$
Breadboard 730 contacts 1 5,86$ 5,86$
ATMEGA328 (avec bootloader du Uno) 1 5,02$ 5,02$
ATMEGA328 (sans bootloader) 5 17,88$ 3,58$
Cristal 16 Mhz 20 3,51$ 0,18$
Condensateur 10 uF (électrolythique) 20 0,91$ 0,05$
Condensateur 100 nF (céramique) 50 1,59$ 0,03$
Condensateur 22 pF (céramique) 50 1,06$ 0,02$
Résistance 10 k 1/4 W 50 0,99$ 0,02$
Résistance 330 ohm 1/4 W 50 0,99$ 0,02$
Bouton 20 1,08$ 0,05$
DEL 5 mm 20 1,07$ 0,05$
CP2102 1 1,83$ 1,83$

Note: Les prix des composants proviennent tous du site dipmicro, sauf le prix du CP2102 qui vient de eBay.

En substituant les nouveaux prix unitaires au BOM proposés plus haut, le coût pour 1 Shrimp diminue maintenant à 8,06$.

Vous avez dû dépenser 56.79$, l’équivalent de 2-3 Arduino/Genuino Uno officiel, mais vous avez obtenu 6 Shrimps complets. En plus, il vous reste encore beaucoup de condensateurs, de résistances et de boutons! Aussi, plusieurs pièces sont réutilisables pour d’autres projets comme les breadboards, les jumper wires et le CP2102…

Par ailleurs, si vous magasinez bien vos pièces (eBay a souvent des meilleurs prix que dipmicro), vous serez probablement capable de diminuer davantage le coût de vos Shrimps. Par exemple, vous pouvez trouver des ATMEGA328 avec le bootloader du Uno pour ~2,00$ chacun sur eBay.

Aussi, si vous avez suivi mon tutoriel précédent sur les ESP8266, il est fort probable que vous ayez déjà en votre possession un FTDI232. Ce module peut être utilisé à la place du CP2102. Vous devez juste vous assurer que le jumper est bien sur la position « 5V » avant de programmer vos Shrimps avec celui-ci.

ATMEGA328 avec ou sans bootloader?

Pour fonctionner, un Shrimp doit absolument avoir le bootloader du Arduino/Genuino Uno de chargé sur son ATMEGA328. Or, si vous avez porté attention à la liste d’achats, je suggère d’acheter un seul ATMEGA328 avec un bootloader et tous les autres sans. Pourquoi?

Réponse : Parce que c’est moins cher. Ça permet d’économiser 1,44$ par puce.

Mais encore?

Réponse : Parce que le bootloader du Arduino/Genuino Uno peut être chargé dans un ATMEGA328 à partir d’un Arduino/Genuino Uno. Ceci est démontré sur ce site :

Ouin, mais si je veux faire un Shrimp, c’est peut-être parce que je n’ai pas d’Arduino/Genuino Uno. Non?

Réponse : C’est aussi possible de charger le bootloader du Arduino/Genuino Uno dans un ATMEGA328 à partir d’un Shrimp.

Ohhhh!!! Donc mon premier Shrimp peut servir à charger le bootloader du Arduino/Genuino Uno sur tous mes ATMEGA328 sans bootloader! Intéressant…

En fait, c’est dommage, mais cette procédure n’est pas expliquée directement sur le site officiel du Shrimp. Heureusement, en farfouillant, je suis parvenu à trouver comment faire.

Configuration sous Linux

La programmation d’un Shrimp se fait habituellement par avec l’IDE Arduino. Sous plusieurs distributions, le paquet se trouve dans les dépôts officiels sous le nom « arduino ». Utilisez votre gestionnaire de paquets préféré pour l’installer.

Aussi, pour avoir accès aux ressources matérielles sans être root, vous devez parfois être membre d’un ou plusieurs de ces groupes : « uucp » , « lock » et « dialout ». Ça dépend de votre distribution. Si c’est le cas, dans un terminal vous pouvez entrer la commande suivante (substituez votre nom d’utilisateur et le nom du ou des groupes souhaités) :

gpasswd -a votre_nom_d_utilisateur nom_d_un_groupe
gpasswd -a votre_nom_d_utilisateur nom_d_un_autre_groupe
...

Vous devez sortir de la session actuelle et revenir pour que ce changement soit appliqué.

Il se peut que vous ayez de la difficulté à programmer vos Shrimps sans être root malgré cette précaution. Dans ce cas, vous pouvez ajouter une règle udev.

Pour ce faire, branchez votre CP2102 dans un port usb. Puis, dans un terminal, entrez la commande lsusb. Vous verrez plusieurs lignes défiler dont une semblable à celle-ci :

Bus 002 Device 013: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light

Prenez en note les 2 codes qui suivent le terme « ID ». Dans le cas présent, c’est « 10c4 » et « ea60 ».

Entrez ensuite la commande suivante :

sudo nano /etc/udev/rules.d/81-cp2102.rules

Puis, entrez le texte qui suit (substituez votre nom d’utilisateur) :

## 81-cp2102.rules
SUBSYSTEM=="usb", ATTR{idProduct}=="10c4", ATTRS{idVendor}=="ea60", MODE="0660", GROUP="votre_nom_d_utilisateur"

Télécharger la règle

Faites ctrl+o suivit de enter pour sauvegarder. Puis faites ctrl+x pour quitter l’éditeur de texte.

Vous remarquerez que le « idProduct » et le « idVendor » correspondent aux 2 codes que je vous avais fait prendre en note précédemment. Ceux-ci seront différents si vous utilisez un autre modèle de module usb/série (un FTDI232 par exemple).

Vous devez redémarrer votre ordinateur pour que la règle prenne fonction.

Après tout ça, vous devriez être en mesure de programmer vos Shrimps sans avoir à être root. Si ce n’est pas le cas, vous allez simplement devoir exécuter l’IDE Arduino en tant que root et vivre avec le fait que cette pratique est peu sécuritaire.

Au niveau de la configuration de l’IDE Arduino, lorsque vous l’ouvrez (avec le CP2102 branché) assurez-vous d’avoir sélectionné le bon port. C’est habituellement /dev/ttyUSB0. Pour vérifier, allez dans le menu Tools -> Port. Vous devez également avoir sélectionné la bonne plateforme, soit « Arduino/Genuino Uno ». Pour vérifier, allez dans le menu Tools -> Board.

Voilà, vous êtes maintenant prêts à charger votre premier programme sur votre premier Shrimp.

Circuit Shrimp-Optiloader

Si vous avez bien regardé la liste d’achats que j’ai proposée plus haut, vous avez remarqué que je suggérais d’acheter un breadboard avec 730 contactes, des résistances 330 ohm et des DEL. Vous allez maintenant comprendre pourquoi.

En fait, je vous propose de reproduire un circuit que j’utilise à l’occasion qui permet de charger le bootloader du Arduino/Genuino Uno sur une dizaine de ATMEGA328 en quelques minutes et de les tester par la suite. Pour ce faire, je suggère de procéder en 3 étapes :

  1. Réaliser un Shrimp avec une DEL attachée à la pin physique no. 14 du ATMEGA328 (pin 8 dans le code Arduino)
  2. Ajouter les pièces pour faire la programmation des puces et charger un programme nommé OptiLoader sur votre premier Shrimp
  3. Réaliser un second Shrimp avec une DEL attachée à la pin physique no. 14 du ATMEGA328 (pin 8 dans le code Arduino) pour tester les puces

Voyons maintenant le fameux circuit :

Circuit Fritzing du Shrimp-Optiloader
Télécharger le circuit Fritzing

Première étape

Réalisez votre premier Shrimp, soit le circuit du haut sans les jumper wire mauve, bleu, vert, gris et blanc. N’oubliez pas d’utiliser un ATMEGA328 qui possède déjà un bootloader. Aussi, les connexions rouge et noir du bas du breadboard doivent être présentes pour que le circuit fonctionne. Pour tester le Shrimp, créez d’abord un dossier nommé blink_mod sur votre ordinateur. Dans celui-ci, placez-y un fichier nommé blink_mod.ino contenant le code suivant :

// blink_mod.ino
int led = 8;

void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(500);
}

Télécharger le code

Ouvrez ce fichier avec l’IDE Arduino, puis appuyez sur Verify, puis sur Upload.

Voilà. La DEL devrait maintenant clignoter.

Deuxième étape

Si tout a fonctionné comme prévu, ajoutez les pièces et connexions qui manquent pour faire la programmation des puces. Pour plus de détails, voici le schéma du circuit de programmation des puces :

Circuit KiCAD du Shrimp-Optiloader
Télécharger le circuit KiCAD

Le programme OptiLoader permet de charger le bootloader du Arduino/Genuino Uno sur un ATMEGA328. Vous pouvez le télécharger grâce à la commande suivante (Attention aux majuscules) :

git clone https://github.com/WestfW/OptiLoader.git optiLoader

Ouvrez le fichier optiLoader.ino avec l’IDE Arduino, appuyez sur Verify, puis sur Upload et sur Serial Monitor. Assurez-vous que la vitesse de communication est 19200 baud (voir dans le coins en bas à droite de la fenêtre de communication série). Après quelques secondes, vous devriez voir le message suivant :

OptiLoader Bootstrap programmer.
2011 by Bill Westfield (WestfW)

Target power on! ...
Starting Program Mode [OK]

Reading signature:950F
Searching for image...
  Found "optiboot_atmega328.hex" for atmega328P
  Start address at 7E00
  Total bytes read: 502

Setting fuses for programming
  Lock: 3F FFE000  Low: FF FFA000  High: DE FFA800  Ext: 5 FFA400

Programming bootloader: 512 bytes at 0x3F00
  Commit Page: 3F00:3F00
  Commit Page: 3F40:3F40
  Commit Page: 3F80:3F80
  Commit Page: 3FC0:3FC0

Restoring normal fuses
  Lock: 2F FFE000

Target power OFF!

Type 'G' or hit RESET for next chip

Le bootloader du Arduino/Genuino Uno devrait être chargé sur le ATMEGA328 qui se situe au milieu du breadboard. Vous pouvez maintenant le retirer et en placer un autre qui n’a pas encore été programmé. Entrez G (majuscule) dans la boite de texte en haut de la fenêtre de communication série et appuyez sur Send. Attendez que le nouveau ATMEGA328 soit programmé et recommencez avec toutes vos autres puces.

Troisième et dernière étape

Réalisez le Shrimp du bas. Déplacez le CP2102 sur celui-ci et charger le code blink_mod.ino. Si la lumière se met à clignoter, c’est que vous avez réalisé correctement le circuit et que vous avez bien chargé le bootloader sur le ATMEGA328.

Remplacez le ATMEGA328 par un autre non vérifié et recommencez le processus…

Voilà. Vous avez maintenant tous les outils pour produire des Shrimps à la pelletée. Félicitations!!

À cocktail, congelées, pannées, frites…

Faire un circuit qui permet de charger le bootloader du Arduino/Genuino Uno sur ATMEGA328 n’est peut-être pas le projet le plus excitant de la planète, mais c’est définitivement un projet pratique. Ça vous permet de choisir votre fournisseur de ATMEGA328 sans vous soucier du fait qu’un bootloader soit présent ou non.

Comme je l’ai mentionné dans l’introduction, si vous voulez vous amusez avec des projets plus intéressants, allez visiter le site officiel des Shrimps. Vous y trouverez plein de bonnes idées, dont, par exemple, des instructions pour faire votre propre clavier conductif. Si vous vous demandez ce que c’est, allez voir le site de Makey Makey

Bonus

Si vous voulez voir rapidement quelles pins physiques du ATMEGA328 correspondent aux numéros d’entrées/sorties du standard Arduino, allez sur le site suivant :

Vous y trouverez un PDF qui contient des étiquettes qui peuvent être collées directement sur un ATMEGA328. Celles-ci indiquent les numéros d’entrées/sorties du standard Arduino vis-à-vis les pins physiques de la puce.

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

La petite histoire…

C’est grâce à Bloguelinux que j’ai découvert les ESP8266. Par contre, ça n’a jamais été mentionné dans une émission. C’est un autre auditeur ou auditrice dont je ne me rappelle malheureusement plus le pseudonyme qui en a parlé dans la salle de chat (#bloguelinux sur Freenode) lors d’une émission live. Si vous avez l’occasion, venez participer sur IRC lors de la prochaine émission. Vous ne le regretterez pas!

ESP8266/NodeMCU, quecé ça?

Il existe plusieurs modèles d’ESP8266. Pour ma part, j’ai choisi le moins cher, soit la version ESP-01. C’est est un petit module de 25 mm X 15 mm qui comprend un microcontroller, une antenne Wifi et 2 entrée/sortie générales (GPIO). Ce qui est intéressant de ce dernier, c’est qu’il coute environ 3.78$ (ou 2.54€) sur ebay!!! Pour sa part, NodeMCU est un firmware open source (Licence MIT) qui peut être chargé sur un ESP8266 et qui peut le contrôler grâce à des scripts LUA.

Pourquoi ce tutoriel?

La raison est bien exprimée par la diatribe de @Pat_bloguelinux sur les forums dans l’émission #90. En fait, je me suis heurté à plein de ressources contradictoires et/ou périmées sur Internet. La communauté des ESP8266 est déjà limitée et plusieurs outils de programmations de ce module fonctionnent sous Windows seulement. À un certain point dans mon exploration, j’étais vraiment découragé par le manque d’information et l’instabilité du module. Heureusement, j’ai fini par trouver toutes les solutions à mes problèmes et, si vous suivez mes instructions, vous devriez pouvoir charger NodeMCU sur votre ESP8266 sans trop de soucis!

Prérequis

Logiciels

Je ne vais pas passer à travers l’installation de ces logiciels. Pour moi, sous Arch Linux, GNU Screen, Nmap et ARP-scan se trouvaient dans les dépôts de base tandis qu’Esptool et ESPlorer se trouvaient dans l’AUR. Cherchez dans les dépôts de votre distribution. Si vous ne les trouvez pas tous, les instructions pour l’installation de ces logiciels sont sur leurs sites web respectifs. Un point à noter est que Esptool est un script Python 2. Or, Arch Linux utilise Python 3 de base. Il se peut donc que, pour le faire fonctionnez, vous deviez aller changer la première ligne du script /usr/bin/esptool.py pour #!/usr/bin/env python2.

Composants

  • 1 ESP8266 ESP-01
  • 1 FTDI232
  • 1 câble microUSB vers USB
  • 1 condensateur électrolytique 330 μC ou 470 μC
  • 1 condensateur en céramique 100 nF
  • Plusieurs jumper cables (mâle-mâle, mâle-femelle, femelle-femelle)
  • 2 résistances 330 Ω ou 220 Ω
  • 2 DEL

Le FTDI232 sert à programmer l’ESP8266. Vous en avez besoin d’un seul pour programmer autant de ESP8266 que vous le voulez. Vous pouvez même vous en servir pour programmer d’autres modules comme un Trinket Pro. Notez que pour programmer l’ESP8266, votre FTDI doit supporter le 3.3V. Vous pouvez vous procurer un FTDI sur eBay pour environ 2.63$ (1.77€).

Circuit pour le chargement de NodeMCU

Voici un schéma Fritzing qui montre le circuit à réaliser :

ESP8266-FTDI-texte

Télécharger le circuit
Note : La pièce Fritzing de l’ESP8266 vient du compte github de ydonnelly.

Liste des connexions :

FTDI ESP8266
VCC VCC, CHPD
GND GND, GPIO0
TX RX
RX TX

Ce circuit est essentiellement le même que celui décrit sur ces 2 sites :

La différence c’est que j’ai ajouté un breadboard, car c’est la manière la plus pratique de faire les connexions avec des jumper cables. En plus, ça permet d’ajouter facilement les condensateurs de découplage. Ces derniers sont super importants, car l’ESP8266 est très sensible à la stabilité de son alimentation. Plus de détails sur ce point sont disponibles sur ce site :

Vous remarquerez peut-être que votre FTDI est différent de celui du schéma Fritzing. Ne vous fiez donc pas à l’ordre des connexions, mais plutôt à leur nom. Aussi, il se peut qu’il y ait un jumper sur votre FTDI qui permet de sélectionner entre 5V et 3.3V. C’était le cas sur le mien. Choisissez 3.3V, sinon vous risquez de briser l’ESP8266. La photo ci-dessous montre comment faire :

FTDI-connecteur-texte

Autre point super important : Pour pouvoir charger NodeMCU, la pin GPIO0 doit absolument être mise à la terre (GND).

Flash! Oh! Ohhh!

J’ai tenté de compiler et charger NodeMCU à partir du code source… J’ai obtenu un succès, disons… limité. Je vous suggère donc une solution plus simple, soit d’utiliser directement un fichier binaire. Vous pouvez le trouver ici :

La différence entre la version “integer” et “float”, c’est principalement que la version “float” prend un petit peu plus de mémoire. La différence est tellement minime que je vous suggère d’utiliser la version “float”.

Lorsque le fichier binaire est téléchargé, branchez le FTDI dans votre ordinateur avec le câble USB. Entrez ensuite la commande suivante :

dmesg | grep tty | tail -n 1

Notez sur quel “tty” votre FDTI est branché. Dans mon cas, c’est /dev/ttyUSB0.

Ensuite, à partir d’un terminal, naviguez jusqu’au fichier binaire et entrez la commande suivante :

sudo esptool.py --port /dev/ttyUSB0  write_flash 0x00000 Chemin_du_firmware_NodeMCU.bin

Source : Flashing the NodeMCU firmware on the ESP8266 (Linux) – Guide

Attendez que le firmware soit complètement chargé. Et voilà! Vous avez maintenant un ESP8266 avec NodeMCU.

Vérification

Pour vérifier si NodeMCU fonctionne, débranchez le câble USB et retirez la mise à la terre du GPIO0. Cette dernière étape est très importante, car si vous oubliez de débrancher GPIO0, votre ESP8266 va vous sembler gelé. Le schéma Fritzing suivant vous montre le circuit :

ESP8266-verification-texte
Télécharger le circuit

Liste des connexions :

FTDI ESP8266
VCC VCC, CHPD
GND GND, GPIO0
TX RX
RX TX

Rebranché le câble USB et, dans un terminal, entrez cette commande :

sudo screen /dev/ttyUSB0 9600

Source : How to Make an Interactive TCP Server with NodeMCU on the ESP8266

Eh oui! J’en avais aucune idée auparavant, mais GNU Screen peut servir pour établir une communication série (9600 baud dans le cas présent)! Le contenu du terminal devrait se vider et un curseur apparaitra. Si tout va bien, vous devriez être en mesure d’enter la commande suivante :

node.restart()

Si vous n’arrivez pas à entrer cette commande, vérifiez que vous avez bien débranché GPIO0. Sinon, essayez de recharger NodeMCU.

Si votre commande a fonctionné, vous devriez voir le message d’accueil de NodeMCU ci-dessous (le paquet de symboles bizarres est tout à fait normal).

NodeMCU-accueil

Pour sortir de GNU Screen, faites Ctrl+a, attendez une demi-seconde, appuyez sur k et confirmez que vous voulez bien fermer la session en appuyant sur y.

C’est maintenant que le fun commence!

Premier script LUA

Pour débuter votre exploration de l’ESP8266, je vous propose de commencer par le “hello world!” des circuits électroniques, c’est-à-dire de contrôler des DEL. Ceci peut être accompli grâce au circuit suivant :

ESP8266-FTDI-DEL-texte
Télécharger le circuit

Pour programmer et charger le code LUA, vous pouvez utiliser ESPlorer. Pour le démarrer, entrez cette commande :

sudo esplorer

Cette fenêtre apparaitra.

ESPlorer-texte

Suivez maintenant ces instructions :

  1. Dans le menu “View”, sélectionnez “Show Log” (ou faire Ctrl+l)
  2. Vérifiez que “/dev/ttyUSB0” est bien sélectionné
  3. Appuyez sur “Open”
  4. Appuyez sur “Reset” (même chose que node.restart())
  5. Entrez votre script LUA (voir plus bas)
  6. Sauvegardez le script sous le nom “init.lua” (utilisez ce nom, c’est important.)
  7. Le script sera chargé automatiquement sur l’ESP8266. Attendez la fin du chargement.
  8. Appuyez sur “Reload”
  9. Vérifiez que “init.lua” est bien présent
  10. Appuyez sur “Reset”
  11. Appuyez sur “Close”

Le code ci-dessous crée un serveur web qui dessert une page web où se trouvent 4 boutons qui permettent d’allumer ou d’éteindre les DEL. N’oubliez pas de changer le nom du réseau et le mot de passe du réseau pour les vôtres.

wifi.setmode(wifi.STATION)
wifi.sta.config("NOM_DU_RESEAU","MOT_DE_PASSE_DU_RESEAU")
print(wifi.sta.getip())
led1 = 3
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
    conn:on("receive", function(client,request)
        local buf = "";
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
        if(method == nil)then
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
        end
        local _GET = {}
        if (vars ~= nil)then
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
                _GET[k] = v
            end
        end
        buf = buf.."<h1>ESP8266 - Serveur web</h1>";
        buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>MARCHE</button></a>&nbsp;<a href=\"?pin=OFF1\"><button>ARRET</button></a></p>";
        buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>MARCHE</button></a>&nbsp;<a href=\"?pin=OFF2\"><button>ARRET</button></a></p>";
        local _on,_off = "",""
        if(_GET.pin == "ON1")then
              gpio.write(led1, gpio.HIGH);
        elseif(_GET.pin == "OFF1")then
              gpio.write(led1, gpio.LOW);
        elseif(_GET.pin == "ON2")then
              gpio.write(led2, gpio.HIGH);
        elseif(_GET.pin == "OFF2")then
              gpio.write(led2, gpio.LOW);
        end
        client:send(buf);
        client:close();
        collectgarbage();
    end)
end)

Télécharger le code
Source : ESP8266 Web Server Tutorial

Pour accéder à cette page, dans un terminal, entrez :

sudo arp-scan --localnet | grep Espressif
ou encore
sudo nmap -sn 192.168.1.0/24 | grep -B 2 Espressif

L’une ou l’autre de ces commandes vous donnera l’adresse IP et l’adresse MAC de votre ESP8266. Entrez l’adresse IP dans le navigateur de votre choix et vous aurez accès à la page suivante :

Serveur-web

Super n’est-ce pas? Vous pouvez vous amuser à allumer et à éteindre les DEL à partir de cette page web comme bon vous semble. Si vous voulez éviter de chercher l’adresse IP de votre ESP8266 à chaque fois que vous le débranchez, utilisez l’adresse MAC pour donner un IP statique à votre ESP8266 sur votre router.

Laissez aller votre créativité!!

Ce petit tutoriel devrait vous donner une base suffisante pour que vous puissiez créer plein de dispositifs contrôlables à partir votre ordinateur ou votre téléphone cellulaire! Pensez à toutes les possibilités si vous alimentez votre ESP8266 avec des piles et si vous changez les DEL par des moteurs ou des relais… Par ailleurs, plutôt que d’utiliser les GPIOs en sortie, vous pouvez les utiliser en entrée et vous faire un petit système d’alarme…

Bon geekage!

Bonus

Pour ne pas oublier quand sera la prochaine émission live de Bloguelinux, entrez la commande suivante dans un terminal :

fun () { curl -s www.bloguelinux.ca | grep "localize_time_orig" | awk -F '[<>]' '{ print "Prochaine émission live : " $3 "\nProchain Aprèscast : " $15 }'; }; PROMPT_COMMAND="fun"

Maintenant, tant que vous ne fermez pas le terminal, à chaque fois que vous entrerez une commande (ex. : ls), la date et l’heure de la prochaine émission et du prochain Aprèscast s’afficheront.

 

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit