Table des matières:

IOT123 - ASSIMILATE SENSOR HUB : WEBSERVER DE PERSONNALISATION ICOS10 : 11 étapes
IOT123 - ASSIMILATE SENSOR HUB : WEBSERVER DE PERSONNALISATION ICOS10 : 11 étapes

Vidéo: IOT123 - ASSIMILATE SENSOR HUB : WEBSERVER DE PERSONNALISATION ICOS10 : 11 étapes

Vidéo: IOT123 - ASSIMILATE SENSOR HUB : WEBSERVER DE PERSONNALISATION ICOS10 : 11 étapes
Vidéo: How to set up #static #IPAddress on #TASMOTA devices 2024, Juillet
Anonim
IOT123 - ASSIMILATE SENSOR HUB: WEBSERVER DE PERSONNALISATION ICOS10
IOT123 - ASSIMILATE SENSOR HUB: WEBSERVER DE PERSONNALISATION ICOS10
IOT123 - ASSIMILATE SENSOR HUB: WEBSERVER DE PERSONNALISATION ICOS10
IOT123 - ASSIMILATE SENSOR HUB: WEBSERVER DE PERSONNALISATION ICOS10
IOT123 - ASSIMILATE SENSOR HUB: WEBSERVER DE PERSONNALISATION ICOS10
IOT123 - ASSIMILATE SENSOR HUB: WEBSERVER DE PERSONNALISATION ICOS10

Les esclaves ASSIMILATE SENSOR/ACTOR intègrent des métadonnées qui sont utilisées pour définir les visualisations dans Crouton. Cette version ajoute un serveur Web au maître ESP8266, sert des fichiers de configuration qui peuvent être modifiés par l'utilisateur, puis utilise ces fichiers pour redéfinir les visualisations. Ainsi, les noms des cartes de tableau de bord et la plupart des propriétés configurables peuvent être modifiés. Cela était nécessaire, par ex. le DHT11 publie les propriétés Température et Humidité: si un site possède plusieurs nœuds avec des capteurs DHT11 séparés, ils ne peuvent pas tous être appelés Température (Temp. Garage, Temp Cour…). La restriction de longueur des métadonnées définie par le bus I2C (16 caractères) n'existe pas et des valeurs plus riches peuvent être appliquées (jusqu'à 64 caractères).

L'authentification de base facultative est configurable pour la page Web d'édition, ainsi qu'une liste d'exclusion de l'authentification pour d'autres ressources.

Un interrupteur côté bas qui met les esclaves hors tension si nécessaire, a également été développé sur une carte fille existante.

Comme note technique, avant de commencer cette construction, l'empreinte mémoire était de 70 % à cause d'un graphe d'objet de métadonnées global. La dernière bibliothèque AssimilateBus a subi des modifications importantes qui découplent la variable globale en fichiers JSON plus petits enregistrés dans SPIFFS. Cela a ramené l'empreinte à environ 50 %, ce qui est plus sûr pour l'ensemble de l'analyse/construction JSON. La bibliothèque AssimilateBusSlave reste la même (ASSIM_VERSION 2) tout au long de ces modifications.

CARACTÉRISTIQUES ET VISION

Actuellement, les esclaves (capteurs et acteurs) sont autonomes et reposent sur des messages I2C basés sur des conventions pour lire les propriétés ou agir sur des commandes. Le maître récupère les métadonnées et les propriétés des esclaves et les envoie à un courtier MQTT. Il démarre également un serveur Web et sert des fichiers JSON qui peuvent être modifiés pour configurer le maître et personnaliser les métadonnées/propriétés qui sont finalement consommées par Crouton. Les capteurs/acteurs individuels sont lus/commandés via Crouton sans que le maître ait aucune connaissance préalable de ce que font les esclaves.

L'un des objectifs du RÉSEAU ASSIMILATE IOT est de personnaliser Crouton afin que les éditeurs de mashup servis à partir des serveurs Web IOT NODE (comme cette version) soient ajoutés en tant que composants Web qui donneront un contrôle complet sur ce que fait la chose, c'est-à-dire que le maître n'est pas programmé, les esclaves ont des ensembles de fonctionnalités de base mais le tableau de bord Crouton intègre toutes les règles métier nécessaires pour faire fonctionner la chose !

La fourche Crouton est considérée comme une option pour le contrôle/la configuration décentralisée des choses. En substance, toute combinaison client/GUI MQTT peut administrer vos éléments, car chaque fonction (capteurs et acteurs) est exposée en tant que points de terminaison MQTT.

Étape 1: croûtons

Croûton
Croûton
Croûton
Croûton

Croûton. https://crouton.mybluemix.net/ Crouton est un tableau de bord qui vous permet de visualiser et de contrôler vos appareils IOT avec une configuration minimale. Il s'agit essentiellement du tableau de bord le plus simple à configurer pour tout passionné de matériel IOT utilisant uniquement MQTT et JSON.

Les ESCLAVES ASSIMILÉS (capteurs et acteurs) ont des métadonnées et des propriétés intégrées que le maître utilise pour créer le paquet json deviceInfo que Crouton utilise pour créer le tableau de bord. L'intermédiaire entre ASSIMILATE NODES et Crouton est un broker MQTT qui est compatible avec les websockets: Mosquito est utilisé pour la démo.

Comme ASSIMILATE MASTER (cette version) demande des propriétés, il formate les valeurs de réponse dans le format requis pour les mises à jour de Crouton.

Étape 2: Le serveur Web / Éditeur

Le serveur Web / Éditeur
Le serveur Web / Éditeur
Le serveur Web / Éditeur
Le serveur Web / Éditeur

Lorsque le maître démarre (cette version), un serveur Web intégré est démarré. L'adresse IP est transmise à la console série; finalement, cela sera publié sur le tableau de bord de Crouton.

Lorsque vous naviguez jusqu'à l'URL indiquée, l'ÉDITEUR ACE sera chargé:

Ace est un éditeur de code intégrable écrit en JavaScript. Il correspond aux fonctionnalités et aux performances des éditeurs natifs tels que Sublime, Vim et TextMate.

Ace est populaire auprès des serveurs Web intégrés et offre une bonne interface pour éditer et enregistrer les fichiers JSON.

Cliquer sur un nom de fichier sur la gauche lira le fichier de SPIFFS sur l'ESP8266 et chargera le contenu à éditer sur la droite. Le fichier peut être enregistré à partir de la barre d'outils supérieure.

Pour télécharger un fichier:

  1. Choisissez Fichier dans votre système de fichiers local.
  2. Insérez un chemin de dossier (si nécessaire) dans la zone de texte.
  3. Cliquez sur Télécharger.
  4. Actualiser la page.

Étape 3: personnalisation de l'appareil

Personnalisation de l'appareil
Personnalisation de l'appareil

La configuration de l'appareil (l'ESP8266) est effectuée via le fichier device.json.

