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

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é

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

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é