QGIS : Utilisation des listes (array)

Il est possible d’enregistrer plusieurs valeurs dans un champs sous forme de liste (les array). Cette fonctionnalité est à mon goût très peu utilisée sur QGIS alors qu’elle offre une multitude de possibilités sympathiques : par exemple pour traiter des résultats issus de jointure one-to-many ou n’importe quelle situation où vous avez besoin d’avoir plusieurs valeurs dans une colonne. Il existe aussi la possibilité de manipuler des tableaux associatifs (clés -> valeur), appelé map (mauvaisement traduit carte) dans QGIS. Pythoniquement, les array correspondent aux listes et les map aux dictionnaires.

Continuer à lire … « QGIS : Utilisation des listes (array) »

Publicités

Isochrones et isodistances sur QGIS

isochrone3

Les isochrones permettent de représenter les secteurs où il est possible de se rendre en un temps donné : les endroits à moins de 30 min d’un hôpital, à 5 minutes de chez vous, etc. Lorsqu’on s’intéresse à la distance à parcourir plutôt qu’au temps, on parle alors d’isodistance.

Continuer à lire … « Isochrones et isodistances sur QGIS »

Récupérer les informations du compteur EDF en wifi avec un ESP8266

Les compteurs EDF, même assez anciens (sauf les très vieux à roue 😉 ) disposent d’une sortie de téléinformation permettant de récupérer différentes informations, notamment : l’index de consommation, la période tarifaire (heures creuses), la puissance souscrite, etc.. Ceci permet de suivre sa consommation en temps réel et peut également s’interfacer avec une solution domotique.

graphe_consoedf
Affichage sous Jeedom (plugin Suivi Conso)

Je propose ici un montage lowcost permettant de récupérer la téléinformation du compteur EDF sur un broker MQTT. Le MQTT est un protocole de communication léger particulièrement adapté à la domotique, je l’utilise quasi-exclusivement sur mon système basé sur Jeedom.

Montage


Matériel nécessaire (5 à 10€) :

  • ESP8266-01
  • MOSFET BS170
  • Optocoupleur LTV814
  • Résistances : 10k (x2) + 4,7k
  • Convertisseur AC-DC 5V (testé avec 700mA, devrait être ok avec un 500mA)
  • Convertisseur DC-DC 5v->3.3V (type AMS1117)
  • Bornier pour circuit intégré (x2)
  • Plaque de prototypage

Le principe du montage va être de transformer l’information issue du compteur en une information lisible sur le port série de l’ESP8266. Plusieurs montages circulent sur le web, celui de Charle semble particulièrement fiable et propre d’après ses test (en plus d’être cheap !).

schema-final-teleinfo-transistor-fet
Schéma du montage. Charle’s blog

Le RXD sur le schéma vient se connecter sur le pin RXD (Réception) de l’ESP8266. Ne pas oublier de connecter le CH_PD au +3.3v pour que la carte fonctionne.

esp-01-pinout
ESP-01. The Garage Lab

Concernant l’alimentation, il existe des transformateurs AC-DC qui sortent directement du 3.3V mais l’alimentation semble alors particulièrement instable et peut faire planter l’ESP8266. Après quelques mauvaises expériences j’utilise toujours un transfo 5V et un AMS1117.

Programmation de l’ESP8266

L’ESP est programmé via l’interface Arduino à l’aide d’un convertisseur USB-TTL. Si vous n’avez jamais programmé un ESP8266 avec cette méthode, je vous suggère de lire la documentation du projet.

Attention : lorsque vous envoyez le code sur l’ESP8266, déconnectez la téléinformation car celle-ci arrive également sur le RX. Pour rappel, le GPIO0 doit être relié à la masse pour démarrer l’ESP8266 en mode « programmation ».

La connexion au wifi se fait grâce à la bibliothèque WifiManager : si l’ESP8266 ne peut se connecter au aucun réseau (premier démarrage) il passe en mode hotspot pour vous permettre de saisir vos identifiants.

Le code est disponible ici : esp8266teleinfo.ino


mqtt_teleinfo
Trame reçu via MQTT

Utiliser les données OpenStreetMap sous QGIS (via SpatiaLite)

Importer des données OpenStreeMap dans une base Spatialite

qgis-spatialite-osm

Il existe une multitude de moyens d’importer des données d’OpenStreetMap pour les exploiter sous un logiciel SIG.

Je vais vous présenter ici une solution permettant d’importer les données dans une base SQLite/SpatiaLite. SpatiaLite est gérée nativement par QGIS et propose une alternative plutôt intéressante aux fichiers shapes (meilleurs performances, fichier unique et portable, requêtes SQL…).

Continuer à lire … « Utiliser les données OpenStreetMap sous QGIS (via SpatiaLite) »