Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et...

28
Version PDF de ce document : blynk.pdf Blynk est une plate-forme pour l’Internet des Objets (IoT). Elle permet notamment de concevoir une application mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé. La conception de l’application mobile (Android et iOS) à base de widgets (éléments graphiques) est réalisée par simple glisser & déposer sans écrire une ligne de code. En version gratuite, il est possible d’élaborer un prototype : Blynk Introduction

Transcript of Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et...

Page 1: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

VersionPDFdecedocument:blynk.pdf

Blynkestuneplate-formepourl’InternetdesObjets(IoT).Ellepermetnotammentdeconcevoiruneapplicationmobile(AndroidetiOS)pourcontrôleretvisualiserlesdonnéesd’unsystèmeembarquéviaunserveurcloudpublicouprivé.

Laconceptiondel’applicationmobile(AndroidetiOS)àbasedewidgets(élémentsgraphiques)estréaliséeparsimpleglisser&déposersansécrireunelignedecode.

Enversiongratuite,ilestpossibled’élaborerunprototype:

Blynk

Introduction

Page 2: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Remarque:Uneexploitationcommercialen’estpaspossibleavecleplanPrototype.D’autrepart,Blynkutiliseunsystèmed’energie( Blynk.Energy )pourlimiterl’usagedesesfonctionnalités.Audépart,ondisposede2000pointsd’énergieparcomptequel’ondépensepourleswidgetsd’interfaceutilisateuretautresfonctionnalitésBlynk.Lorsquel’onsupprimedeswidgets,l’énergiedépenséeestentièrementrestituéemaisaveccertainesfonctionnalités(lepartageparexemple)cen’estpaslecas.

Site:www.blynk.ccDocumentation:docs.blynk.ccethttps://booteille.github.io/blynk-docs-fr/Communauté:community.blynk.ccGénérateurd’exemples:examples.blynk.ccBibliothèqueBlynk:https://github.com/blynkkk/blynk-libraryServeur:https://github.com/blynkkk/blynk-server

UneapplicationBlynkcommuniqueavecunserveurBlynk.Celui-cipeut-êtrepublic( blynk-cloud.com )ouprivé.LeserveurBlynkcommuniqueaveclesystèmeembarquéviauncommunicationdetypeEthernet,WiFiouGSM,2G,3G,LTE,etc…etlabibliothèqueBlynkfournie.LestechnologiessupportéessontC++,JS,Python,ouHTTP.

Liens

Principe

Page 3: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Blynkprenddéjàenchargeplusde400cartesdontlespopulairesArduino,ESP8266,ESP32etRaspberryPi.

Remarque:Ilestmêmepossibled’utiliserunesimplecarteArduinoavecuneliaisonUSB.Danscecas,ilfaututiliserl’application com2tcp fourniesurunPC.

ArduinoavecuneliaisonUSBavecunserveurpublic:

Page 4: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

ArduinoavecuneliaisonUSBavecunserveurprivé:

Page 5: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

ArduinoavecunshieldEtheternetouWiFi:

Page 6: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

ESP8266/ESP32:

Page 7: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Toutd’abord,ilyaunetrèsbonnedocumentationenfrançais:https://booteille.github.io/blynk-docs-fr/

Démarrage

Page 8: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Pourcommencer,ilfaut:

unsystèmeembarqué(Arduino,ESP8266,ESP32,…)unenvironnementdedéveloppement(IDE)pourvotresystèmeembarquéaveclabibliothèqueBlynkunaccèsInternetouunserveurprivéunsmartphone(iOSouAndroid)

1.Téléchargerl’applicationBlynk(AndroidouiOS)

2.InstallerlabibliothèqueBlynkpourvotreIDE

IDEArduinopourcartesArduino,ESP8266etESP32:

Page 9: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.
Page 10: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

PlatformIOpourcartesArduino,ESP8266etESP32:

Page 11: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

3.CréeruncompteBlynk

UncompteBlynkestnécessaireafindesauvegarderlesprojets.

Page 12: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

4.CréerunnouveauProjet

