Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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
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
Blynkprenddéjàenchargeplusde400cartesdontlespopulairesArduino,ESP8266,ESP32etRaspberryPi.
Remarque:Ilestmêmepossibled’utiliserunesimplecarteArduinoavecuneliaisonUSB.Danscecas,ilfaututiliserl’application com2tcp fourniesurunPC.
ArduinoavecuneliaisonUSBavecunserveurpublic:
ArduinoavecuneliaisonUSBavecunserveurprivé:
ArduinoavecunshieldEtheternetouWiFi:
ESP8266/ESP32:
Toutd’abord,ilyaunetrèsbonnedocumentationenfrançais:https://booteille.github.io/blynk-docs-fr/
Démarrage
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:
PlatformIOpourcartesArduino,ESP8266etESP32:
3.CréeruncompteBlynk
UncompteBlynkestnécessaireafindesauvegarderlesprojets.
4.CréerunnouveauProjet
Ilfauttoutd’abordseconnecteravecsoncompteBlynk:
Ensuitepourcréerunnouveauprojet,ilfautsélectionnersonsystèmeembarqué(Arduino,ESP8266,ESP32,…)etsontyped’accès(WiFiparexemple):
Unjeton(token)d’authentificationestcréépourchaqueprojet.C’estunidentifiantuniquenécessairepourconnecterlesystèmeembarquéàl’applicationBlynkdusmartphone.Ilpeutêtreenvoyéautomatiquementsurvotreadressemail:
oucopiermanuellement:
Puis:
5.Ajouterdeswidgets
ParexemplepourcommanderuneLed,ilsuffitd’utiliserunwidgetButton:
Etdeleconfigurerpourqu’ilcommandeunebrochedusystèmeembarqué:
ParexemplesurunESP8266,lacartepossèdeuneLedbuiltinpilotablesurlabrocheGPIOn°2donconsélectionneragp2.
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:
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
simplementavec asStr() .
Àpartirdelacarte,ilyadeuxtechniquespourenvoyerdesdonnéesversunwidget:
lewidgetfaitdesrequêtespériodiquesenconfigurantleparamètre ReadingFrequency :
lacarteenvoiepériodiquementlesdonnéesenconfigurantlewidgetenmode PUSH :
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é)
Remarque:Avecunserveurlocal,lesports8080et9443doiventêtreouvertssurleposteserveur(cf.parefeu).Lesvaleursdesportspeuventêtremodifiéesdanslefichierdeconfiguration server.properties :
http.port=8080https.port=9443
Danslecasd’unserveurlocal,ilfaudrachanger:
lecompteBlynk:
créationducompte:
connexion:
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/