Comment nous avons créé le système IoT pour gérer la consommation d'énergie solaire

Si vous n'avez aucune idée de l'architecture de développement et de la conception mécanique / électrique derrière les solutions IoT, elles pourraient sembler "avoir des qualités ou des pouvoirs apparemment surnaturels". Par exemple, si vous montrez un système IoT fonctionnel aux gens du XVIIIe siècle, ils penseraient que c'est magique. Cet article est en quelque sorte en train de briser ce mythe. Ou, pour le dire plus techniquement, sur des conseils pour affiner le développement de l'IoT pour un projet génial dans le domaine de la gestion de l'énergie solaire.


Spoiler : pas de sorts, seulement des idées analytiques pour développer un service rapide et facile.


Avertissement : Nous n'offrons pas de solution universelle (elle n'existe tout simplement pas), partagez simplement les choses que nous trouvons sérieuses. Ces points peuvent être des caractéristiques tueuses alors qu'au contraire leur négligence peut les tuer. Jeu de mots prévu;)


Présentation du système IoT pour visualiser et optimiser la consommation d'énergie solaire


Nous avons eu le plaisir de travailler sur un projet d'amélioration de la consommation d'énergie auto-générée. Le noyau réside dans la visualisation et l'optimisation de l'utilisation des systèmes photovoltaïques (PV) pour les entreprises d'installation et les clients finaux. Ainsi, lorsque Solar Manager est installé en tant que hub central pour distribuer l'énergie solaire produite entre les appareils domestiques, vous utilisez un maximum d'énergie auto-produite.



Nous avons déjà écrit sur la perspective commerciale de l'utilisation de l'énergie solaire, et nous allons maintenant nous plonger dans les défis technologiques et les conseils de développement.


Prérequis absolu


Avant de commencer, soyons clairs. Il y a une chose qui s'applique à chaque projet, qu'il s'agisse d'un système IoT ou d'un simple atterrissage.


Ne commencez jamais la mise en œuvre avant d'avoir une compréhension complète de ce que vous voulez réaliser (et toutes les personnes impliquées le font).


Rien de tel n'est évident. Non, il n'y a pas de télépathes et personne ne lit vos pensées. Clarifiez, discutez, assurez-vous d'être sur la même longueur d'onde.



Bien sûr, si vous ne voulez pas dépenser deux fois plus de temps et d'argent.


La mission


Alors, qu'est-ce que nous avons comme entrées? Connectivité flexible et micrologiciel distant centralisé, 5 rôles d'utilisateur avec différents UX et ensembles d'autorisations, conversion et analyse des données, énorme quantité de demandes et, comme cerise sur le gâteau, traçage de nombreuses données de valeur temporelle sur les graphiques.


Défis et spécificités de la mise en œuvre du système IoT pour la consommation d'énergie


En matière de développement, 3 choses importent le plus: la stabilité, la pertinence et la rapidité. Surtout lorsque le projet nécessite une architecture monolithique. C'est pourquoi la logique globale, tous les flux d'utilisateurs et la conception de la base de données doivent être aussi simples et optimisés que possible. Soyons honnêtes, en 2019, personne ne veut attendre 40 secondes car `` vos données sont en cours de traitement ''. Voici donc la liste de questions / réponses pour les plateformes IoT auxquelles nous nous référons:


  • L'architecture correspond-elle aux exigences et aux spécifications?
  • Comment allez-vous convertir, traiter et analyser les données collectées?
  • Quelles sont les relations les plus optimales entre les couches parent-enfant MVC / MVP? Peuvent-ils alors être mis à l'échelle sans être interrompus?
  • Existe-t-il des modules qui exécutent des fonctions similaires / adjacentes? Peuvent-ils être réunis en un seul module polyvalent? Est-ce que cela introduira ou réduira la complexité?
  • La communication entre les étapes est-elle optimale?
  • Comment mettre en cache des données avant de les visualiser?
  • L'expérience utilisateur (UX) est-elle simple et évidente pour chaque rôle d'utilisateur?

Divisez ce qui doit être distribué, unissez ce qui est similaire. Ne confondez pas cela, cependant, avec la création d'énormes classes qui (devraient) résoudre plusieurs tâches. Au lieu de cela, créez-en de petits pour une seule tâche. Pour les tâches complexes, créez plusieurs classes qui résolvent chacune une sous-tâche et une autre qui les utilise.


  • Architecte des solutions IoT intelligentes



Smart désigne ici la création d'une architecture de projet rapide, évolutive, optimisée et durable qui s'adapte aux exigences du projet. Les questions fondamentales qui se sont posées à ce stade:


  1. Quel est le flux d'architecture le plus simple et le plus direct?
  2. Comment simplifier l'expérience utilisateur pour chaque rôle?
  3. Pouvons-nous réviser l'architecture initiale pour une meilleure évolutivité et optimisation des performances?

