Primul proiect cu ESP32. Cum folosim Blynk?

Primul proiect cu ESP32. Cum folosim Blynk?

Timp de citit: 4 minute

Ce prezinta articolul?

In lumea microcontrolerelor si a proiectelor de tip IOT (Internet Of Things) ESP32 este unul dintre cele mai bune microcontrolere deoarece, pe langa cele 2 nuclee suficient de rapide pe care le ofera la un pret decent, mai are si conectivitate WiFi si Bluetooth.

In acest articol va vom introduce in lumea IOT, prezentandu-va cum puteti folosi „Blynk” pentru a comanda diferite module (lumini, servomotoare , senzori), cum sa va creati un server local „Blynk” in care va veti putea extinde gratuit proiectele si cum sa folositi si cel de-al doilea nucleu al procesorului pentru a va putea eficientiza codul.

Ce este Blynk?

Blynk este o platforma ce dispune de o aplicatie pentru mobil si servere private, in care se pot crea aplicatii de tip IOT, gratuit (daca folosim server local) sau cu costuri rezonabile daca folosim serverele private.

Cum folosim Blynk?

Pentru a folosi Blynk, avem nevoie de urmatoarele lucruri:

  • Un computer cu Arduino IDE instalat impreuna cu placa de dezvoltare ESP32;
  • Un smartphone cu conexiune la internet;
  • O placa de dezvoltare ESP32;
  • Un router cu acces la internet ce are un AP (Acces Point);

Pasul 1

Descarcati gratuit aplicatia de Android/iOS din urmatoarele linkuri:

Pentru IOS: ‎Blynk – IoT for Arduino, ESP32 on the App Store (apple.com)
Pentru Android: https://play.google.com/store/apps/details?id=cc.blynk&hl=ro

Pasul 2

La acest pas vom descarca fisierele necesare pentru a putea folosi Blynk in Arduino IDE.

Pentru inceput descarcati libraria din urmatorul link: https://github.com/blynkkk/blynk-library ca si fisier zip (conform pozei de mai jos):

Pentru a adauga libraria in Arduino IDE trebuie sa mergem la: Sketch>Include library>Add .zip library, dupa care se alege fisierul .zip descarcat de pe GitHub.

Pasul 3

La acest pas vom folosi aplicatia de pe telefonul mobil. In urmatoarele imagini va vom prezenta o metoda de realizare a primului dvs. proiect in Blink.

  1. Pentru a putea accesa functiile aplicatiei Blink, este necesara crearea unui cont.
  1. Dupa crearea contului, este necesara crearea unui nou proiect apasand butonul „New Project”.
  1. Selectam ca device „ESP32 Dev Board”, oferim proiectului un nume sugestiv si apasam butonul „Create”:
  1. Dupa crearea proiectului si selectarea device-ului ar trebui sa fiti intampinati de urmatorul mesaj:
  1. Apasati „OK” iar dupa, butonul „Add Widget”:
  1. Pentru inceput adaugati un Widget de tip „Value Display”:
  1. Modificati setarile display-ului astfel incat sa fie ca si cele din imaginea de mai jos:
  1. Verificati-va adresa de e-mail si copiati „Auth Token-ul”:

Pasul 4

In cele ce urmeaza, va vom prezenta codul care va trebui incarcat pe placa de dezvoltare ESp32.

#define BLYNK_PRINT Serial
#include “WiFi.h”
#include “WiFiClient.h”
#include “BlynkSimpleEsp32.h”

char ssid[] = „Numele retelei dvs de wifi”;
char pass[] = „Parola retelei dvs de wifi”;// lasati „” daca reteaua dvs. nu are parola;
int value ;
char auth[] = „Codul dvs. de autentificare primit in mail”;

void setup() {
Serial.begin(115200);// initializam baud rate-ul port-ului serial la 115200;
delay(10);
Serial.print(„Placa se conecteaza la reteaua ; „);
Serial.println(ssid);

WiFi.begin(ssid, pass);
int wifi_ctr = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(„.”);
}

Serial.println(„Conectare la WIFi reusita”);
Blynk.begin(„Cheia dvs. de autentificare primita pe mail”, ssid, pass);
}

void loop(){
Blynk.run();
value=milis()/1000; // variabila value este egala cu nr. De secunde ce au trecut de la alimentarea placii
BLYNK_READ(V0) {
Blynk.virtualWrite(V0, value); // scriem numarul de secunde pe display-ul din aplicatie.
}
}

Cum folosim cel de-al doilea nucleu al placii ESP32?

Unul dintre avantajele microcontrolerului ESP32 este faptul ca dispune si de un al doilea nucleu de procesare, care poate face 2 task-uri in acelasi timp. Pentru a putea vedea in ce nucleu ruleaza functiile noastre putem folosi comanda: xPortGetCoreID();

Arduino IDE suporta RtOS (Real time Operating System) pentru ESP32; acest lucru ne ofera posibilitatea de a avea mai multe task-uri in paralel. In mod implicit, „void setup()” si „void loop()” ruleaza in nucleul 1.

Pentru a folosi cel de-al doilea nucleu al placii ESP32 trebuie sa cream un „task handle” cu urmatoarea comanda: TaskHandle_t Task1; Task-ul tocmai creat a fost numit „Task1”.

  1. In Setup vom atribui task-ul creat unui nucleu cu urmatoarea functie:

xTaskCreatePinnedToCore(

Task1code, /* Function to implement the task */

„Task1”, /* Name of the task */

10000, /* Stack size in words */

NULL, /* Task input parameter */

0, /* Priority of the task */

&Task1, /* Task handle. */

0); /* Core where the task should run */

  1. Vom scrie codul care va fi atribuit catre „Task1”, conform exemplului de mai jos:

Void Task1code( void * parameter) {
while(true){
//aici scriem codul care va fi executat in „Task1”
}
}

Bibliografie:

https://randomnerdtutorials.com/

ESP32 Home Automation project using Blynk

9 comentarii

  1. Trebuie acces la un server (platit, nu ?), plus ca nu-mi place platforma Arduino. Prefer sa fac proiecte direct cu un microcontroller.

  2. Si eu am gandit la fel, folosind PiC-urile. Esp este un modul extrem de compact care nu necesita auxiliare. Well.. Decat relee sau FET-uri pentru comutare. Comanda se poate face la distanta – WiFi sau Bluetooth.

  3. Adica folosind telefonul? Mofturi! Folosind un modul radio poti comanda la distanta mai mare. P.S. La PIC ce auxiliare iti trebuie?

  4. Imagineaza-ti urmatorul scenariu: ai niste lumini comandate afara sau in garaj, esti cu mainile murdare, pe ce preferi sa pui mana, pe telefon sau pe telecomanda? Plus ca la telecomanda apesi doar un buton, la telefon…

  5. Uite, am ajutat pe cineva sa faca pornire la masina prin telefon si Arduino. Programul pentru Arduino l-am modificat (nu mi-a placut), dar nu mi-a placut aplicatia (comunica intr-un sens). Aplicatia as fi vrut s-o pot modifica.

Adauga un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *