Sunteți pe pagina 1din 8

Internet of Things

Laborator 6
Provisioning
Partea I
(anul universitar 2021-2022)

Universitatea Tehnică ”Gheorghe Asachi” din Iaşi


Facultatea de Automatică şi Calculatoare
Departamentul de Calculatoare
Cuprins
1 Scopul laboratorului 1
2 Provisioning 1
2.1 Introducere 1
2.2 Facilităţi esp-idf 1
3 Prezentarea aplicaţiei 2
4 Sarcină de lucru 2
Materiale de studiu 4

Listă tabele

Listă figuri
Fig. 1 Modelul de interacţiune de la nivelul aplicaţiei 5
Fig. 2 Interacţiuni http 6

1
1. Scopul laboratorului

• Familiarizarea cu conceptul de provisioning

• Implementarea unei soluţii complete de instalare pentru un dispozitiv IoT cu conec-


tivitate Wi-Fi

2. Provisioning

2.1 Introducere
Procesul de instalare sau adăugare a unui dispozitiv IoT ı̂ntr-o infrastructură existentă este
cunoscut sub numele de provisioning (mot a mot aprovizionare).
În contextul aplicaţiilor IoT acest proces presupune o provocare ı̂n plus deoarece ma-
joritatea dispozitivelor folosite nu dispun (şi nici nu necesită pentru scenariile de operare
normale) de interfeţe utilizator sau interfeţele utilizator sunt minimaliste (ex. un buton şi 2
LED-uri).
Mai exact, un dispozitiv IoT trebuie conectat prin intermediul interfeţei de care dispune
la o infrastructură de comunicaţie, iar ı̂n funcţie de tehnologie trebuie efectuaţi anumiţi paşi
specifici. Astfel,

• un cântar inteligent cu interfaţă Bluetooth trebuie asociat cu smartphone-ul pe care


rulează aplicaţia pereche. Cântarul are un display cu digiţi cu 7 segmente şi nu are
butoane, iar la prima utilizare trebuie trecut ı̂n modul de asociere sau dacă utilizatorul
şi-a schimbat smartphone-ul asocierea veche trebuie ştearsă pentru a putea fi asociat
din nou.

• un ı̂ntrerupător pentru doză de aparataj ı̂ngropată cu interfaţă Wi-Fi trebuie conectat


la AP-ul din casă. Acesta dispune de o tastă capacitivă (touch) şi de un LED, iar
pentru instalare ı̂i trebuie “introduse” datele de conectare (SSID şi parolă) sau trebuie
trecut ı̂n modul WPS (Wi-Fi Protected Setup).

• un tag de unică folosinţă pentru monitorizarea unui lanţ de distribuţie frigorific tre-
buie activat şi ı̂nregistrat ı̂n sistem. Acesta dispune de o etichetă cu un cod QR.

2.2 Facilităţi esp-idf


esp-idf pune la dispoziţie mai multe componente software pentru implementarea unor
soluţii de provisioning:

• SmartConfig - tehnologie dezvoltată de Texas Instruments pentru conectarea dispoz-


itivelor Wi-Fi la un AP. Foloseşte o aplicaţie pentru smartphone pentru difuzia ele-
mentelor de conectare (SSID şi parolă). Datele sunt ı̂mpachetate şi securizate ı̂ntr-un
format proprietar folosind cadre IEEE 802.11.

1
• Protocol Communication - componentă generică folosită pentru transportul securizat
al datelor independent de canalul de comunicaţie folosit.

• Wi-Fi Provisioning Manager - bibliotecă pentru preluarea elementelor de conectare


Wi-Fi. Implementare mecanisme de transport prin BLE, Wi-Fi şi interfaţă serială.

• Unified Provisioning - mecanism extensibil pentru configurarea dispozitivelor folosind


diferite tehnologii de transport şi diferite mecanisme de securizare.

3. Prezentarea aplicaţiei

Se va implementa o aplicaţie provisioning cu comportamentul prezentat ı̂n figura 2, fără


a folosi componentele software prezentate mai sus. Scopul este de a ı̂nţelege ı̂n detaliu
modul de funcţionare al unui astfel de mecanism.
Astfel, când este pornită ı̂n modul provisioning, platforma esp32 expune un AP şi
instanţiază un server HTTP (şi un proces mDNS). Un client mobil se conectează la AP
prin intermediul unei perechi SSID-parolă cunoscute (ex. SSID de forma esp32-xyz, parola
abcdef ) şi accesează o pagină web prin intermediul unui hostname cunoscut (ex. setup.local).
Pagina web conţine un formular ce permite selecţia unui SSID (dintre cele disponibilie
ı̂n laborator) şi completarea parolei asociate pentru conectarea ulterioară a platformei la un
AP. Datele completate de utilizator sunt stocate ı̂n memoria nevolatilă şi sunt accesate la
fiecare pornire ulterioară a platformei.

4. Sarcină de lucru

Partea I

Se va realiza o aplicaţie cu următoarele specificaţii:

• Biblioteca Wi-Fi va fi folosită pentru instanţierea unei interfeţe de tip AP.

– SSID-ul expus va fi de forma esp32-nume-de-familie


– Modul de securtate ales va fi WPA2
– Parola folosită pentru conectare va fi 12345678 (WPA2 presupune folosirea
unor parole de cel puţin 8 caractere. Funcţiile de bibliotecă nu fac verificări
de lungime, iar configurarea unei parole mai scurte va duce la generarea unei
excepţii şi la resetarea platformei.)

• Biblioteca mDNS va fi folosită pentru configurarea unui hostname de forma setup.local.

• Biblioteca HTTP Server va fi folosită pentru instanţierea unui server web.

2
– Va expune resursa index.html (ı̂n rădăcină). Aceasta va conţine un formular
(html form) cu următoarele elemente: un element select (listă drop-down) pen-
tru selectarea SSID-ului, un element input de tip password pentru introducerea
parolei şi un buton Submit. Un exemplu de cod html este prezentat ı̂n listing-ul
1.
– Va expune resursa results.html pentru afişarea datelor introduse ı̂n formular.
– La accesarea resursei index.html, platforma va realiza scanarea mediului şi va
popula ı̂n mod dinamic elementul select.
– La apăsarea butonului Select, se va folosi metoda POST pentru trimiterea datelor
introduse ı̂n formular.

<html>
<body>
<form action="/results.html" target="_blank" method="post">
<label for="fname">Networks found:</label>
<br>
<select name="ssid">
<option value="ssid-exemplu-1">ssid-exemplu-1</option>
<option value="ssid-exemplu-2">ssid-exemplu-2</option>
<option value="ssid-exemplu-3">ssid-exemplu-3</option>
<option value="ssid-exemplu-4">ssid-exemplu-4</option>
</select>
<br>
<label for="ipass">Security key:</label><br>
<input type="password" name="ipass"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>

Listing 1. Structura formularului html

Info
• Exemplu de cod pentru configurarea ı̂n mod AP este disponibil aici.

• Documentaţia modulului HTTP Server este disponibilă aici.

• Exemplu de cod pentru crearea serverului HTTP este disponibil aici.

• Exemplu de cod pentru scanarea SSID-urilor este disponibil aici.

3
Materiale de studiu

• Foaie de catalog şi manual ESP32

• Documentaţie OTA

• Documentaţie tabele de partiţii

4
Fig. 1. Modelul de interacţiune de la nivelul aplicaţiei

5
Fig. 2. Interacţiuni http

S-ar putea să vă placă și