Aan de slag met Blynk Simple DIY IoT-apparaten
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 gebruiksmogelijkheden van de service met NodeMCU en Raspberry Pi-ontwikkelboards..
Het is nog nooit zo gemakkelijk geweest om slimme objecten te ontwikkelen met microcontrollers, en IoT-apparaten zijn de laatste jaren snel in populariteit gegroeid. Ontwikkelborden zoals Arduino of Raspberry Pi kunnen worden gebruikt om alles vanuit de stopcontacten te regelen. Goedkope RF-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 kerstversieringen Upgrade uw kerstkrans met een bewegingsgeactiveerde LED-matrix Upgrade uw kerstkrans met een bewegingsgestuurde led-matrix Deze DIY-kerstkrans maakt gebruik van een Arduino- en LED-matrix om een verbazingwekkende lichtweergave te produceren die 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 sterkte 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.
Besturingselementen worden opgeroepen widgets: 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 te geven “Energie” kosten. 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 heel snel geen sap meer hebt..
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 “virtueel” 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 moeten gebruiken zonder ze je lichten aan en uit te laten doen!
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 wat betreft functionaliteit en beveiliging, maar voor onze voorbeelden hier zullen we ons concentreren op het gebruik van de Blynk-cloudserver die wordt aangeboden.
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 hier verbinden 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 te selecteren “E-mail”.
Installeer vervolgens de Blynk-bibliotheken op de Blynk-website. Installeer de bibliotheek voor Arduino door de bestanden naar uw computer te kopiëren Arduino> bibliotheken map. 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-essentieel
Installeer vervolgens de Node Package Manager, de Aan uit 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:
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 naar het positieve been van een LED en terug naar de GND-pin via een weerstand van 220 Ohm.
Open uw NodeMCU-project in de Blynk-app. Selecteer de rechterkant aan de rechterkant 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 welke pin op je NodeMCU-bord het zou moeten beïnvloeden. kiezen pin D0 uit de outputlijst en schakelmodus om er een aan- en uitschakelaar van te maken 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 standalone-script dat Blynk in hun bibliotheek heeft geleverd door naar te navigeren Bestand> Voorbeelden> Blynk> Boards_WiFi> ESP8266_Standalone. 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 besturen, 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 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, 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 prima introductie moeten zijn Begin nu JavaScript te coderen met deze 5 geweldige gratis bronnen JavaScript begint nu met het coderen van deze 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 opengaat.
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:
Merk op dat de bibliotheek van Blynk de GPIO-nummers van de pins 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 aan de andere kant, en de 5V-kant van de powerrail. 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, geef deze een naam en kies virtuele pin V0 als invoerpen. U kunt ook wijzigen hoe de informatie wordt weergegeven. In dit geval toevoegen “De deur is ” 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.
Als je tevreden bent met hoe je app eruit ziet, druk je op de knop Afspelen in de rechterbovenhoek.
Maak nu een nieuw script genaamd 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 autorisatiesleutel en het maken van een exemplaar 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 hebben ingesteld in de Blynk-app.
var Gpio = vereisen ('onoff'). Gpio, reed = nieuwe Gpio (17, 'in', 'beide'), // registerwijzigingen 'beide' wanneer schakelaar wordt geopend en gesloten led = nieuwe Gpio (22, 'out '); var virtualPin = 0;
Nu gaan we de gebruiken kijk maar functioneer vanuit de OnOff-bibliotheek om te kijken naar veranderingen in onze reed-schakelaar. De deurschakelaar bevindt zich op 0 of 1, en telkens wanneer die waarde verandert, schrijven we die wijziging naar de LED-pin.
reed.watch (functie (err, waarde) led.writeSync (waarde);
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 en een e-mail ontvangen waarin ons wordt verteld. We doen dit met een if-statement en gebruiken virtualWrite, verwittigen, en e-mail 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 ("De deur is net geopend!"); blynk.email ("[email protected]", "Voordeur", "De voordeur net geopend."); blynk.virtualWrite (virtualPin, "Open"); console.log ('Deur 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 kijk maar functie hierboven.
Ten slotte moeten we de pin opnieuw instellen wanneer het programma eindigt. Dit is hetzelfde als de GPIO.cleanup () je bent waarschijnlijk al bekend met.
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.
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
Ontdek meer over: Arduino, elektronica, domotica, internet der dingen, Raspberry Pi.