This is an old revision of the document!
În acest laborator vom folosi două protocoale de comunicație des întâlnite în domeniul IoT.
CoAP (Constrained Application Protocol) este un protocol de comunicație ce rulează peste protocolul UDP/IP, fiind folosit în domenii cu resurse limitate de curent (putere consumată) și cu posibile pierderi de pachete de rețea (lossy networks).
Există o sumedenie de implementări software a protocolului CoAP (Implementations), dar în acest laborator vom folosi biblioteca ”CoAP simple library” pentru Arduino IDE pentru a rula un server CoAP, și implementarea CoAPthon din Python pentru a rula un client CoAP.
MQTT este un protocol de transport a mesajelor de la un producător (publisher) către un consumator (subscriber). Spre deosebire de CoAP care are o arhitectură client-server, MQTT folosește un intermediar (broker) pentru a redirecționa mesajele de la producător la consumator.
Download-ați biblioteca CoAP-simple-library și copiați fișierele in directorul cu biblioteci din Arduino IDE (de obicei în Documents/Arduino/libraries). Este nevoie de un restart al aplicației Arduino IDE după instalarea unei biblioteci direct în acel director, în loc de a folosi Library Manager.
Deschideți exemplul numit “esp32” din biblioteca “CoAP simple library” și ajustați codul astfel încât LED-ul conectat la GPIO2 (sau GPIO5 pe unele plăcuțe) să fie aprins prin CoAP. Notați IP-ul obținut de ESP32 pentru a-l folosi din clientul de CoAP.
#define COAP_DEFAULT_PORT 5683
Instalați apoi biblioteca CoAPthon din Python cu ajutorul utilitarului PIP:
pip install CoAPthon
Folosiți următoarea comandă pentru a aprinde/stinge LED-ul:
/usr/local/bin/coapclient.py -o PUT -p "coap://192.168.1.151/light" -P "1"
După ce instalați biblioteca “PubSubClient” din Library Manager al Arduino IDE, deschideți exemplul “mqtt_esp8266”. Chiar dacă este scris pentru ESP8266, putem rula programul pe ESP32 modificând următoare linie: