Jul.12

Découverte des ESP8266 : le microcontrôleur connecté par Wifi pour 2€ au potentiel phénoménal avec Constellation

Ce dossier a été initialement publié dans le magazine Programmez! n°190 en novembre 2015.

Programmez! n°190 - Novembre 2015 Article Programmez!

Arrivé à l’été 2014, l’ESP8266 est un microcontrôleur produit par la société chinoise Espressif intégrant un module Wifi.

Avec un prix avoisinant les 2€, il a très vite séduit les foules qui se sont empressées de créer une communauté dans laquelle on retrouve maintenant beaucoup de documentation, de bouts de codes, des firmwares et projets en tout genre.

Initialement cette puce était un « simple » module Wifi permettant à un microcontrôleur équipé d’une liaison série, tel un Arduino, de disposer d’une connectivité Wifi pour un prix dérisoire. Mais en Octobre 2014, Espressif publié un kit de développement (SDK) permettant de reprogrammer la puce supprimant ainsi la nécessité d’un microcontrôleur séparé. Comme nous allons le découvrir dans cet article, les possibilités sont immenses !

Domotique,Constellation

Jul.15

S-Panel : une interface domotique et IoT multi-plateforme avec Cordova, AngularJS et Constellation–ou comment créer son dashboard domotique mural

Comme vous le savez surement, j’ai un tas d’objets et de services connectés : de la domotique Z-Wave, thermostat Nest, capteur météo NetAtmo, amplis et TVs connectés, lampes Hue mais aussi des réalisations “home-made” comme The Mirror, S-Light, S-Energy, S-Sound, etc…

Afin de connecter tout cela, j’ai créé au début de l’année 2014 une plateforme nommée “Constellation” permettant d’interconnecter mes objets et services dans le but de simplifier l’orchestration et le développement, permettre la collaboration entre ces systèmes et créer de l’intelligence ambiante.

Plateforme Constellation

Les cas d’usage de la plateforme ont déjà été abordé dans cet article, celui là ou encore celui là ! La puissance de la plateforme permet de faire dialoguer n’importe quel système ou objet une fois connecté à Constellation. Par exemple contrôler des lampes Hue depuis un Arduino ne représente que deux lignes de code : une pour se connecter à Constellation et l’autre pour envoyer un message ! De ce fait, il devient facile d’automatiser un tas de scénario en prenant en compte les informations de chaque objet ou service.

Au delà de la pro-activité de la maison, j’ai cherché depuis longtemps une interface domotique centrale. Il y a maintenant 2 ans j’ai réalisé “The Mirror”, une interface domotique cachée dans un miroir de mon entrée me permettant d’avoir accès à toutes les informations essentielles au moment de partir de la maison ou en rentrant (météo, temps de route, agenda, rappel, état des zones, etc..).

Comme expliqué dans cet article, le miroir n’est ni plus ni moins qu’une interface connectée à ma Constellation pour me présenter visuellement les différentes informations des systèmes connectés (comme mon agenda, les temps de route, météo, la domotique, etc..).

Constellation

Pour la pièce de vie de la maison, il me fallait également une interface me permettant un contrôle centralisé de l’ensemble des équipements : TVs, amplis, diffusion audio des différentes pièces, contrôle des mediacenters Kodi, des lumières, du chauffage, de l’alarme, suivi des compteurs d’énergie, disponibilité de mes sites web, contrôle hardware de mes serveurs, T° des pièces, cameras,  etc.. etc..

Bref un véritable dashboard de la maison connectée !

S-Panel logo

Après plusieurs tentatives, je vous présente mon dernier “S” projet : S-Panel !

S-Panel

Constellation

Feb.21

[.NET 4.0] Introduction à MEF : Managed Extensibility Framework

image Bientôt disponible dans la nouvelle version de la plateforme .NET de Microsoft, le .NET 4.0 introduira le framework MEF actuellement disponible en code ouvert sur CodePlex.

MEF pour Managed Extensibilty Framework, que vous trouverez sous le namespace System.ComponentModel.Composition, est une librairie .NET facilitant le développement d’application extensible.

C’est le travail résultant de l’équipe « Application Framework Core »  responsable d’harmoniser les frameworks applicatifs (type WinForm, SL, WPF et ASP.NET) de la même façon que le fait l’équipe de la BCL (Base Class Library) au niveau le plus bas de .NET.

Développer avec MEF, comment ca marche ?

Aujourd’hui pour concevoir nos applications de façon extensible, nous sommes souvent obligé de développer notre propre système d’extention. L’arrivée, fin 2007, du .NET 3.5 a ouvert une brèche dans la mise à disposition d’un framework générique pour le développement de telle application. Le System.Addin (encore nommé MAF, Managed Addin Framework) met à disposition des mécanismes simplifiant la mise en place d’un système d’extension basé sur des AddIns. Je traiterai un peu plus bas dans cet article des différences entre MAF et MEF.

MEF offre quant à lui un mécanisme d’import/export assez original. Le concept est de marquer des classes, variables, propriétés ou méthode par l’attribut Export. Dans d’autre classes vous pouvez alors créer des propriétés marquées de l’attribut Import pour venir importer les classes, variables, propriétés ou méthodes exportés.

MEF n’est pas qu’un simple framework d’ IoC (Inversion de contrôle) bien qu’il propose des fonctionnalités similaires comme l’injection de dépendance (comme le fait aussi StuctureMap ou Unity). MEF met surtout le focus sur la découverte de composant et permet à votre application de se composer par elle-même et cela à l’exécution.

.NET

Jan.29

Historique .NET : dates et versions (Fx, CLR, IDE et langages)

En préparant du contenu pour des sessions sur le futur de .NET (VS2010, .NET 4.0, C# 4.0 ou encore VB 10), j’ ai été amené à faire un petit tableau récapitulatif des dates et versions des principaux éléments de .NET : le framework, la CLR, l’ IDE Visual Studio et les deux principaux langages .net (C# et VB.net).

Un petit copier/coller pour vous en faire profiter :

image

A bientôt 🙂

.NET