Scanner WiFi portable à écran OLED (ESP8266) : force du signal, test de connection à un serveur

Accéder aux soldes du Black Friday Amazon Black friday Banggood Ventes flash Gearbest
9% de remise sur tout le site Banggood*

Profitez également de nombreuses réductions allant de 10% à 85% sur Smartphones, Quadricopters, Smart Watches, appareils domotiques, éclairages, caméra de sport 4K, kits et outillages électronique DIY... *Hors produits déjà en promotion

Voir le code promo
3 jours restants

Dans ce projet, nous allons développer un scanner WiFi portable avec un écran OLED à base d’un ESP8266 (Wemos D1 mini). Il est très facile et très économique de fabriquer ses propres capteurs et objets connectés à base d’ESP8266. Seul petit problème, on se pose toujours la question si la qualité du signal WiFi va être suffisante dans la zone ou va se trouver l’objet connecté. On a tous le reflex de dégainer son téléphone portable pour vérifier le signal WiFi. C’est une très bonne solution mais le matériel utilisé ne va pas forcément fonctionner à l’identique. Avec ce scanner (qui tient dans la main), on pourra tester en situation réelle la réception du signal. Un petit serveur fonctionnant sous Nodejs permettra également de tester si la communication est possible.

Matériel utilisé

Dans ce projet, nous allons fabriquer un petit scanner WiFi portable à base de Wemos D1 mini. La Wemos sera alimentée à l’aide d’une batterie LiPo (ici une 3,7 Volts – 150 mAh) à l’aide du Shield Battery présenté ici. On viendra terminé l’empilage avec le Shield OLED SSD1306 (64×48 pixels) présenté précédemment dans cet article. Si votre batterie n’est pas équipée d’u connecteur JST XH2-2.54mm, vous pouvez modifier le câble ou utiliser des connecteurs Dupont à sertir.

esp8266 Wemos D1 mini Wemos D1 Mini
wemos d1 mini shield batterie lipo Chargeur pour batterie LiPo avec connecteur micro USB.

environ 2,20€

wemos d1 mini oled shield Ecran OLED SSD1306 I2C 64×48 pixels. Broches par défaut : D1 – SCL, D2 – SDA

environ 4,40€

batterie lipo 150mah 3V7 Batterie LiPo 3,7V – 150mAh

à partir de 6,90€

Câble de remplacement avec connecteur JST XH2-2.54mm

Circuit

Ce qui est magique avec la Wemos…c’est qu’il n’y a pas de circuit ! On empile simplement les modules les uns au dessus des autres et ça fonctionne. J’ai simplement soudé une résistance de 1,5MΩ entre la broche positive de la batterie et l’entrée analogique A0 pour suivre le niveau de charge de la batterie. La méthode a déjà été présentée dans cet article.

Voici l’empilage obtenu. De bas en haut, on trouve la Wemos puis le Shield Battery et enfin on termine la pile avec le Shield OLED. J’ai utilisé une petite batterie LiPo de 150 mAh que j’ai glissé entre la Wemos et le Shield Battery.

Attention. Vérifiez ou isolez les composants que vous intercalez entre les Shields. Vous risquez de provoquer des courts-circuits

Code Arduino du scanner WiFi

Pour pouvoir utiliser l’écran OLED 64×48 pixels, le plus simple est d’utiliser la librairie Adafruit_ssd1306 modifiée par Mike Causer . Elle est disponiblesur Github ici. Le programme est très simple :

  • On récupère dans un premier temps la liste des réseaux (SSID) disponibles.
  • Pour chaque réseau de la liste
    • On récupère la force du signal et on détermine le nombre de barres à afficher (de 0 à 5).
    • On envoi une requête au serveur de test. Le serveur doit répondre dans un délai imposé par la fonction http.setTimeout(duree).

Code du serveur Web de test

Voici un petit serveur de test développé avec Nodejs. Il démarre un serveur qui écoute les requêtes en provenance de la route /checkconnexion  sur le port 8080. Si le port 8080 est déjà utilisé sur votre ordinateur, il suffit de le modifier à la fin du programme. Le serveur répond juste au client en renvoyant un statut 200 (OK).

Suivez ce tutoriel pour installer Nodejs sur votre ordinateur et découvrir quelques notions. Vous aurez besoin d’installer le package expressjs pour faire fonctionner le serveur

Ouvrez un éditeur de texte et collez le code ci-dessous.



Enregistrez le fichier en lui donnant le nom de serveur.js par exemple.

Ouvrez un Terminal (macOS, Linux), Power Shell ou l’invite de commande (sous Windows). Placez vous dans le répertoire dans lequel le serveur a été enregistré et exécutez la commande suivante pour le démarrer.

A chaque requête du scanner WiFi, un nouveau message sera affiché

Vous pouvez partir à la chasse au réseau WiFi !

Essai du scanner WiFi

Un fois le serveur démarré et le programme Arduino téléverser dans l’ESP8266, vous êtes prêt pour cartographier la réception WiFi dans votre domicile et votre jardin. Les réseaux sont testés les uns après les autres.

esp8266 scanner wifi portable ssid1

Dès qu’un réseau correspond à un réseau privé, le programme tente de s’y connecter puis envoi une requête au serveur

esp8266 scanner wifi portable ssid connexion

Si le serveur a répondu dans le délai, la qualité de réception est suffisante pour y placer un objet connecté fonctionnant en WiFi

esp8266 scanner wifi portable ssid1 test serveur ok

Sinon, c’est que le réseau n’offre pas une qualité suffisante. Dans ce cas, vous pouvez installer un répéteur WiFi qui se branche sur une prise de courant. Pour l’extérieur, il existe des répéteurs étanches à longue portée.

esp8266 scanner wifi portable ssid2 test server ko

Une petite vidéo de démonstration

 

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous dés inscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

Projets DIY - Domotique et objets connectés à faire soi-même