Certaines de ces entrées (wifi_ssid, wifi_key) devront être modifiées avant de télécharger les données sur SPIFFS (ESP8266 Sketch Data Upload).

Accédez à la racine du serveur Web (affichée dans la sortie de la console comme

ÉDITION

Dans ACE EDITOR, choisissez config/device.json.

Les entrées sont:

  • www_auth_username: nom d'utilisateur d'autorisation pour les fichiers du serveur Web (vide pour non-autorisation).
  • www_auth_password: mot de passe d'autorisation pour les fichiers du serveur Web (si le nom d'utilisateur est défini).
  • www_auth_exclude_files: liste délimitée par des points-virgules des chemins de fichiers à exclure des contrôles d'autorisation (si le nom d'utilisateur est défini).
  • sensor_interval: les millisecondes entre les publications de données vers le courtier MQTT.
  • ntp_server_name: le nom du serveur de temps à utiliser.
  • time_zone: le décalage en heures pour votre heure locale.
  • wifi_ssid: le SSID de votre point d'accès local.
  • wifi_key: la clé à utiliser pour le SSID.
  • mqtt_broker: l'adresse du courtier MQTT.
  • mqtt_username: le nom d'utilisateur à utiliser pour le courtier MQTT (vide car aucun compte n'est nécessaire).
  • mqtt_password: le mot de passe à utiliser à partir du nom d'utilisateur MQTT.
  • mqtt_port: le port du courtier MQTT.
  • mqtt_device_name: le nom à utiliser pour les sujets MQTT et l'identification Crouton.
  • mqtt_device_description: la description de l'appareil affiché dans Crouton.
  • viz_color: la couleur pour identifier les cartes de l'appareil dans Crouton (dans la version fourchue)

Étape 4: personnalisation de la propriété

Personnalisation de la propriété
Personnalisation de la propriété
Personnalisation de la propriété
Personnalisation de la propriété
Personnalisation de la propriété
Personnalisation de la propriété

Chacun des esclaves a un tableau de structure nvc défini dans le fichier definitions.h:

//--------------------------------------- PROPRIÉTÉS PUBLIÉES

nvc props[2] ={ {"Humidité", "", true}, {"Température", "", false} }; //---------------------------------------- FIN DES PROPRIÉTÉS PUBLIÉES

Chacune des entrées a un index, le premier étant 0 (zéro).

La personnalisation du nom de propriété est effectuée via le fichier user_props.json.

Accédez à la racine du serveur Web (affichée dans la sortie de la console comme

ÉDITION

Dans ACE EDITOR, choisissez config/user_props.json (ou téléchargez-en un).

La structure est:

La première clé est l'adresse de l'esclave dans le fichier definitions.h identifiée par:

#define ADDRESS_SLAVE XX

  • Le prochain niveau de clés est l'index de la propriété.
  • La valeur de cette clé est le nom de propriété à utiliser dans Crouton au lieu du nom de propriété défini dans le fichier de définitions.

Étape 5: personnalisation des métadonnées

Personnalisation des métadonnées
Personnalisation des métadonnées
Personnalisation des métadonnées
Personnalisation des métadonnées
Personnalisation des métadonnées
Personnalisation des métadonnées
Personnalisation des métadonnées
Personnalisation des métadonnées

En raison du nombre de personnalisations possibles, chaque esclave possède son propre fichier de modification de métadonnées. Les fichiers doivent être au format user_metas_.json.

L'adresse de l'esclave se trouve dans le fichier definitions.h des croquis ATTINY85:

#define ADDRESS_SLAVE XX

Les métadonnées sont définies dans le même fichier comme ceci:

const static char viz1 PROGMEM = "VIZ_CARD_TYPE";

const static char viz2 PROGMEM = "2:chart-donut"; const static char viz3 PROGMEM = "1";

La première ligne est le nom de l'élément de métadonnées.

La deuxième ligne est la valeur. Il a généralement un suffixe d'index de propriété.

La troisième ligne est le drapeau de continuation. 1 - continuer, 0 - fin des métadonnées (VCC_MV).

Accédez à la racine du serveur Web (affichée dans la sortie de la console comme

ÉDITION

Dans ACE EDITOR, choisissez config/user_metas_SLAVE_ADDRESS.json (ou téléchargez-en un). La structure est:

  • Un tableau de paires nom/valeur.
  • Le nom est le nom de l'élément de métadonnées à modifier.
  • La valeur est le changement. Le suffixe d'index est vérifié pour le remplacement.

Étape 6: Matériaux et outils

Matériaux et outils
Matériaux et outils
Matériaux et outils
Matériaux et outils
Matériaux et outils
Matériaux et outils

Nomenclature ICOS10 (IDC) Shell

  1. Gabarit de broches D1M BLOCK (1)
  2. Base et boîtier D1M BLOCK (1)
  3. Wemos D1 Mini (1)
  4. Bouclier Wemos D1 Mini Protoboard (1)
  5. Connecteurs femelles 40P (8P, 8P, 9P, 9P)
  6. Connecteur mâle 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. 1" Protoboard double face (2)
  8. 2N7000 NFET (1)
  9. Embase mâle IDC à 6 broches (1)
  10. Fil de branchement (~10)
  11. Fil étamé 0.5mm (~4)
  12. Vis autotaraudeuses à tête ronde 4G x 15 mm (2)
  13. Vis à tête fraisée autotaraudeuse 4G x 6 mm (~20)
  14. Soudure et fer (1)

Étape 7: Préparation du MCU

Image
Image
Préparation MCU
Préparation MCU

Dans cette version, nous utilisons le Wemos D1 Mini. Si vous avez déjà construit un BLOC WIFI D1M, vous pouvez l'utiliser pour le composant matériel modulaire. Sinon, suivez au minimum la section suivante.

SOUDAGE DES PIN JIG SUR LE MCU (à l'aide du PIN JIG) Si vous ne pouvez pas imprimer un PIN JIG, suivez simplement les instructions et improvisez: la hauteur (offset) du PIN JIG est de 6,5 mm.

  1. Imprimez/obtenez un PIN JIG à partir de cette page.
  2. Faites passer les broches d'en-tête par le bas de la carte (TX droite-gauche) et dans le gabarit de soudure.
  3. Appuyez sur les broches sur une surface plane et dure.
  4. Appuyez fermement la planche sur le gabarit.
  5. Soudez les 4 broches d'angle.
  6. Réchauffez et repositionnez la carte/les broches si nécessaire (carte ou broches non alignées ou d'aplomb).
  7. Soudez le reste des broches.

TÉLÉCHARGEMENT DU FIRMWARE

Le référentiel de code peut être trouvé ici (instantané).

Un ZIP de la bibliothèque peut être trouvé ici (instantané).

Instructions pour "Importer une bibliothèque ZIP" ici.

Une fois la librairie installée vous pouvez ouvrir l'exemple "mqtt_crouton_esp8266_customization_webserver".

Instructions pour configurer Arduino pour le Wemos D1 Mini ici.

Dépendances: ArduinoJson, TimeLib, PubSubClient, NeoTimer (voir les pièces jointes en cas de rupture des modifications dans les référentiels).

TÉLÉCHARGER SUR SPIFFS

Une fois le code chargé dans l'IDE Arduino, ouvrez device.json dans le dossier data/config:

  1. Modifiez la valeur de wifi_ssid avec votre SSID WiFi.
  2. Modifiez la valeur de wifi_key avec votre clé WiFi.
  3. Modifiez la valeur de mqtt_device_name avec votre identification de périphérique préférée (aucune connexion n'est nécessaire).
  4. Modifiez la valeur de mqtt_device_description avec votre description de périphérique préférée (dans Crouton).
  5. Enregistrez device.json.
  6. Téléchargez les fichiers de données dans SPIFFS.

Étape 8: Préparation du boîtier MCU

Image
Image
Préparation du boîtier MCU
Préparation du boîtier MCU
Préparation du boîtier MCU
Préparation du boîtier MCU

Le boîtier MCU expose des en-têtes pour le D1 Mini à brancher et des en-têtes pour les cartes filles qui communiquent avec le circuit Socket (capteurs et acteurs).

EN-TÊTES DE LOGEMENT Ceci est basé sur un Mini Protoboard D1 et répartit ces broches:

  1. Broches pour le D1M WIFI BLOCK/D1 Mini à connecter.
  2. Dérivations directes des 2 rangées de contacts du D1M WIFI BLOCK/D1 Mini. Ceux-ci ne sont disponibles que pour plus de commodité lors du prototypage. On s'attend à ce que les cartes filles bloquent tout accès à ces en-têtes.
  3. 4 Breakouts des broches spécifiques utilisées par les cartes filles.

Pour ajouter les contacts D1M à l'EN-TÊTE DE LOGEMENT:

  1. Regardez la vidéo SOUDURE À L'AIDE DU JIG DE DOUILLE.
  2. Faites passer les broches d'en-tête par le bas de la carte (TX en haut à gauche sur le côté supérieur).
  3. Faites passer le gabarit sur le collecteur en plastique et nivelez les deux surfaces.
  4. Retournez le gabarit et l'assemblage et appuyez fermement sur une surface plane et dure.
  5. Appuyez fermement la planche sur le gabarit.
  6. Soudez les 4 broches d'angle en utilisant un minimum de soudure (juste un alignement temporaire des broches).
  7. Réchauffez et repositionnez la carte/les broches si nécessaire (carte ou broches non alignées ou d'aplomb).
  8. Soudez le reste des broches.
  9. Retirez le gabarit.
  10. Coupez les broches au-dessus des soudures.

Pour ajouter les évasions de la carte-fille:

  1. Coupez 4 connecteurs femelles 9P.
  2. En haut, insérez les connecteurs 9P comme indiqué et soudez en bas.

Pour ajouter les évasions directes:

  1. Coupez 2 en-têtes femelles 8P.
  2. En haut, insérez les connecteurs 8P comme indiqué et soudez en bas.

Pour connecter les en-têtes, en bas avec la broche TX orientée vers le haut:

  1. Tracez et soudez à partir de la broche RST sur 4 broches.
  2. Tracez et soudez à partir de la broche A0 sur 4 broches.
  3. Tracez et soudez à partir de la broche D1 sur 4 broches.
  4. Tracez et soudez à partir de la broche D2 sur 4 broches.
  5. Tracez et soudez à partir de la broche D0 sur 2 rangées et sur 4 broches.
  6. Tracez et soudez à partir de la broche D7 sur 4 broches.
  7. Tracez et soudez à partir de la broche GND sur 4 broches.
  8. Tracez et soudez à partir de la broche 5V sur 4 broches.
  9. Tracez et soudez à partir de la broche 3V3 vers le bas à 45 ° sur 4 broches.

ASSEMBLAGE DU LUMINAIRE

Les EN-TÊTES DE BOÎTIER sont fixées au BOÎTIER MCU et celle-ci est fixée à la PLAQUE DE BASE.

  1. Avec le côté long des EN-TÊTES DE BOÎTIER pointé vers le trou, insérez les CONTACTS D1M dans les ouvertures du BOÎTIER MCU et poussez à ras.
  2. Insérez le MCU sur les CONTACTS du MCU lors de la fixation pour assurer un alignement correct.
  3. Placez le CADRE DE L'EN-TÊTE sur le dessus des fixations d'assemblage et fixez-le avec 2 vis 4G x 16 mm.
  4. Placez les luminaires assemblés avec le trou pointé vers le côté court et fixez-les avec les vis 4G x 6 mm.

Étape 9: Construire l'interrupteur côté bas/la carte fille RESET des esclaves

Construire l'interrupteur côté bas des esclaves/la carte fille RESET
Construire l'interrupteur côté bas des esclaves/la carte fille RESET
Construire l'interrupteur côté bas des esclaves/la carte fille RESET
Construire l'interrupteur côté bas des esclaves/la carte fille RESET
Construction de l'interrupteur côté bas des esclaves/carte fille RESET
Construction de l'interrupteur côté bas des esclaves/carte fille RESET

Il s'agit d'une amélioration de la carte fille REST développée lors de la dernière version. Cela ajoute un commutateur côté bas qui connecte les esclaves à GROUND. Si le maître est réinitialisé, les esclaves le feront également, et l'initialisation propageant les métadonnées recommencera.

ASSEMBLÉE

  1. À l'intérieur, insérez les connecteurs mâles 90° 9P (1), connecteur mâle 90° 1P (2), le 2N7000 (3) et soudez à l'extérieur.
  2. A l'intérieur, tracez un fil jaune de JAUNE1 à JAUNE2 et soudez.
  3. A l'intérieur, tracez un fil nu de SILVER1 à SILVER2 et soudez.
  4. A l'intérieur, tracez un fil nu de SILVER3 à SILVER4 et soudez.

Étape 10: Assemblage des principaux composants

Assemblage des principaux composants
Assemblage des principaux composants
Assemblage des principaux composants
Assemblage des principaux composants
Assemblage des principaux composants
Assemblage des principaux composants
Assemblage des principaux composants
Assemblage des principaux composants
  1. Assurez-vous que le SHELL a été construit et que le circuit a été testé (câble et prises).
  2. Remplacez le connecteur mâle 2P de la CARTE FILLE 3V3 I2C avec un connecteur mâle 2P 90º 1P.
  3. Insérez la carte fille 3V3 I2C, avec la broche 3V3 sur l'extrémité déchiquetée des en-têtes (voir photo).
  4. Insérez le LOW-SIDE SWITCH/RESET-CARTE FILLE, avec le fil à l'intérieur (voir photo).
  5. Tracez un fil Dupont entre l'embase mâle 90º 1P de la CARTE-FILLE DE RÉINITIALISATION jusqu'à la CARTE-FILLE 3V3 I2C.
  6. Insérez la prise IDC du SHELL CABLE dans l'embase IDC de la CARTE FILLE 3V3 I2C.
  7. Insérez soigneusement les CARTES FILLE/BOÎTIER entre les câbles dans la COQUE et alignez les trous de la base.
  8. Fixez l'ENSEMBLE DE BASE à la COQUE à l'aide des vis 4G x 6 mm.
  9. Attachez tous les CAPTEURS ASSIMILÉS que vous avez fabriqués.

Étape 11: Étapes suivantes

Image
Image
Prochaines étapes
Prochaines étapes
Prochaines étapes
Prochaines étapes
  1. Pointez votre navigateur sur
  2. Assurez-vous que le courtier est test.mosquitto.org.
  3. Cliquez sur Connecter.
  4. Entrez le nom du périphérique saisi sous la forme mqtt_device_name dans le fichier /config/device.json.
  5. Cliquez sur Ajouter un appareil.
  6. Cliquez sur Connexion automatique.
  7. Allumez votre ICOS10 (5V MicroUSB).
  8. Vérifiez via le tableau de bord Crouton.

Conseillé: