Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

IoT-meter met Arduino, Yaler en IFTTT

Componenten en benodigdheden

Arduino Yun
× 1
Servo's (Tower Pro MG996R)
× 1
M3 moeren en bouten
× 3
4 mm multiplex
× 1

Benodigde gereedschappen en machines

Lasercutter
Hot-lijmpistool
Android- of iOS-telefoon

Apps en online services

IFTTT Maker-service

Over dit project

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

Hoe u een internetgebaseerde, Arduino-gebaseerde IoT-meter met een REST API bouwt en deze verbindt met het IFTTT.com-mash-upplatform, via de Yaler.net-relayservice*.

Wat is hier opwindend aan? Met het Maker Channel ondersteunt IFTTT aangepaste webhooks om doe-het-zelf IoT-projecten te integreren. Daar wacht ik al sinds 2011** op.

Geïnspireerd door WhereDial, een DIY Internet of Things-klassieker, toont de IoT-meter de huidige locatie van de eigenaar. Een beetje zoals de Weasley Clock in Harry Potter.

Het ontwerp en de code van de IoT-meter is generiek en kan ook worden gebruikt om b.v. weersomstandigheden. De logica bevindt zich in de Cloud, de meter is slechts een servo met een API.

Groetjes, @tamberg

Downloads (voor de Uno)

  • Yaler Arduino-bibliotheek, YalerEthernetServer.zip
  • Arduino Uno-code, IoTGaugeWebService.ino

*) Ik ben een oprichter van Yaler.

**) Zapier, een ander mash-upplatform, ondersteunde altijd aangepaste webhooks.

Stap 1:Lasersnijden en monteren van de IoT-meter

De onderdelen produceren

  • Download de ontwerpbestanden van IoT Gauge
  • Laser het ontwerp uit 4 mm multiplex
  • Grave locatienamen (of wat je maar nodig hebt), of voeg ze toe met een pen

De IoT-meter in elkaar zetten

  • Voeg het Ethernet-schild toe aan de Arduino (voor de Uno)
  • Schroef de Arduino op de grondplaat (let op de richting)
  • Voeg de grote voorplaat toe aan de servo en vervolgens de kleine voorplaat
  • Plak de basisplaat in beide voorplaten, zorg ervoor dat alles uitgelijnd is
  • Lijm de indicatoren op de voorplaat, zorg ervoor dat ze goed georiënteerd zijn
  • Gebruik jumperdraden om de servo aan pin 9, 5V en GND van de Arduino (of schild) te bevestigen
  • Voeg de wijzer toe (om later te kalibreren)

Stap 2:De Arduino-code van de IoT Gauge-webservice uploaden

Eenvoudige webservice

Het bedienen van de IoT-meter is vrij eenvoudig. Een webservice (of REST API) luistert naar binnenkomende verzoeken en stelt de servopositie overeenkomstig in. De IoT-meter is slechts een "domme" servo. Door de logica in de cloud te houden, kunt u het "brein" later verwisselen, b.v. om weersomstandigheden weer te geven in plaats van een locatie.

Toegang op afstand tot de Arduino

Om de IFTTT Cloud-service toegang te geven tot de IoT Gauge, moet onze Arduino REST API toegankelijk en adresseerbaar zijn vanaf het web. Experts kunnen een uitzondering toevoegen aan hun firewall of router. Maar omdat dit nogal een gedoe kan zijn, gebruiken we een relay-service*.

De Arduino Uno installeren (voor de Yun, zie hieronder)

  • Installeer de YalerEthernetServer.zip-bibliotheek zoals weergegeven in https://yaler.net/arduino
  • Download de IoTGaugeWebService.ino Arduino Uno-code
  • Zorg ervoor dat u een uniek MAC-adres gebruikt
  • Vervang RELAY_DOMAIN met uw relay-domein. (Om een ​​relay-domein te krijgen, meldt u zich aan voor een gratis proefaccount op Yaler.net)
  • Upload de code naar je Arduino Uno

De Arduino Yun installeren (voor de Uno, zie hierboven)

  • Installeer YalerTunnel en schakel webtoegang in zoals getoond in https://yaler.net/arduino-yun
  • Download de IoTGaugeMailboxApi.ino Arduino Yun-code
  • Upload de code naar je Arduino Yun

Waarom verschilt de Yun-code van de Uno-code?

De Yun biedt een ingebouwde REST API genaamd mailbox. Om deze API vanaf het web toegankelijk te maken, gebruiken we de YalerTunnel Linux-daemon (die ook SSL-codering ondersteunt, in tegenstelling tot de Uno). Door voort te bouwen op wat er al is, kun je je code vereenvoudigen.

Bekijk beide programma's en oordeel zelf. De mailbox-API van Yun is niet perfect (en niet strikt RESTful, omdat het GET toelaat om waarden te wijzigen), maar het is gebaseerd op een script dat draait op de Linux-kant van de Yun, dat minder kostbaar geheugen gebruikt aan de Arduino-kant.

*) Als u niet tevreden bent over het gebruik van een relay-service, verwijdert u deze en (voor de Uno) de lokale server zonder commentaar.

Stap 3:De Arduino-webservice testen met Curl

Het Curl-opdrachtregelprogramma op uw computer installeren

  • Download en installeer Curl van http://curl.haxx.se/
  • Open een shell op je computer en test Curl met$ curl -v http://google.com/

De Arduino Yun API inschakelen (overslaan voor de Uno)

  • Voed de Yun aan, wacht even en ga dan naar http://arduino.local/
  • Log in en klik op Configureren
  • Scroll naar beneden en stel REST API-toegang in op Open
  • Klik op Configureren en opnieuw opstarten