Ilfauttoutd’abordseconnecteravecsoncompteBlynk:

Page 13: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Ensuitepourcréerunnouveauprojet,ilfautsélectionnersonsystèmeembarqué(Arduino,ESP8266,ESP32,…)etsontyped’accès(WiFiparexemple):

Page 14: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Unjeton(token)d’authentificationestcréépourchaqueprojet.C’estunidentifiantuniquenécessairepourconnecterlesystèmeembarquéàl’applicationBlynkdusmartphone.Ilpeutêtreenvoyéautomatiquementsurvotreadressemail:

Page 15: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

oucopiermanuellement:

Puis:

Page 16: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

5.Ajouterdeswidgets

Page 17: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.
Page 18: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

ParexemplepourcommanderuneLed,ilsuffitd’utiliserunwidgetButton:

Page 19: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Etdeleconfigurerpourqu’ilcommandeunebrochedusystèmeembarqué:

Page 20: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

ParexemplesurunESP8266,lacartepossèdeuneLedbuiltinpilotablesurlabrocheGPIOn°2donconsélectionneragp2.

Page 21: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Blynkpeutdonccontrôlerdesbrochesdigitalesetanalogiquesd’entrée/sortiesurlacartedirectementsansavoirbesoind’écriredecodepourcela!Pourdessystèmespluscomplexes,ilfaudrautiliserdesbrochesvirtuelles(voirplusloin).

6.Programmerlesystèmeembarqué(Arduino,ESP8266,ESP32,…)

Dansl’environnementdedéveloppement,éditerleprogrammesuivant(icipourunESP8266):

#defineBLYNK_PRINTSerial

#include<ESP8266WiFi.h>#include<BlynkSimpleEsp8266.h>

//ConfigurationBlynkAppcharauthentification[]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";//lejetond'authentification

//ConfigurationWiFicharssid[]="SSID";charpassword[]="PASSWORD";

//Brochage://-physique(hardware):2<-->LedBleue

