Aan de slag met Blynk: eenvoudige doe-het-zelf IoT-apparaten

Aan de slag met Blynk: eenvoudige doe-het-zelf IoT-apparaten

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





Het is nog nooit zo eenvoudig geweest om slimme objecten te ontwikkelen met behulp van microcontrollers, en IoT-apparaten zijn de afgelopen jaren snel in populariteit gegroeid. Ontwikkelingsborden zoals Arduino of Raspberry Pi kunnen worden gebruikt om alles te bedienen, van de stopcontacten in uw huis tot door beweging geactiveerde kerstversieringen.





Een gebied dat een probleem kan vormen voor niet-ingewijden is codering en netwerken. Blynk streeft ernaar om de noodzaak van uitgebreide codering weg te nemen en het gemakkelijk te maken om overal op uw smartphone toegang te krijgen tot uw apparaten. Het is gratis te gebruiken voor hobbyisten en ontwikkelaars, maar het is ook beschikbaar voor commercieel gebruik tegen een vergoeding - bedrijven kunnen Blynk gebruiken om hun eigen apps en systemen te maken en ze vervolgens met hun eigen merknaam te 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.

Ga naar de Blynk-app

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



xbox one-controller werkt niet

Bedieningselementen heten Widgets : verschillende soorten invoermethoden en uitvoerweergaven, waaronder knoppen, schuifregelaars, een joystick, grafieken en tekstfeedback. Er zijn ook componentspecifieke widgets, met gestileerde bedieningselementen voor LEDS, LCD-schermen en zelfs live gestreamde video. Opvallend zijn ook widgets die functies toevoegen, zoals automatisch posten op Twitter, en aangepaste meldingen.

Hoewel de app gratis is, beperkt het het aantal widgets dat je tegelijk kunt gebruiken door ze allemaal een 'Energie'-kost te geven. De app geeft je een saldo van 2.000 om mee te spelen, met de optie om meer te kopen indien nodig.





Ik ontdekte dat het geleverde startsaldo meer dan genoeg was voor de voorbeeldprojecten die hier worden vermeld, maar als je setup ingewikkelder is, kan het zijn dat je vrij snel zonder sap komt te zitten.

Elke widget heeft een bewerkingsmenu waarmee u de naam en kleur kunt wijzigen. Je kiest vervolgens welke pin je wilt beïnvloeden (of het nu een pin op je bord is of een van Blynk's virtuele pins) samen met het bereik van de waarden die je wilt verzenden. Voor uitvoerweergaven zoals grafieken en tekstvakken, kunt u ook kiezen hoe vaak u wilt dat deze worden bijgewerkt, wat mogelijk kostbare bandbreedte bespaart.





Blynk biedt ook de mogelijkheid om instructies toe te wijzen aan 'virtuele' pinnen, dit zijn door de gebruiker geconfigureerde verbindingen 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 zullen later in het artikel bespreken hoe u deze kunt gebruiken.

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

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

Ik vond het maken van een app erg snel en intuïtief. Eenmaal gemaakt, kun je het meteen gebruiken door op het afspeelsymbool in de rechterbovenhoek te drukken. Als u later wijzigingen moet aanbrengen, kunt u eenvoudig op dezelfde knop drukken om terug te gaan naar de bewerkingsmodus.

De Blynk-server

Nadat u een app hebt gemaakt om uw apparaat te bedienen, heeft u twee opties 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 biedt Blynk een testscript dat u met uw autorisatiecode met hetzelfde effect kunt uitvoeren. 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 host je eigen Blynk-server. Blynk biedt een open source op Netty gebaseerde Java-server die vanaf uw computer of zelfs een Raspberry Pi kan worden uitgevoerd. 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 meegeleverde Blynk-cloudserver.

De Blynk-bibliotheek

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 je hardware mogelijk te maken.

Op zijn eenvoudigst is het enige dat 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 je smartphone en maak een account aan. Zorg ervoor dat u een e-mailadres gebruikt waartoe u daadwerkelijk toegang hebt, want daar worden uw autorisatietokens naartoe verzonden. Maak nu een project, selecteer welk bord je gaat gebruiken en hoe je er verbinding mee gaat maken. Beide voorbeelden hier verbinden via Wi-Fi, hoewel verbindingen via Bluetooth, Ethernet en zelfs GSM ook mogelijk zijn.

Creëer 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 moer) te selecteren, uw apparaat te selecteren en 'E-mail' te selecteren.

Installeer vervolgens de Blynk-bibliotheken van de Blynk-website. Installeer voor Arduino de bibliotheek door de bestanden naar uw Arduino > bibliotheken map. Als Arduino nieuw voor je is, is hier een: gids om u op weg te helpen .

Voor Raspberry Pi moet je ervoor zorgen dat Node.js eerst is geïnstalleerd. Er is een handleiding voor het installeren van Node.js in dit artikel, mocht je het nodig hebben.

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 Knooppuntpakketbeheer , de Aan uit bibliotheek, en de Knipperen 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 heeft gewerkt door het Blynk-testscript uit te voeren:

blynk.js [YourAuthorizationTokenHere]

Als alles werkt, zou het er als volgt uit moeten zien:

Als je fouten krijgt, zorg er dan voor dat je Pi up-to-date is en dat je de meest recente versie van Node.js hebt geïnstalleerd, voordat je de NPM-, OnOff- en Blynk-bibliotheken opnieuw installeert.

Snelle installatie met NodeMCU

Dit eerste voorbeeld laat zien hoe snel het is om eenvoudige systemen op te zetten met Blynk. Het vereist geen codering en eenmaal ingesteld staat het volledig op zichzelf. Zolang het bord toegang heeft tot uw Wi-Fi-verbinding, kunt u deze overal bereiken met uw smartphone.

Zet om te beginnen een eenvoudig circuit op een breadboard op. Pin aansluiten D0 naar de positieve poot van een LED en terug naar de GND-pin via een weerstand van 220 Ohm.

Open uw NodeMCU-project in de Blynk-app. Selecteer aan de rechterkant de Knop widget uit het menu. Selecteer uw knop in uw project om het eigenschappenmenu te openen. Hier kun je het een naam geven en kiezen op welke pin op je NodeMCU-bord het van invloed moet zijn. Selecteer pin D0 uit de uitvoerlijst en schakel de modus om het een aan- en uitschakelaar te maken in plaats van een tijdelijke drukschakelaar.

Druk op terug (alle wijzigingen worden automatisch opgeslagen) en druk vervolgens op het afspeelpictogram in de rechterbovenhoek om uw app te starten. U kunt op elk 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 Extra. Als je je bord niet in dit menu ziet, moet je mogelijk de ESP8266-bibliotheken installeren (deze gids zou moeten helpen).

Open nu het zelfstandige ESP8266-script dat Blynk in hun bibliotheek heeft geleverd door te navigeren naar Bestand > Voorbeelden > Blynk > Boards_WiFi > ESP8266_Standalone . Vervang de tijdelijke aanduiding voor het autorisatietoken door degene die u via 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 je op het afspeelpictogram 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, u uw bord overal kunt bedienen, zolang het bord toegang heeft tot uw wifi-thuisverbinding en uw smartphone toegang heeft tot mobiele gegevens.

Blynk op de Raspberry Pi

Je kunt Blynk op precies 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, waar we nu naar zullen kijken.

Blynk werkt met Node.js, dus de code die we vandaag gaan schrijven is in Javascript. Als je nieuw bent in de taal, zou dit een geweldige inleiding moeten zijn om te beginnen.

We gaan de Blynk-bibliotheek gebruiken om een ​​app te maken die meldt of een deursensor open of gesloten is, en een e-mail en pushmelding naar je mobiele telefoon stuurt wanneer de deur opengaat.

Je zal nodig hebben:

  • Deurmagneetschakelaar (ook wel reed-schakelaar genoemd)
  • 1x 1k? weerstand
  • 1x 10k? weerstand
  • 1x 220? weerstand
  • 1x LED
  • Breadboard en aansluitdraden

Stel je breadboard als volgt in:

