Aan de slag met Blynk: Simple DIY IoT Devices

Blynk is een Internet of Things (IoT) -service die is ontworpen om afstandsbediening en het lezen van sensorgegevens van uw apparaten zo snel en gemakkelijk mogelijk te maken.

Blynk is een Internet of Things (IoT) -service die is ontworpen om afstandsbediening en het lezen van sensorgegevens van uw apparaten zo snel en gemakkelijk mogelijk te maken.
Advertentie

Blynk is een Internet of Things (IoT) -service die is ontworpen om afstandsbediening en het lezen van sensorgegevens van uw apparaten zo snel en gemakkelijk mogelijk te maken. In dit artikel bespreken we precies wat Blynk is, hoe het werkt en bieden we twee korte voorbeeldprojecten over verschillende toepassingen van de service met NodeMCU en Raspberry Pi-ontwikkelboards.

Het is nog nooit zo eenvoudig geweest om slimme objecten te ontwikkelen met microcontrollers, en IoT-apparaten zijn de afgelopen jaren snel in populariteit gegroeid. Ontwikkelborden zoals Arduino of Raspberry Pi kunnen worden gebruikt om alles vanuit de stopcontacten te besturen. Goedkope stopcontacten bedienen via OpenHAB Hoe goedkope RF-stopcontacten bedienen van OpenHAB Heb wat goedkope RF-gebaseerde stopcontacten, maar ontdekte dat geen slimme hubs werken met deze? Je kunt ze koppelen aan je DIY smart home-systeem met slechts ongeveer $ 10 in delen. Meer lezen bij u thuis bij bewegingsgeactiveerde kerstdecoraties Upgrade uw kerstkrans met een bewegingsgeactiveerde LED-matrix Upgrade uw kerstkrans met een bewegingsgeactiveerde ledmatrix Deze DIY-kerstkrans maakt gebruik van een Arduino- en LED-matrix voor een verbazingwekkend licht-up-display zal indruk maken op je vrienden en familie. Lees verder .

Een gebied dat een probleem kan vormen voor niet-ingewijden is coderen en netwerken. Blynk probeert de behoefte aan uitgebreide codering te verwijderen en het gemakkelijk te maken om toegang te krijgen tot uw apparaten vanaf elke locatie op uw smartphone. Het is gratis te gebruiken voor hobbyisten en ontwikkelaars, maar het is ook beschikbaar om commercieel te gebruiken voor een vergoeding - bedrijven kunnen Blynk gebruiken om hun eigen apps en systemen te maken en ze vervolgens met hun eigen branding verkopen.

Blynk gebruikt zijn eigen server en bibliotheek om de service te laten werken, maar het is de Blynk-app die de grootste kracht lijkt te zijn.

Voer de Blynk-app in

De Blynk-app is gratis beschikbaar op Android en iOS. Het is het startpunt voor uw projecten, met een eenvoudig te gebruiken drag-and-drop-systeem voor het bouwen van aangepaste bedieningselementen voor uw IoT-installatie. De workflow is snel: bij het starten van een nieuw project wordt u gevraagd om uw ontwikkelbord te kiezen uit een uitgebreide lijst en ook uw verbindingsmethode. De app stuurt vervolgens via e-mail een autorisatietoken om verbinding te maken met uw apparaat via de Blynk-server.

Bedieningselementen worden Widgets genoemd : verschillende soorten invoermethoden en uitvoerweergaven inclusief knoppen, schuifregelaars, een joystick, grafieken en tekstfeedback. Er zijn ook componentspecifieke widgets, met gestileerde bedieningselementen voor LED's, LCD-schermen en zelfs live gestreamde video. Ook opmerkelijk zijn widgets die functies toevoegen, zoals automatisch posten op Twitter en aangepaste meldingen.

Hoewel de app gratis is, beperkt deze het aantal widgets dat u tegelijkertijd kunt gebruiken door ze allemaal een "Energiekost" te geven. De app geeft je een balans van 2.000 om mee te spelen, met de optie om meer te kopen indien nodig.

