Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Jauge IoT avec Arduino, Yaler et IFTTT

Composants et fournitures

Arduino Yun
× 1
Servos (Tower Pro MG996R)
× 1
Écrous et boulons M3
× 3
Contreplaqué 4 mm
× 1

Outils et machines nécessaires

Coupe laser
Pistolet à colle chaude
Téléphone Android ou iOS

Applications et services en ligne

Service IFTTT Maker

À propos de ce projet

(De http://www.instructables.com/id/IoT-Gauge-with-Arduino-Yaler-IFTTT/)

Comment créer une jauge IoT basée sur Arduino et basée sur le Web avec une API REST et la connecter à la plate-forme de mash-up IFTTT.com, via le service de relais Yaler.net*.

Qu'est-ce qu'il y a d'excitant là-dedans ? Avec Maker Channel, IFTTT prend en charge les Webhooks personnalisés, pour intégrer des projets DIY IoT. J'attendais ça depuis 2011**.

Inspirée de WhereDial, un classique de l'Internet des objets DIY, la jauge IoT indique l'emplacement actuel de son propriétaire. Un peu comme l'horloge Weasley dans Harry Potter.

La conception et le code de la jauge IoT sont génériques et peuvent également être utilisés pour afficher, par ex. conditions météorologiques. La logique réside dans le Cloud, la jauge n'est qu'un servo avec une API.

Salut, @tamberg

Téléchargements (pour l'Uno)

  • Bibliothèque Yaler Arduino, YalerEthernetServer.zip
  • Code Arduino Uno, IoTGaugeWebService.ino

*) Je suis l'un des fondateurs de Yaler.

**) Zapier, une autre plateforme de mash-up, a toujours pris en charge les Webhooks personnalisés.

Étape 1 :Découpe au laser et assemblage de la jauge IoT

Produire les pièces

  • Télécharger les fichiers de conception de la jauge IoT
  • Découpez le motif au laser dans du contreplaqué de 4 mm
  • Gravez les noms de lieux (ou tout ce dont vous avez besoin) ou ajoutez-les avec un stylo

Assemblage de la jauge IoT

  • Ajouter le shield Ethernet à l'Arduino (pour l'Uno)
  • Vissez l'Arduino à la plaque de base (notez son orientation)
  • Ajoutez la grande plaque frontale au servo, puis la petite plaque frontale
  • Collez la plaque de base dans les deux plaques frontales, assurez-vous que tout s'aligne
  • Coller les clignotants sur la plaque frontale, s'assurer qu'ils sont bien orientés
  • Utilisez des cavaliers pour attacher le servo à la broche 9, 5V et GND de l'Arduino (ou du blindage)
  • Ajouter l'aiguille de l'horloge (à calibrer plus tard)

Étape 2 : téléchargement du code Arduino du service Web IoT Gauge

Service Web simple

Le contrôle de la jauge IoT est assez simple. Un service Web (ou API REST) ​​écoute les demandes entrantes et définit la position du servo en conséquence. La jauge IoT n'est qu'un servo " stupide ". Garder la logique dans le Cloud vous permet d'échanger le "cerveau" plus tard, par ex. pour afficher les conditions météorologiques au lieu d'un emplacement.

Accès à distance à l'Arduino

Pour donner au service IFTTT Cloud l'accès à la jauge IoT, notre API REST Arduino doit être accessible et adressable à partir du Web. Les experts pourraient ajouter une exception à leur pare-feu ou routeur. Mais comme cela peut être assez compliqué, nous utiliserons un service de relais*.