De IoT-meter testen met Curl

  • Zorg ervoor dat de Arduino van stroom wordt voorzien en is verbonden met internet
  • Stel de servopositie in op 3 (of een andere positie van 1 tot 5) met*$ curl -vX POST http://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3 (Vervang RELAY_DOMAIN met het relay-domein dat u eerder gebruikte)
  • Zorg ervoor dat de servo de hand naar de gewenste positie heeft bewogen (pas de hand indien nodig aan)
  • Zorg ervoor dat je iets krijgt als 200 OK als reactie op de curl-oproep
  • Als u 504 . krijgt de Arduino is niet online of er is een typfout gemaakt

Waarom zou je je API testen met Curl?

Curl is een standaard HTTP-client. Je browser is geweldig om GET-verzoeken te testen, en er zijn online tools om ook PUT- en POST-verzoeken te testen. Maar soms voegt de browser magie toe, zoals het volgen van omleidingen. Dus als u er zeker van wilt zijn dat een basisclient of een webhook-aanroep van derden, zoals degene die door IFTTT wordt verzonden, toegang heeft tot uw webservice-API, is Curl geweldig.

*) Voor de Uno werkt POST /mailbox/pos/3 net zo goed als PUT /servo?pos=3 omdat de code die het verzoek ontleden nogal vergevingsgezind is.

Stap 4:De Arduino verbinden met het IFTTT Maker-kanaal

Een nieuw IFTTT-recept maken (of overslaan om een ​​bestaand recept toe te voegen)

Met IFTT kun je recepten maken die een trigger aan een actie koppelen.

  • Bezoek https://ifttt.com/myrecipes/personal/new (meld je aan als je dat nog niet hebt gedaan)
  • Als u een triggerkanaal wilt kiezen, zoekt u naar b.v. "Android-apparaat" of "iOS-locatie" en selecteer het kanaalpictogram
  • Kies vervolgens een trigger, b.v. Verbindt met een specifiek wifi-netwerk (voor Android)
  • Voer een netwerknaam of locatie in
  • Zoek bij het kiezen van een actiekanaal naar de Maker kanaal en selecteer het
  • Selecteer vervolgens de actie Een webverzoek doen
  • Voer de URL in http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3  (Vervang RELAY_DOMAIN met het relay-domein dat u eerder gebruikte)
  • Selecteer voor de methode P OST
  • Selecteer voor het inhoudstype application/x-www-form-urlencoded
  • Het lichaam kan leeg worden gelaten

Een bestaand IFTTT-recept toevoegen

Met IFTTT kunnen gebruikers recepten publiceren. Hier zijn twee recepten om uw IoT-meter te bedienen:

  • Open hier het recept 'IoT-meterpositie van Android WiFi-locatie'
  • Of het recept "IoT-meterpositie vanaf iOS-locatie" hier
  • Of zoek* naar "IoT Gauge"-recepten, https://ifttt.com/recipes/search?q=IoT+Gauge
  • Als u een exemplaar van het recept aan uw recepten wilt toevoegen, klikt u op Toevoegen knop
  • Voer een wifi-netwerknaam of locatie in (of waar het recept ook om vraagt)
  • Vervang RELAY_DOMAIN in de URL met het relay-domein dat u eerder gebruikte
  • Pas de pos-parameter in de URL aan van 1 tot 5 zodat deze overeenkomt met uw locatie
  • Voeg voor elke locatie nog een exemplaar van het recept toe

*) Het lijkt erop dat IFTTT nog geen Maker-kanaalrecepten toevoegt aan de zoekresultaten

Stap 5:Een IFTTT Do-knop maken voor de IoT-meter

IFTTT Do-apps

IFTTT biedt ook Doe apps voor iOS en Android. Met de app kun je handmatig acties activeren. Dit kan geweldig zijn om je andere IFTTT-recepten te testen.

In tegenstelling tot normale IFTTT-recepten, kunnen de recepten van de Do-app (nog?) niet worden gedeeld of openbaar worden gemaakt. Je moet ze dus helemaal opnieuw maken.

Een nieuwe IFTTT Do-knop maken

  • Download de Do Button Android- of iPhone-app op https://ifttt.com/products/do/button
  • Werk de nogal vervelende maar verplichte (?) introschermen door
  • Gebruik het kleine pictogram rechtsonder om de lijst met recepten te openen
  • Tik op het bord en vervolgens op Kanalen en zoek naar de Maker kanaal
  • Selecteer vervolgens de actie Een webverzoek doen
  • Voer de URL in http://REAY_DOMAIN.try.yaler.io/mailbox/pos/3  (Vervang RELAY_DOMAIN met het relay-domein dat u eerder gebruikte)
  • Voor de Methode selecteer POST
  • Voor het Inhoudstype selecteer application/x-www-form-urlencoded
  • Het Lichaam kan leeg worden gelaten
  • Tik op Toevoegen om de knop
  • . te maken
  • Eenmaal gemaakt, kan het recept online worden bewerkt op https://ifttt.com/myrecipes/do

Dat was het - bedankt voor het lezen, en laat het me weten als je vragen of suggesties hebt.

Code

Bitbucket

Aangepaste onderdelen en behuizingen

IoT_Gauge.zip

Schema's


Productieproces

  1. DIY eenvoudigste IV9 Numitron-klok met Arduino
  2. Arduino-gyroscoopspel met MPU-6050
  3. Het waterleven redden en watervervuiling bestrijden met IoT en AI
  4. MotionSense
  5. DIY eenvoudig meetwiel met roterende encoder
  6. Arduino afstotende elektromagnetische levitatie
  7. Arduino aangedreven weerballon datalogger
  8. ArduFarmBot - Part 2:Remote Station an IoT Implementation
  9. Enkele LED Matrix Arduino Flip Clock
  10. Microcontrollers Lab
  11. Handheld geigerteller met Arduino Nano