Ik vond dat het opgegeven beginsaldo meer dan genoeg was voor de hier vermelde voorbeeldprojecten, maar als je installatie ingewikkelder is, kun je merken dat je vrij snel geen sap meer hebt.

widgets en knop blynk

Elke widget heeft een bewerkingsmenu waarmee u de naam en kleur kunt wijzigen. Vervolgens kiest u welke pen van invloed is (of het nu gaat om een ​​punaise op uw bord of een van Blynk's virtuele pinnen) samen met het bereik van te verzenden waarden. Voor uitvoerschermen zoals grafieken en tekstvakken, kunt u ook kiezen hoe vaak u wilt dat deze wordt bijgewerkt, waardoor mogelijk kostbare bandbreedte wordt bespaard.

Blynk biedt ook de mogelijkheid om instructies toe te wijzen aan "virtuele" pinnen, die door de gebruiker geconfigureerde verbindingen zijn tussen de app en de hardware. Een enkele knop in de app kan daarom worden gebruikt om veel verschillende gebeurtenissen op het apparaat te activeren. We bespreken hoe we deze later in het artikel kunnen gebruiken.

De app biedt de mogelijkheid om uw project met anderen te delen. Er wordt een QR-code gegenereerd die kan worden verzonden via e-mail of direct kan worden gescand en kan worden gebruikt door iedereen die ook de Blynk-app heeft. Degene met wie je deelt, kan geen wijzigingen in het project aanbrengen, waardoor het een snelle en handige manier is om het beheer van je apparaten te delen. Het is echter vermeldenswaard dat uw project in de app moet worden uitgevoerd zodat anderen toegang hebben tot de hardware.

Je kunt het project ook delen zonder toegang tot je hardware toe te staan, wat een geweldige manier is om mensen te leren hoe ze de app kunnen gebruiken zonder dat ze je lichten aan en uit zetten!

Ik vond het maken van een app erg snel en intuïtief. Na het maken kunt u het meteen gebruiken door op het pictogram voor afspelen in de rechterbovenhoek te drukken. Als u later wijzigingen moet aanbrengen, drukt u eenvoudig op dezelfde knop om terug te gaan naar de bewerkmodus.

De Blynk-server

Nadat u een app hebt gemaakt om uw apparaat te bedienen, heeft u twee mogelijkheden om ermee te communiceren.

De Blynk-cloudserver is snel, responsief en gratis te gebruiken. Verbinding maken met een Wi-Fi-apparaat is net zo eenvoudig als het kopiëren van uw gegenereerde autorisatiecode naar uw Arduino-schets en het verstrekken van uw Wi-Fi-gegevens. Voor Raspberry Pi levert Blynk een testscript dat u met uw autorisatiecode kunt uitvoeren met hetzelfde effect. Later in dit artikel zullen we ons eigen script maken met behulp van de Blynk-bibliotheek om verbinding te maken met de service.

De tweede optie is om uw eigen Blynk-server te hosten. Blynk biedt een opensource Netty-gebaseerde Java-server die kan worden uitgevoerd vanaf uw computer of zelfs een Raspberry Pi. Dit heeft voor sommige gebruikers verschillende voordelen op het gebied van functionaliteit en beveiliging, maar voor onze voorbeelden hier zullen we ons concentreren op het gebruik van de Blynk-cloudserver.

blynk website

The Blynk Library

Het derde en laatste element van Blynk is de Blynk-bibliotheek. Deze bibliotheek werkt met een enorme lijst met ontwikkelborden om communicatie tussen de app en uw hardware mogelijk te maken.

Op zijn eenvoudigst is alles wat nodig is om de bibliotheek te installeren en een van de goed geannoteerde voorbeeldschetsen te laden.

Blynk: initiële installatie

Installeer de Blynk-app op uw smartphone en maak een account. Zorg ervoor dat u een e-mailadres gebruikt dat u daadwerkelijk kunt openen, want dat is waar uw tokens worden verzonden. Maak nu een project, selecteer welk bord u gaat gebruiken en hoe u er verbinding mee gaat maken. Beide voorbeelden maken hier verbinding via Wi-Fi, hoewel verbindingen via Bluetooth, Ethernet en zelfs GSM ook mogelijk zijn.

Maak uw project. Hiermee wordt automatisch een autorisatietoken verzonden. Als u het niet ontvangt, kunt u het opnieuw verzenden door het pictogram voor projectinstellingen (de kleine noot) te selecteren, uw apparaat te selecteren en 'E-mail' te selecteren.

Installeer vervolgens de Blynk-bibliotheken op de Blynk-website. Installeer de bibliotheek voor Arduino door de bestanden naar uw map Arduino> bibliotheken te kopiëren. Als je nieuw bent bij Arduino, dan is hier een handleiding om aan de slag te gaan Aan de slag met Arduino: een beginnershandleiding Aan de slag met Arduino: een beginnersgids Arduino is een open-sourceprotocol voor prototyping van elektronica op basis van flexibele, eenvoudig te gebruiken hardware en software. Het is bedoeld voor kunstenaars, ontwerpers, hobbyisten en iedereen die geïnteresseerd is in het maken van interactieve objecten of omgevingen. Lees verder .

Voor Raspberry Pi moet je ervoor zorgen dat Node.js als eerste is geïnstalleerd. Er is een handleiding voor de installatie van Node.js in dit artikel. Hoe maak je een DIY Siri-bestuurd wifi-licht Hoe maak je een DIY Siri-bestuurd Wi-Fi-licht? In deze gids leer je hoe je een Wi-Fi bestuurbaar licht, en bestuur het met Siri. Meer lezen als je het nodig hebt.

Zorg er eerst voor dat uw Pi up-to-date is en dat het essentiële pakket is geïnstalleerd.

sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential 

Installeer vervolgens de Node Package Manager, de OnOff- bibliotheek en de Blynk- bibliotheek door dit in uw Terminal-venster te typen.

 sudo npm install -g npm sudo npm install -g onoff sudo npm install -g blynk-library 

U kunt controleren of alles werkt door het Blynk-testscript uit te voeren:

 blynk.js [YourAuthorizationTokenHere] 

Als alles werkt, ziet het er als volgt uit:

blynk pi blynk testscript

Als u fouten krijgt, controleert u of uw Pi up-to-date is en of de meest recente versie van Node.js is geïnstalleerd voordat u de NPM-, OnOff- en Blynk-bibliotheken opnieuw installeert.

Snelle installatie met NodeMCU

Dit eerste voorbeeld laat zien hoe snel het is om met Blynk eenvoudige systemen in te stellen. Het vereist geen codering en eenmaal ingesteld staat het volledig op zichzelf. Zolang het bord toegang heeft tot je wifi-verbinding, heb je overal toegang vanaf je smartphone.

Stel om te beginnen een eenvoudige schakeling op een breadboard in. Verbind pin D0 met de positieve pool van een LED en ga terug naar de GND-pin via een weerstand van 220 Ohm.

nodemcu fritzing

Open uw NodeMCU-project in de Blynk-app. Selecteer aan de rechterkant de widget Knop in het menu. Selecteer uw knop in uw project om het eigenschappenmenu te openen. Hier kun je het een naam geven en kiezen welke pin op je NodeMCU-bord het zou moeten beïnvloeden. Selecteer pin D0 uit de outputlijst en schakel over naar een aan / uit-schakelaar in plaats van een momentele drukschakelaar.

Druk op Terug (alle wijzigingen worden automatisch opgeslagen) en druk vervolgens op het pictogram Afspelen in de rechterbovenhoek om uw app te starten. U kunt op elk gewenst moment op dezelfde knop drukken om terug te gaan naar het bewerken van uw project.

Open vervolgens de Arduino IDE en kies uw NodeMCU-bord en -poort in het menu Tools. Als u uw bord niet in dit menu ziet, moet u mogelijk de ESP8266-bibliotheken installeren (deze handleiding zou moeten helpen de Arduino-moordenaar te ontmoeten: ESP8266 Maak kennis met de Arduino-moordenaar: ESP8266 Wat als ik u heb verteld dat er een Arduino-compatibel dev-bord is? met ingebouwde Wi-Fi voor minder dan $ 10? Nou ja, er is. Lees meer).

Open nu het ESP8266 stand-alone script dat Blynk in hun bibliotheek heeft geleverd door naar Bestand> Voorbeelden> Blynk> Boards_WiFi> ESP8266_Standalone te gaan . Vervang de tijdelijke aanduiding voor de autorisatie-token door degene die u per e-mail hebt ontvangen en voer uw wifi-gegevens in.

 char auth[] = "YourAuthToken"; char ssid[] = "YourNetworkName"; char pass[] = "YourPassword"; 

Sla de schets op onder een nieuwe naam en upload deze naar je bord. Wanneer u nu op de knop in de app drukt, moet de LED aan en uit gaan. Als het niet werkt, controleer dan of u op het pictogram voor afspelen in de app hebt gedrukt.

In eenvoudige gevallen als deze is Blynk ongelooflijk snel in te stellen.

Het is ook vermeldenswaard dat aangezien dit de Blynk-server gebruikt, je je board overal kunt bedienen, zolang het bord toegang heeft tot je wifi-verbinding, en je smartphone toegang heeft tot mobiele data.

Blynk op de Raspberry Pi

U kunt Blynk op exact dezelfde manier gebruiken als in het bovenstaande voorbeeld op de Raspberry Pi door het Blynk-testscript te gebruiken, maar er zijn enkele diepere functionaliteiten die de virtuele pinnen van Blynk bieden, die we nu zullen bekijken.

Blynk werkt met Node.js, dus de code die we vandaag schrijven staat in Javascript. Als je een nieuweling bent in de taal, zou dit een goede introductie moeten zijn Begin nu met het coderen van JavaScript met deze 5 geweldige gratis bronnen Begin nu met het coderen van JavaScript met deze 5 geweldige gratis bronnen Lees meer.

We zullen de Blynk-bibliotheek gebruiken om een ​​app te maken die aangeeft of een deursensor open of gesloten is en een e-mail stuurt en een melding naar uw mobiele telefoon stuurt wanneer de deur wordt geopend.

Je zal nodig hebben:

  • Deurmagneetschakelaar (ook bekend als reedschakelaar)
  • 1x 1k? weerstand
  • 1x 10k? weerstand
  • 1x 220? weerstand
  • 1x LED
  • Broodplank en aansluitdraden

Stel je breadboard zo in:

pi fritzing

Merk op dat de bibliotheek van Blynk de GPIO-nummers van de pinnen van de Pi gebruikt, dus we zullen ze in dit project gebruiken. Verbind de 5V- en GND-pennen met de stroomrails op het breadboard. Sluit GPIO-pen 22 op de Raspberry Pi aan op de LED-anode en sluit de kathode via de 220 op de grondrail aan? weerstand. Sluit GPIO-pen 17 aan op een kant van de 1k? weerstand, en sluit de 10 aan? weerstand naar de andere kant, en de 5V kant van de power rail. Sluit tot slot uw reed-schakelaar aan op de GND-zijde van de powerrail aan de ene kant en op de lijn waar de 1k? en 10k? weerstanden ontmoeten elkaar aan de andere kant. Deze pull-upweerstandsinstelling zorgt ervoor dat de spanning op pin 17 hoog wordt weergegeven als de schakelaar wordt geopend.

Maak een nieuw project in de Blynk-app en selecteer uw Raspberry Pi-bord. Selecteer in het widgetmenu een gelabelde waarde, e-mail en een meldingswidget

Selecteer de gelabelde waarde, noem deze en kies virtuele pin V0 als invoerpen. U kunt ook wijzigen hoe de informatie wordt weergegeven. Voeg in dit geval "De deur is" toe vóór / pin / op het tabblad Label. We kunnen de leesfrequentiewaarde op de standaardinstelling laten staan, maar u kunt dit wijzigen om gegevens met een andere snelheid naar uw app te verzenden.

Het is vermeldenswaard dat u niet echt een e-mailadres hoeft in te voeren in de e-mailwidget omdat we deze later aan de code zullen toevoegen, hoewel de widget aanwezig moet zijn om te kunnen werken.

Zodra u tevreden bent met hoe uw app eruitziet, drukt u op de knop Afspelen in de rechterbovenhoek.

project gelabelde waarde

Maak nu een nieuw script met de naam blynkdoor.js . De volledige code is hier volledig geannoteerd.

 sudo nano blynkdoor.js 

We moeten beginnen met het importeren van de Blynk-bibliotheek, het toevoegen van onze machtigingssleutel en het maken van een exemplaar van Blynk voor gebruik in ons script.

 var blynklib = require('/usr/local/lib/node_modules/blynk-library'); var AUTH ='PasteAuthorizationCodeHere' var blynk = new blynklib.Blynk(AUTH); 

We moeten ook de OnOff-bibliotheek importeren en variabelen declareren die onze reed-schakelaar en LED instellen. We zullen ook een variabele maken voor de virtuele pin die we hebben ingesteld in de Blynk-app.

 var Gpio = require('onoff').Gpio, reed = new Gpio(17, 'in', 'both'), //register changes 'both' when switch is opened and closed led = new Gpio(22, 'out'); var virtualPin = 0; 

Nu gaan we de watch- functie van de OnOff-bibliotheek gebruiken om te kijken naar veranderingen in onze REED-schakelaar. De deurschakelaar staat op 0 of 1 en wanneer die waarde verandert, schrijven we die wijziging naar de LED-pin.

 reed.watch(function(err, value){ led.writeSync(value); 

We kunnen de waarde gebruiken om ook gegevens naar de Blynk-app te verzenden. Als de deur gesloten is, willen we dat kunnen zien in uw gelabelde waarde-widget. Als de deur opengaat, willen we een melding ontvangen en een e-mail sturen om ons te vertellen. We doen dit met een if-statement en het gebruik van virtualWrite, het informeren en e-mailen van functies van de Blynk-bibliotheek. De volledige documentatie voor Blynk is hier te vinden.

 if(value==0){ blynk.virtualWrite(virtualPin, "Closed"); console.log('Door Closed'); }; if(value==1){ blynk.notify("The door just opened!"); blynk.email("[email protected]", "Front Door", "The front door just opened."); blynk.virtualWrite(virtualPin, "Open"); console.log('Door Open'); }; }); 

Telkens wanneer de reed-schakelaar een waardewijziging registreert, worden de gegevens verzonden naar onze virtuele pin en in het geval van het openen van de deur naar de meldingswidget in de app, evenals naar het schrijven van de console. Merk op dat de laatste accolades zijn van waaruit we de wachtfunctie hierboven hebben gestart.

Ten slotte moeten we de pin opnieuw instellen wanneer het programma eindigt. Dit is hetzelfde als de GPIO.cleanup () waar je waarschijnlijk al bekend mee bent.

 process.on('SIGINT', function () { led.unexport(); reed.unexport(); }); 

Bewaar nu uw code en sluit af. Voer uw script uit met behulp van het knooppunt.

 sudo node blynkdoor.js 

Als u nu de magneet weg van de rietsensor verplaatst, hoort u een melding dat de deur is geopend en moet uw gelabelde display veranderen. Sluit de schakelaar opnieuw en u zult zien dat het gelabelde display opnieuw verandert.

Het is vermeldenswaard dat de Blynk-app op uw telefoon moet worden uitgevoerd om de pushmeldingen te ontvangen, hoewel de e-mails werken ongeacht of de app actief is of niet.

In de korte tijd die ik tot nu toe met Blynk heb doorgebracht, lijkt het een zeer eenvoudige service om te gebruiken. Op zijn eenvoudigst kunnen mensen zonder codeerkennis zelfbouw domotica-systemen bouwen. Met een beetje extra codeerkennis wordt het nog krachtiger, waardoor veel complexere systemen en meerdere gebeurtenistriggers met één druk op de knop in de app mogelijk zijn.

Dit project was een basisintroductie van Blynk, hoewel wat we hier besproken hebben, eenvoudig kan worden aangepast voor bijna elk huisautomatiserings- of microcontrollerproject.

Heb je Blynk gebruikt? Heb je een gek complex systeem dat de service gebruikt die je met ons wilt delen? Laat het ons weten in de comments hieronder!

Afbeelding: Giuseppe Caccavale via YouTube.com

In this article