Pour les applications Web, cela implique la conception du contrôleur de vue du modèle hiérarchique (HMVC). Par exemple, pour mieux allouer les ressources et fournir une réponse plus rapide, utilisez les connexions entre l'API, le serveur principal, le serveur principal et le serveur Edge. Configurez la communication cloud-local, le stockage et le transfert de données afin d'obtenir rapidement la bonne réponse (bonjour, Captain Obvious!).



  • Concevoir une base de données en pensant aux performances



Ne sous-estimez jamais l'importance de réfléchir à la conception de la base de données (DB). Cela s'applique également aux relations entre les collections de la base de données. Vous avez beaucoup d'entités, qui interagissent de différentes manières, il est donc crucial de garder toutes les connexions logiques associées en un seul endroit.


Donc, lorsque vous avez la structure initiale à portée de main, déterminez:


  1. Est-ce (un à un, un à plusieurs, plusieurs à plusieurs) le type de relation optimal pour cette collection? Résout-il la tâche le plus efficacement?
  2. Dans quelle mesure cela correspond-il à la tâche sur un écran spécifique?
  3. Cela s'intègre-t-il bien dans l'architecture générale du projet?

Optimisez la logique derrière chaque module et assurez-vous que l'architecture générale est préservée. Réfléchissez à l'ensemble des autorisations. Réfléchissez ensuite et optimisez. N'oubliez pas de définir les types de connexion de sorte que pour chaque tâche, vous ayez toutes les informations nécessaires au même endroit et gérez correctement les demandes.


Par exemple, imaginez que votre base de données est un restaurant-minute. Vous avez beaucoup de clients, vous devez servir de la nourriture rapidement et précisément ce qu'ils ont commandé. Ou bien votre entreprise est finie. C'est exactement la même chose pour les bases de données. Oui, il existe des dizaines de collections et vous avez besoin de données de 7 à 8 d'entre elles simultanément. Concevez donc les relations de manière à ce qu'elles soient logiquement connectées et renvoyez la réponse rapidement.


Le système IoT est comme un restaurant. Ne faites pas attendre les clients.


  • Comment tracer [gazillion] de données



Rappelez-vous les moments où les sites étaient chargés pendant quelques minutes? Nous avons vu des applications où les tableaux de bord se chargent encore plus lentement. Et c'est un non-non.


Les graphiques sont une nouvelle norme. La visualisation des données est couramment utilisée dans SCADA, IoT et tous les projets analytiques et pour une raison. Voir les pics de consommation d'énergie, les tendances du marché, le CO2 dans l'air et tout autre élément que vous pouvez mesurer (généralement au fil du temps) donne une impression vivante. Vous voyez, vous comprenez, vous agissez. Avec la présentation textuelle de tableaux de données massifs, votre œil se brouillera en un rien de temps.


Le défi consiste donc à tracer rapidement des graphiques avec un grand nombre de paires valeur-temps. Avant que les utilisateurs ne voient les données sur le graphique, le système doit déterminer tous les points pour les tracer. Nous avons eu beaucoup de brainstorming pour déterminer comment mettre en cache les données afin que le traçage d'un graphique avec 50K + paires de données-valeur prenne moins de 2 secondes.



De zéro à la production et au-delà


Outre l'application Web, nous développons également des applications iOS et Android pour une installation, une surveillance et un accès en déplacement.


La chose importante à retenir lorsque vous travaillez sur des systèmes IoT est de maintenir la simplicité et l'évolutivité. L'architecture IoT typique à 5 étapes doit être bien pensée pour ne pas apporter de complexité redondante.


Au fur et à mesure que chaque produit évolue, vous devez réfléchir aux moyens de superposer de nouvelles fonctionnalités sans interrompre les fonctionnalités existantes. Et, bien sûr, n'oubliez jamais les tests unitaires.


Moins d'un an après le lancement


Depuis son lancement en octobre 2018, le Solar Manager est adopté et utilisé par les plus grandes entreprises photovoltaïques grossistes et installateurs en Suisse.


En examinant et en optimisant les habitudes de consommation d'énergie, les consommateurs tirent le meilleur parti de leurs PV et économisent ainsi des coûts. À une échelle plus globale et selon Deloitte , une telle solution rend l'énergie solaire compétitive par rapport aux sources d'énergie traditionnelles. Cela, à son tour, le rend attrayant pour d'autres consommateurs résidentiels et entreprises. Et, finalement, cela ne semble-t-il pas être la base d'une ville intelligente que nous attendons tous?


Derrière le succès de tout projet IoT


Il n'y a pas de «guide ultime» pour créer un produit réussi. Tout d'abord, chaque projet est unique et apporte ses propres défis. Deuxièmement, même si vous avez réalisé un tas de projets dans le domaine, la technologie et les exigences du marché évoluent. Donc, l'expérience que vous avez d'il y a 2 ou même six mois pourrait ne plus être pertinente maintenant.


Vous pouvez également consulter notre GitHub pour de nombreux instruments open-source gratuits pour le développement IoT.

Source: https://habr.com/ru/post/fr466473/


All Articles