hoe lang zal mijn toespraak duren?

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. Sluit de 5V- en GND-pinnen aan op de stroomrails op het breadboard. Verbind GPIO-pin 22 op de Raspberry Pi met de LED-anode en verbind de kathode met de grondrail via de 220? weerstand. Verbind GPIO pin 17 met één kant van de 1k? weerstand, en sluit de 10? weerstand naar de andere kant, en de 5V kant van de power rail. Sluit tot slot je reed-schakelaar aan op de GND-kant van de stroomrail aan de ene kant, en op de lijn waar de 1k? en 10k? weerstanden ontmoeten elkaar aan de andere kant. Deze opstelling van de optrekweerstand zorgt ervoor dat de spanning op pin 17 hoog wordt wanneer de schakelaar wordt geopend.

Maak een nieuw project in de Blynk-app en selecteer je 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 omdat het de invoerpin is. U kunt ook wijzigen hoe de informatie wordt weergegeven. Voeg in dit geval 'De deur is' toe voor /pin/ op het tabblad Label. We kunnen de waarde voor de leesfrequentie 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 in de e-mailwidget hoeft in te voeren, omdat we het later aan de code zullen toevoegen, hoewel de widget aanwezig moet zijn om te werken.

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

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

sudo nano blynkdoor.js

We moeten beginnen met het importeren van de Blynk-bibliotheek, het toevoegen van onze autorisatiesleutel en het maken van een instantie van Blynk om in ons script te gebruiken.

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 in de Blynk-app hebben ingesteld.

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 gebruiken kijk maar functie uit de OnOff-bibliotheek om te kijken naar veranderingen in onze reed-schakelaar. De deurschakelaar is ofwel 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 sturen. Als de deur dicht is, willen we dat kunnen zien in je Labeled Value-widget. Als de deur opengaat, willen we een melding en e-mail ontvangen. We doen dit met een if-statement en gebruiken virtueelSchrijven , op de hoogte stellen , en e-mail functies uit de Blynk-bibliotheek. De volledige documentatie voor Blynk is te vinden hier .

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

Wanneer de reed-schakelaar nu een waardeverandering registreert, worden de gegevens naar onze virtuele pin gestuurd en in het geval van de deuropening naar de meldingswidget in de app, evenals naar de console. Merk op dat de laatste beugels zijn van waar we begonnen met de kijk maar functie hierboven.

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

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

Sla nu uw code op en sluit af. Voer uw script uit met node.

sudo node blynkdoor.js

Wanneer u nu de magneet van de reed-sensor verwijdert, zou u een melding moeten krijgen dat de deur is geopend en uw gelabelde display zou moeten veranderen. Sluit de schakelaar weer en u zult zien dat het gelabelde display weer verandert.

Het is vermeldenswaard dat de Blynk-app op je telefoon moet draaien om de pushmeldingen te ontvangen, hoewel de e-mails werken, of de app nu actief is of niet.

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

Dit project was een basisintroductie tot Blynk, maar wat we hier hebben behandeld, kan eenvoudig worden aangepast voor bijna elk domotica- of microcontrollerproject.

Heb je Blynk gebruikt? Heb je een waanzinnig complex systeem dat gebruikmaakt van de dienst die je met ons wilt delen? Laat het ons weten in de reacties hieronder!

Afbeelding tegoed: Giuseppe Caccavale via YouTube.com

Deel Deel Tweeten E-mail Canon versus Nikon: welk cameramerk is beter?

Canon en Nikon zijn de twee grootste namen in de camera-industrie. Maar welk merk biedt de betere reeks camera's en lenzen?

Lees volgende
Gerelateerde onderwerpen
  • doe-het-zelf
  • Slimme woning
  • Arduino
  • Raspberry Pi
  • Domotica
  • internet van dingen
  • Elektronica
Over de auteur Ian Buckley(216 artikelen gepubliceerd)

Ian Buckley is een freelance journalist, muzikant, performer en videoproducent die in Berlijn, Duitsland woont. Als hij niet aan het schrijven of op het podium staat, sleutelt hij aan doe-het-zelf-elektronica of code in de hoop een gekke wetenschapper te worden.

Meer van Ian Buckley

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren