Archives de catégorie : WiFi

Hotspot et caméras ?

Et si vous profitiez d’avoir un hotspot WiFi, avec un enregistreur de connexions qui fonctionne sous linux, pour venir y installer un serveur Web et mettre à disposition de vos utilisateurs les clichés instantanés d’une ou plusieurs vues des caméras IP de votre établissement ?

C’est ce qui motive le projet de Monwifi actuellement en version Beta, avec une interface d’administration pour ajouter et supprimer les caméras :

et une interface de visualisation destinée à vos utilisateurs et clients :

Ici nous avons choisi de capturer le flux de 3 caméras en montage, dont celle de Chamonix, excusez nous du peu 😉
Si vous cliquez sur une image, un onglet s’ouvre et elle s’affiche en pleine résolution, permettant aisément de zoomer. Cette page fonctionne sur PC, smartphone, ou tablette, bien entendu.

Imaginons maintenant que vous exploitiez un établissement avec une piscine : les utilisateurs de votre hotspot wifipak vont pouvoir visualiser en temps semi-réel l’occupation du bassin, je dis bien semi-réel car il n’est pas question d’être intrusif et de diffuser un flux vidéo, uniquement d’afficher un snapshot, c’est à dire une capture d’écran à un instant t.
De même, une caméra IP sur un parcours de golf, sur une terrasse de restaurant, sur une plage privée vous offriront la même possibilité : on y va ? on n’y va pas ? Trop de monde ? Y’a personne ?!
Mais on peut également imaginer visualiser une aire de jeux pour voir que le p’tit dernier s’amuse bien, sans risques.

Revenons à l’administration de ces captures, peut-être avez-vous remarqué ce détail :

RTSP ? Oui, rtsp, ce protocole sur pratiquement toutes les caméras IP qui permet de visualiser le flux vidéo. Toutes les caméras ne font hélas pas de snapshot, à l’instar des TP-Link TAPO : il faut dans ce cas pouvoir capturer le flux vidéo et en extraire une image à un instant donné, lors de cette rapide capture, avant de l’afficher.

Vous aurez ainsi le choix de plusieurs modèles de caméras, soit avec un flux RTSP, soit avec une capacité de snapshot. Nous avons pour le moment testé les caméras Ubiquiti, après avoir activé le snapshot dans l’interface d’administration de chaque caméra. Les caméras TAPO TP-Link refusent elle systématiquement la capture rtsp, aussi avons nous décidé de tester un matériel Imou :

Affaire à suivre… nous allons rapidement découvrir si ce matériel nous offrira toutes les fonctionnalités attendues, car à ce tarif (< 50 €), il ne manque pas de qualités 😉

Evolution des fonctionnalités :

Comment faire évoluer l’interface ? Cela va dépendre des idées de nos clients, il faudra dans un premier temps tester un prototype, voir si le retour des clients est positif, découvrir quels aspects nous devrons faire évoluer surtout.

Déjà, nous imaginons pouvoir ajouter l’envoi d’une image vers un serveur Web, pour par exemple afficher une vue en temps réel de la plage en face de votre établissement, l’enneigement des pistes de la station, une ligne d’horizon sur les montagnes voisines, ou tout paysage que vous voudrez bien proposer à vos visiteurs internet : un lien sur la caméra, un serveur ftp avec un login et un mot de passe, des heures de fonctionnement en fonction du lever du jour sur un lieu donné, et une fréquence d’actualisation. Simple non ?

L’IA, outil de taille :

Inutile de vous le cacher, nous avons utilisé plusieurs IA pour générer ces interfaces, avec en tête ChatGPT et MistralAI. Nous avons rapidement oublié Gemini par Google car à chaque correction, seule une partie des codes était affichée, nécessitant de redemander sans cesse l’envoi du code entier pour ne pas perdre de temps : en vain, l’intelligence est absente de Gemini pour ce qui concerne le code informatique, il vaut mieux l’utiliser pour trouver des recettes de cuisine ou demander l’âge avancé de Flamby Mou 1er, ex-Mouzident sociamou de la France ;-))))

Ces outils sont fabuleux, rapides surtout, mais en aucun cas ne remplacent totalement, pour le moment, notre capacité d’analyse et de programmation. Nous les avons éduqués, orientés, modifiés à la main souvent. Cela reste des outils, mais ne nous voilons pas la face, ils sont fabuleusement utiles !

Conclusion :

Si le projet vous intéresse, si vous utilisez ou voudriez utiliser un hotspot Wifipak, n’hésitez pas à nous faire signe sur Monwifi.fr pour devenir Beta-testeur dès que le projet sera un peu plus avancé.
A terme il pourrait bien s’ouvrir à d’autres matériels hotspot en ne s’utilisant que comme serveur Web et serveur de capture d’images, qui sait…

RouterOS : gestion du ping et alerte

Comment surveiller une IP sur votre routeur RouterOS 7.xx ? Un simple script, ping, se chargera de vous prévenir par email (à condition d’avoir configuré votre envoi d’email dans /tools/e-mail, cf plus bas dans ce billet.

Voici déjà le script qui va tester 3 fois l’adresse 192.168.1.21, et en cas de non-réponse envoyer un email aux deux destinataires, recipient et recipient1 mentionnés dans le script :

    :local targetIP "192.168.1.21";
    :local recipient "monemail@chezmoi.fr ";
    :local recipient1 "secondemail@chezlui.fr";
    :local subjectFail ("ALERTE PING HS ");
    :local bodyFail ("Email automatisé pour vous indiquer que le module ne répond plus. \r\nMerci de bien vouloir vérifier le branchement ethernet et l'alimentation. \r\nVous pouvez le  débrancher, et le rebrancher. \r\nSi l'alerte persiste, merci de contacter votre prestataire.\r\n\r\n
*** Ceci est un message automatisé, ne pas répondre ****");
    :local logMessage ("Test ping vers " . $targetIP);
    :local success 0
    :for i from=1 to=3 do={
        :if ([/ping $targetIP count=1] = 1) do={
            :set success ($success + 1)
        }
    }
    :if ($success = 0) do={
        /tool e-mail send to=$recipient subject=$subjectFail body=$bodyFail
        /tool e-mail send to=$recipient1 subject=$subjectFail body=$bodyFail
    }

Pour ce qui est de la configuration de l’email dans /tools/e-mail :

        server: mail.monserveur.fr        
          port: 465                    
           tls: yes                    
           vrf: main                   
          from: noreply@chezmoi.fr     
          user: alerte@monserveur.fr
      password: LePenEstNulle;;    

Ici, nous avons créé un email alerte@monserveur.fr pour pouvoir expédier. L’envoi se fait sur mail.monserveur.fr mais cela changera selon votre configuration : smtp, imap, etc. tout est possible, pensez à modifier les paramètres.

Vous n’avez désormais plus qu’à exécuter le script ping toutes les 12 heures par exemple :

/system scheduler add name=ping-schedule \
    interval=12h \
    on-event=ping \
    start-time=startup

Et voilà, en cas de coupure vous recevrez une alerte email sur les 2 emails pré-configurés.
Pratique non ?

Enregistreur de connexions hotspot : mise à jour !

Voici venir l’évolution des enregistreurs de connexion pour les hotspots Wifipak :

Ce seront désormais des X96, petites box TV à l’origine, transformées en enregistreurs de connexions après quelques manipulations logicielles.
Pourquoi ce choix ? Un stockage emmc qui permet de se passer de carte micro-SD, une très faible consommations électrique, un module ultra-compact qui sait se faire oublier, un prix de revient moindre qui permet de contenir les inévitables augmentations tarifaires de cette époque un brin trouble 😉

Au final, que du bonheur, pas de pannes, pas de maintenance, simplicité totale, conforme à l’esprit de nos hotspots Wifipak : liberté, efficacité, simplicité !

Hotspot et fibre ?

Ne négligez pas votre hotspot si vous disposez d’une connexion fibre à 1 Gbps ou plus encore : il existe désormais des solutions Wifipak simples pour ne pas perdre en débit.
Voici par exemple une version 10 Gbps avec cages SFP+ pour vous relier sans perte de débit :

WIFIPAK SFP+ 10 Gbps mini 3 ports

mais vous pouvez encore aller plus loin avec ce modèle qui deviendra votre cœur de réseau :

WIFIPAK SFP+ ULTRA 8 x 10 Gbps

Imaginez un peu, 8 cages 10 Gbps SFP+, de quoi dynamiser toute votre infrastructure et ne plus avoir un seul ralentissement sur vos connexions !

Que vous utilisiez une Freebox Ultra, une Livebox Pro, une Bbox, voir au pire une box SFR, vous profiterez du plein débit sur votre réseau local, tout en offrant à vos invités un hotspot WiFi digne de ce nom.

Comme toujours, pas d’abonnement, pas de limitation, pas de pseudo restrictions pour vous forcer à payer plus cher pour 50 utilisateurs supplémentaires : TOUT est inclus, enregistreur de connexions, personnalisation de la page d’accueil, adaptation à vos besoins.

 

Raspberry Pi Pico W : utilisation de la LED interne

Voici venir le tout nouveau Raspberry Pi Pico W, avec le WiFi intégré :

Force est de constater que cette p’tite framboise à 6 € offre de multiples possibilités pour qui voudra programmer en Python, oubliant le langage plutôt hermétique des ardui-bidules, pas forcément ma tasse de thé vous l’aurez compris.

Nous allons voir ici comment connecter le Pico W au WiFi, créer une simple page Web et venir allumer la LED interne sitée à proximité du connecteur USB. Nous supposerons que vous avez déjà installé le firmware et allez utiliser Thonny, le soft idéal pour programmer et injecter vos scripts python.

Commençons par créer un fichier secrets.py que nous allons sauvegarder sur le Pico W, fichier qui aura le contenu suivant :

SSID = "nom_du_réseau_wifi"
PASSWORD = "clé_de_sécurité"

Passons ensuite au script principal qui sera lui sauvegardé dans main.py sur le Pico W :

import usocket as socket
import network
from machine import Pin
import secrets

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(secrets.SSID, secrets.PASSWORD)
light = machine.Pin("LED", machine.Pin.OUT)

Led = "ON"

htmlresponse = """HTTP/1.0 200 OK
Content-Type: text/html

<!DOCTYPE html>
<meta charset="UTF-8">
<html>
    <head>
        <title>Serveur RaspiPicoW</title>
    </head>
    <body>
        <p>Etat de la LED : {} </p>
        <p> <a href = "/?etat=on" >Led ON </a>  </p>
        <p> <a href = "/?etat=off" >Led OFF </a> </p>
        <p> <a href = "/?etat=toggle" >TOGGLE </a> </p>
    </body>
</html>
"""

def connexion_wifi(ssid,password):
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print("connexion",ssid)
        wlan.connect(secrets.SSID, secrets.PASSWORD)
        while not wlan.isconnected():
            pass
    print("Adresse IP :", wlan.ifconfig()[0])
    print("Masque réseau : ", wlan.ifconfig()[1])
    print("Gateway :", wlan.ifconfig()[2])
    print("Serveur DNS :", wlan.ifconfig()[3])
    return wlan.ifconfig()[0]

AdresseIP = connexion_wifi(secrets.SSID, secrets.PASSWORD)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((AdresseIP,8080))
s.listen(1)

while True :
    print("Attente connexion ...")
    connexion = s.accept()
    ClientAddress = connexion[1]
    ClientSocket = connexion[0]
    print("Adresse client connecté :",ClientAddress[0])
    request = ClientSocket.recv(2048)
    Lrequest = request.decode('utf-8').split(' ')
    if Lrequest[0] == 'GET' :
        url =Lrequest[1]
        if url[0:7] =="/?etat=":
            if url[7:] == 'on':
                light.on()
                Led = "ON"
            elif url[7:] == 'off':
                light.off()
                Led = "OFF"
            elif url[7:] == 'toggle':
                light.toggle()
        ClientSocket.send(htmlresponse.format(Led))
    ClientSocket.close()

Il ne vous reste plus qu’à exécuter le script, le Shell vous affichera l’adresse IP obtenue une fois le WiFi connecté. Rendez vous sur cette adresse IP via votre navigateur internet et hop :

La page web interne s’affiche, à vous de jouer maintenant !

Tasmota : la domotique facile

Peut-être ne connaissez vous pas Tasmota, un firmware domotique qui permet de re-flasher certains modules, vous savez ceux qui discutent avec d’obscures serveurs chinois, ceux qui demandent à associer une application Android par marque.

Avec Tasmota, terminé : vous unifiez tous vos modules avec un seul et même firmware, vous les faites pointer vers votre broker MQTT et vous gérez vous même vos besoins en domotique.

Voici un test avec un interrupteur mural Sonoff T1 1CH. Commençons par le démonter :

Sur la droite, le connecteur J3 avec GND, TXD, RXD, VCC. Soudez y des fils, branchez les en croisant Txd / RxD sur un adaptateur USB/TTL et ne reliez pas encore l’adapteur sur son port USB.

Mais ce n’est pas tout. Retournez la platine :

En bas à droite, le dernier plot du connecteur 4 points est GND, la masse. Venez brancher un fil entre ce point et le point TP2:

Maintenez la connexion sur TP2 puis branchez l’adapteur USB : votre module est alors en mode programmation !

Téléchargez tasmota-lite.bin dans sa dernière version depuis le Github Tasmota.

Ouvrez un terminal Linux ou MacOS, passez en admin puis lancez :

esptool.py --port /dev/tty.SLAB_USBtoUART --baud 115200 write_flash -fm dout -fs 1MB 0x00000 tasmota-lite.bin 

Vous adapterez /dev/tty.SLAB_USBtoUART selon le nom de votre interface USB/TTL. Quelques minutes plus tard, un nouveau réseau WiFi va apparaitre, à vous de jouer désormais pour accéder à l’interface de gestion :

 

ESP8266 : Wifi Kit 8 en test

Découverte récente sur Amazon du Wifi Kit 8 produit par Heltec :

Sur cette image, nous lui avons monté une sonde de température DS18B20, histoire de faire travailler la bestiole en charge. Cette sonde transmet ses données toutes les 2 minutes sur notre broker MQTT Mosquitto, via une connexion WiFi.

Ce petit ESP8266 dispose d’un écran LCD mais surtout d’une alimentation pour batterie, avec gestion de charge intégrée :

Un simple batterie LiPo de 1000 mAh et vous voici protégé d’une coupure de courant, c’est simple et pourtant radical. Venez ajouter un chargeur solaire sur la prise micro-USB et vous voici en totale autonomie avec un petit IoT très sympa.

Son brochage reste simple, avec de multiples E/S et une unique entrée analogique :

Le flashage sous ESPeasy est possible, il n’a fonctionné ici qu’avec Esptools depuis Ubuntu : jamais Winchose 10 n’a réussi à le flasher, jamais il n’a trouvé le bon port COM. Amis Linuxiens, la solution reste et restera toujours le libre pour bricoler en paix 😉

Retenez par contre qu’ESPeasy nécessitera d’ajouter cette rule pour valider l’afficheur au boot de l’IoT :

On System#Boot do
gpio,16,1
endon

En effet, sans valider le GPiO 16, point d’Oled, c’est ainsi, un petit bug connu sur ce modèle, facile à contourner comme vous pouvez le voir.

Un bon p’tit ESP8266 donc, pas le moins cher, mais sympa si vous avez besoin d’afficher 2 ou 3 lignes d’informations, capable d’être autonome en prime, pas de raison de se priver donc.

ESPeasy : afficher les valeurs de vos capteurs

Avec ESPEasy installé sur un ESP8266, vous pouvez brancher de multiples capteurs et transmettre leurs valeurs en MQTT sur votre broker Mosquitto, en http sur votre domotique, etc.

Seulement il y a encore plus simple pour juste visualiser les valeurs obtenues, juste avec un http://IP_ESP8266/tempe.esp par exemple.  IP_ESP8266 est l’adresse IP utilisée par votre ESP sur votre réseau local, des fois que…

ESP01 avec platine relai + sonde température DS18B20

Prenons comme exemple notre petit ESP01 muni d’une sonde DHT11, configurée comme suit :

Retenez le Name de la sonde, ici temperature et les Values reçues via cette sonde, à savoir Temperature et Humidity. Nous allons donc lire les valeurs de cette sonde via un fichier injecté sur l’ESP. Commencez par créer un fichier tempe.esp comme suit :

<html>
<head>
</head>
<body>
Temperature : [temperature#Temperature] C
<br>
Humidite : [temperature#Humidity] %
<br>
</body>
</html>

Nous retrouvons ici le nom de la sonde en minuscules, et les noms des valeurs mesurées avec une lettre majuscule à chaque fois. S vous aviez une sonde appelée ds18b20 par exemple, il vous suffirait d’utiliser ce nom générique, tout simplement.

Chargeons le fichier tempe.esp sur http://IP_ESP8266/upload et rendons-nous sur :

http://IP_ESP8266/tempe.esp

pour visualiser les mesures :

Temperature : 26.00 C
Humidite : 43.00 %

Ce type d’affichage simplifié peut bien entendu évoluer vers plus compliqué, ceci n’est qu’un exemple de débutant 😉

TP-Link Kasa et IFTTT

If This Then That, IFTTT, Si Ceci Alors Cela en français, un site qui permet de créer des Applets destinées à interagir avec votre domotique, votre Google Home, votre Alexa, vos modules TP-Link, eWelink, etc.

Aujourd’hui, nous allons créer une applet permettant de venir activer une prise Kasa (TP-Link) via un simple appel https. Cet appel pourra être lancé avec un simple curl depuis votre Raspberry Pi, un bouton sur Domoticz ou autre application de domotique, voir même depuis un IoT ESPeasy, ou un tableau de bord Node Red : vous l’aurez compris, TOUT est permis, TOUT est envisageable !

Commencez par vous inscrire sur https://ifttt.com/ puis depuis votre compte en haut à droite, cliquez sur CREATE :

Nous allons choisir WEBHOOKS pour pouvoir venir activer votre prise via https :

Choisissons Receive a web request puisque telle est notre intention, cqfd :

et donnons le nom radiateurmarche pour pouvoir l’indiquer dans notre requête web par la suite :

Nous venons de créer le déclencheur, trigger, il faut maintenant choisir le service qui sera activé, dans notre cas Kasa de TP-Link sur lequel nous possédons déjà un compte et une App android active. Les prises ont déjà un nom, faciles à retrouver :

Il vous sera demandé email et mot de passe de votre compte Kasa.
Que voulons-nous faire ? Choisissons Turn On pour ALLUMER notre prise :

Quelle prise voulons-nous activer ? La salle de bain, choisissons là :

et on termine en cliquant sur Create Action.

Voyons le résumé, puis validons :

Maintenant, il nous faut récupérer la clé d’activation, sans cela IFTTT ne pourra pas savoir qui demande quoi. Rendez-vous dans l’Applet Webhooks :

et cliquons sur SETTINGS en haut à droite :

Cliquez et copiez l’URL, cachée ici, pas fou 😉

Vérifions notre applet :

Vous pourrez désormais activer le chauffage en envoyant :

https://maker.ifttt.com/trigger/radiateurmarche/with/key/xxxxxxxxx

où xxxxxxxx doit être utilisé avec votre propre clé.

A vous de jouer maintenant pour créer une applet radiateurarret et utiliser le lien https://maker.ifttt.com/trigger/radiateurarret/with/key/xxxxxxxxxxxxx pour désactiver la prise.

Simple non ?

 

 

 

 

ESP-01 : platine relai et sonde DS18B20

Dans le monde fabuleux des IoT, nous avons déjà parlé des ESP8266, et nous parlerons ici de l’ESP01, une version avec 1 Mo de mémoire flash et très peu de GPiO utilisables : 0 pour la platine relai, 2 pour la sonde de température que nous allons lui ajouter.

Voyons un peu ce que cela donne visuellement :

A gauche, l’ESP01, programmé avec ESP Easy, enfiché sur sa platine relai, et collé sur le relai la sonde DS18B20. Sur cette platine DS18B20, de gauche à droite la masse (bleu), le +5Vcc (orange) et le signal (jaune), à relier comme suit sur le côté soudures de la platine relai :

Du coté configuration d’ESP Easy :

Pour contrôler le relai, envoyez par ex http://192.168.1.140/control?cmd=GPIO,0,1 (ici l’ESP à l’IP 192.168.1.140) pour couper le relai, ou http://192.168.1.140/control?cmd=GPIO,0,0 pour l’activer.

A vous de jouer maintenant, vous disposez désormais d’une sonde tout-en-un, parfaitement capable de détecter une température et de faire agir le relai en fonction du résultat, pour un chauffage par exemple.