Installation de l'Arduino Uno (pour le Yun, voir ci-dessous)

  • Installez la bibliothèque YalerEthernetServer.zip comme indiqué dans https://yaler.net/arduino
  • Télécharger le code IoTGaugeWebService.ino Arduino Uno
  • Assurez-vous d'utiliser une adresse MAC unique
  • Remplacer RELAY_DOMAIN avec votre domaine de relais. (Pour obtenir un domaine de relais, inscrivez-vous pour un compte d'essai gratuit sur Yaler.net)
  • Téléchargez le code sur votre Arduino Uno

Installation de l'Arduino Yun (pour l'Uno, voir ci-dessus)

  • Installez YalerTunnel et activez l'accès Web comme indiqué dans https://yaler.net/arduino-yun
  • Télécharger le code IoTGaugeMailboxApi.ino Arduino Yun
  • Téléchargez le code sur votre Arduino Yun

Pourquoi le code Yun est-il différent du code Uno ?

Le Yun fournit une API REST intégrée appelée boîte aux lettres. Pour rendre cette API accessible depuis le Web, nous utilisons le démon Linux YalerTunnel (qui supporte également le cryptage SSL, contrairement à Uno). En vous appuyant sur ce qui existe déjà, vous pouvez simplifier votre code.

Jetez un œil aux deux programmes et décidez par vous-même. L'API de boîte aux lettres du Yun n'est pas parfaite (et pas strictement RESTful, car elle permet à GET de modifier les valeurs), mais elle est basée sur un script exécuté du côté Linux du Yun, qui utilise moins de la précieuse mémoire du côté Arduino.

*) Si vous n'êtes pas satisfait d'utiliser un service de relais, supprimez-le simplement et (pour l'Uno) décommentez le serveur local.

Étape 3 :Test du service Web Arduino avec Curl

Installation de l'outil de ligne de commande Curl sur votre ordinateur

  • Téléchargez et installez Curl depuis http://curl.haxx.se/
  • Ouvrez un shell sur votre ordinateur et testez Curl avec$ curl -v http://google.com/

Activation de l'API Arduino Yun (ignorer pour Uno)

  • Alimentez le Yun, attendez un peu, puis visitez http://arduino.local/
  • Connectez-vous et cliquez sur Configurer
  • Faites défiler vers le bas et définissez l'accès à l'API REST sur Ouvrir
  • Cliquez sur Configurer et redémarrer

Test de la jauge IoT avec Curl

  • Assurez-vous que l'Arduino est alimenté et connecté à Internet
  • Réglez la position du servo sur 3 (ou toute autre position de 1 à 5) avec*$ curl -vX POST http://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3 (Remplacez RELAY_DOMAIN avec le domaine relais que vous utilisiez auparavant)
  • Assurez-vous que le servo a déplacé la main dans la position souhaitée (ajustez la main si nécessaire)
  • Assurez-vous d'obtenir quelque chose comme 200 D'accord en réponse à l'appel curl
  • Si vous obtenez 504 l'Arduino n'est pas en ligne ou il y a eu une faute de frappe

Pourquoi devriez-vous tester votre API avec Curl ?

Curl est un client HTTP standard. Votre navigateur est idéal pour tester les requêtes GET, et il existe des outils en ligne pour tester également les requêtes PUT et POST. Mais parfois, le navigateur ajoute de la magie, comme suivre les redirections. Donc, si vous voulez vous assurer qu'un client de base ou un appel Webhook tiers comme celui envoyé par IFTTT peut accéder à votre API de service Web, Curl est idéal.

*) Pour l'Uno, POST /mailbox/pos/3 fonctionne aussi bien que PUT /servo?pos=3 car le code d'analyse de la requête est assez indulgent.

Étape 4 :connexion de l'Arduino au canal IFTTT Maker

Créer une nouvelle recette IFTTT (ou ignorer pour ajouter une recette existante)