voidsetup(){//ModeDebug(moniteursérie)Serial.begin(9600);

//démarrelaconnexionavecleserveurBlynk//1.ServeurInternetBlynk.begin(authentification,ssid,password);//pardéfaut->"blynk-cloud.com"etport80//Blynk.begin(authentification,ssid,password,"blynk-cloud.com",80);//ou://2.Serveurprivé//Blynk.begin(authentification,ssid,password,IPAddress(192,168,52,100),8080);//ou:8082(siconfiguration)}

voidloop(){Blynk.run();}

C’esttout!Voiraussilegénérateurd’exemples:examples.blynk.cc.

7.DémarrerleProjet

Pourfinir,ilfautdémarrerl’application:

SivousutilisezunesimplecarteArduinoviauneliaisonUSB,ilfautsuivrelesinstructiondeladocumentation:

Page 22: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

ici

Lesbrochesvirtuellesontétéconçuespourpermettred’échangerdesdonnéesentrelacarteembarquéeetl’applicationBlynk.Ellefonctionnecommeuncanaldecommunication.

Àpartirdelacarte,onpourraenvoyertoutesortededonnées,parexemplesurlabrochevirtuelleV1:

Blynk.virtualWrite(V1,"abc");//unechaînedecaractèresBlynk.virtualWrite(V1,123);//unentierBlynk.virtualWrite(V1,12.34);//unréelBlynk.virtualWrite(V1,"hello",123,12.34);//plusieursvaleurs

LeswidgetsdetypeController(Button,Slider,…)peuventaussienvoyerdesdonnéessurunebrochevirtuelle:

Remarque:Lafonction BLYNK_WRTITE() estappeléeautomatiquementdèsqu’unwidgetécritsurunebrochevirtuelle.Lesdonnéessontenvoyéessousformedechaînesdecaractèresetilfautdonclesconvertiren int avec asInt() ,en float avec asFloat() ,en double avec asDouble() outout

Lesbrochesvirtuelles

Page 23: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

simplementavec asStr() .

Àpartirdelacarte,ilyadeuxtechniquespourenvoyerdesdonnéesversunwidget:

lewidgetfaitdesrequêtespériodiquesenconfigurantleparamètre ReadingFrequency :

lacarteenvoiepériodiquementlesdonnéesenconfigurantlewidgetenmode PUSH :

Page 24: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Remarque: BlynkTimer estuneclassequipermetd’exécuterunefonctionàintervallerégulier.Unseulobjet BlynkTimer permetdeplanifierjusqu’à16minuteurs/chronomètres.

Attention:sivousutilisezl’appel Blynk.virtualWrite() danslafonction loop() ,vousrisquezd’envoyerdescentainesdemessagesparseconde.Blynklesdétecteracommeunflood(inondation!)etdéconnecteralacarte.L’utilisationd’un delay() peutaussientraînerdesdéconnexions.Enrésumé,ilnefautpasutiliser Blynk.virtualWrite() directementàpartirdelafonction loop() .

Lenombredemessagesparsecondepeutêtremodifié:

àpartirdelacarte:

//Limitelenombredemessagessortants#defineBLYNK_MSG_LIMIT20

danslefichierdeconfiguration server.properties surunserveurprivé:

#100Req/secratelimitperuser.user.message.quota.limit=100

LabibliothèqueBlynkfournitaussidesclasses Widgets pourcommuniqueravecleswidgetsdel’application:

WidgetLEDled(V1);//unwidgetLedsurlabrochevirtuellen°1

//pourallumerlaLed:ledVerte.on();//cequirevientàfaire://Blynk.virtualWrite(V1,255);

//pouréteindrelaLed:ledVerte.off();//cequirevientàfaire://Blynk.virtualWrite(V1,0);

Liens:Générateurd’exemplesetCodesd’exemples

BlynkfournitunserveurJavaOpen-SourcebasésurNettyquiestchargédetransmettrelesmessagesentrel’applicationmobileBlynketlesystèmeembarqué(Arduino,ESP8266,ESP32,…).

LeserveurpeutêtreinstallésurunréseaulocalprivéviaunPC(WindowsouLinux)oumêmeuneRaspberryPi.

Téléchargementetinstructions:https://github.com/blynkkk/blynk-server

LorsquelesystèmeembarquéseconnecteauserveurBlynk,ilouvreuneconnexionSSLsurleport443(ou9443pourunserveurlocal)ouuneconnexionTCPsimplesurleport8080.L’applicationBlynkouvredesoncôtéuneconnexionSSLsurport443(ou9443pourunserveurlocal).C’estleserveurBlynkquiestresponsabledutransfertdesmessagesentrelesystèmeembatquéetl’application.Avecunserveurlocal,ilestpossibled’accèderàuneinterfacewebd’administrationsurleport9943.

Serveurlocal(privé)

Page 25: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

Remarque:Avecunserveurlocal,lesports8080et9443doiventêtreouvertssurleposteserveur(cf.parefeu).Lesvaleursdesportspeuventêtremodifiéesdanslefichierdeconfiguration server.properties :

http.port=8080https.port=9443

Danslecasd’unserveurlocal,ilfaudrachanger:

lecompteBlynk:

créationducompte:

Page 26: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

connexion:

Page 27: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.

laconnexionàpartirdusystèmeembarqué:

//ConfigurationBlynkAppcharauthentification[]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

//ConfigurationWiFicharssid[]="SSID";charpassword[]="PASSWORD";

voidsetup(){Blynk.begin(authentification,ssid,password,IPAddress(192,168,52,100),8080);}

Onpourraaussimodifierlaquantitéd’énergie(puisquec’estuneserveurprivé!)àpartirdel’interfacewebd’administrationhttps://adresse_ip:9443/admin:

Allerdansl’ongletUsersetcliquersuruncompteSaisirlanouvellevaleurd’énergiedanslechamp EnergyEnregistrerencliquantsur SaveChanges

http://tvaira.free.fr/

Page 28: Blynk - Freetvaira.free.fr/dev/tutoriel/blynk.pdf · mobile (Android et iOS) pour contrôler et visualiser les données d’un système embarqué via un serveur cloud public ou privé.