IFTT vous permet de créer des recettes reliant un déclencheur à une action.

  • Visitez https://ifttt.com/myrecipes/personal/new (inscrivez-vous si vous ne l'avez pas encore fait)
  • Pour choisir un canal de déclenchement, recherchez par ex. "Appareil Android" ou "Emplacement iOS" et sélectionnez l'icône de la chaîne
  • Ensuite, choisissez un déclencheur, par ex. Se connecte à un réseau WiFi spécifique (pour Android)
  • Entrez un nom de réseau ou un emplacement
  • Lorsque vous choisissez le canal d'action, recherchez le Maker chaîne et sélectionnez-la
  • Ensuite, sélectionnez l'action Faire une demande Web
  • Saisissez l'URL http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3  (Remplacez RELAY_DOMAIN avec le domaine relais que vous utilisiez auparavant)
  • Pour la Méthode, sélectionnez P OST
  • Pour le type de contenu, sélectionnez application/x-www-form-urlencoded
  • Le corps peut être laissé vide

Ajout d'une recette IFTTT existante

IFTTT permet aux utilisateurs de publier des recettes. Voici deux recettes pour contrôler votre jauge IoT :

  • Ouvrez la recette "Position de la jauge IoT à partir de l'emplacement Android WiFi" ici
  • Ou la recette "Position de la jauge IoT depuis l'emplacement iOS" ici
  • Ou recherchez* les recettes « IoT Gauge », https://ifttt.com/recipes/search?q=IoT+Gauge
  • Pour ajouter une instance de la recette à vos recettes, cliquez sur Ajouter bouton
  • Entrez un nom ou un emplacement de réseau WiFi (ou tout ce que la recette demande)
  • Remplacer RELAY_DOMAIN dans l'URL avec le domaine relais que vous utilisiez auparavant
  • Adaptez le paramètre pos dans l'URL de 1 à 5 pour correspondre à votre emplacement
  • Ajouter une autre instance de la recette pour chaque emplacement

*) Il semble qu'IFTTT n'ajoute pas encore les recettes de la chaîne Maker aux résultats de la recherche

Étape 5 :Création d'un bouton IFTTT Do pour la jauge IoT

Applications IFTTT Do

IFTTT fournit également Do applications pour iOS et Android. L'application vous permet de déclencher manuellement des actions. Cela peut être idéal pour tester vos autres recettes IFTTT.

Contrairement aux recettes IFTTT normales, les recettes de l'application Do ne peuvent pas (encore ?) être partagées ou rendues publiques. Vous devrez donc les créer à partir de zéro.

Créer un nouveau bouton IFTTT Do

  • Téléchargez l'application Do Button pour Android ou iPhone sur https://ifttt.com/products/do/button
  • Travailler à travers les écrans d'introduction plutôt ennuyeux mais obligatoires (?)
  • Utilisez la petite icône en bas à droite pour faire apparaître la liste des recettes
  • Appuyez sur le signe, puis sur Chaînes et recherchez le Maker chaîne
  • Ensuite, sélectionnez l'action Faire une demande Web
  • Saisissez l'URL http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3  (Remplacez RELAY_DOMAIN avec le domaine relais que vous utilisiez auparavant)
  • Pour la Méthode sélectionnez POSTER
  • Pour le Type de contenu sélectionnez application/x-www-form-urlencoded
  • Le Corps peut être laissé vide
  • Appuyez sur Ajouter pour créer le bouton
  • Une fois créée, la recette peut être modifiée en ligne sur https://ifttt.com/myrecipes/do

C'est tout - merci d'avoir lu, et faites-moi savoir si vous avez des questions ou des suggestions.

Code

Bitbucket

Pièces et boîtiers personnalisés

IoT_Gauge.zip

Schémas


Processus de fabrication

  1. horloge IV9 Numitron DIY la plus simple avec Arduino
  2. Jeu de gyroscope Arduino avec MPU-6050
  3. Sauver la vie aquatique et lutter contre la pollution de l'eau avec l'IoT et l'IA
  4. MotionSense
  5. Roue de mesure simple bricolage avec encodeur rotatif
  6. Lévitation électromagnétique répulsive Arduino
  7. enregistreur de données de ballon météo alimenté par Arduino
  8. ArduFarmBot - Partie 2 :Station distante et implémentation IoT
  9. Horloge à bascule Arduino à matrice LED unique