În acest laborator, studenții vor învăța:
Un API (Application Programming Interface) este un set de reguli și protocoale care permite unei aplicații să acceseze date sau funcționalități dintr-o altă aplicație.
JSON este un format de schimb de date simplu și ușor de citit, folosit pentru transmiterea de date structurate.
Matplotlib este o librărie de vizualizare pentru Python, utilizată pentru a crea o varietate de grafice, inclusiv grafice liniare, diagrame de bare și grafice de tip pie.
MQTT (Message Queuing Telemetry Transport) este un protocol de mesagerie ușor pentru IoT, utilizat pentru a comunica între dispozitive prin topicuri la care se abonează și publică date.
Plecând de la configurarea pentru laboratorul precendent va fi necesară adăugarea unor noi librării:
Ambele librării vor fi necesare pentru crearea subscriber-ului. Pentru simplitate recomandăm utilizarea Python pentru crearea acestuia. Scopul subscriber-ului în cadrul acestui laborator va fi de a crea o agregare vizuală a datelor.
Instalați librăriile necesare cu ajutorul comenzii:
pip install requests matplotlib paho-mqtt
Vom folosi API-ul gratuit de la Open-Meteo pentru a obține date despre prognoza meteo. URL-ul API-ului:
https://api.open-meteo.com/v1/forecast?latitude=44.4268&longitude=26.1025&hourly=temperature_2m
import requests url = "https://api.open-meteo.com/v1/forecast?latitude=44.4268&longitude=26.1025&hourly=temperature_2m" response = requests.get(url) if response.status_code == 200: data = response.json() temperatures = data['hourly']['temperature_2m'] times = data['hourly']['time'] for time, temp in zip(times[:10], temperatures[:10]): print(f"{time}: {temp}°C") else: print("Eroare la obținerea datelor. Cod status:", response.status_code)
Codul pentru Vizualizare - Tipuri Multiple de Grafice:
import matplotlib.pyplot as plt plt.figure(figsize=(10, 5)) plt.plot(times[:10], temperatures[:10], marker='o', label="Temperatura (°C)") plt.xticks(rotation=45) plt.title("Evolutia Temperaturii in Bucuresti") plt.xlabel("Ora") plt.ylabel("Temperatura (°C)") plt.legend() plt.show()
Pentru a trimite și primi mesaje „Hello World” folosind MQTT, vom folosi `umqtt` pentru publicare pe Raspberry Pi și `paho-mqtt` pentru abonare pe laptop.
import network import time from umqtt.simple import MQTTClient ssid = 'Numele_Retelei' password = 'Parola_Retelei' mqtt_server = 'IP-ul_Brokerului' topic = "test/topic" client_id = "pico_publisher" wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(ssid, password) while not wlan.isconnected(): time.sleep(1) client = MQTTClient(client_id, mqtt_server) client.connect() try: while True: message = b"Hello World" client.publish(topic, message) print(f"Mesaj trimis: {message.decode()}") time.sleep(10) finally: client.disconnect()
from paho.mqtt import client as mqtt_client broker = 'localhost' port = 1883 topic = "test/topic" client_id = "python_subscriber" def connect_mqtt(): def on_connect(client, userdata, flags, rc): if rc == 0: client.subscribe(topic) client = mqtt_client.Client(client_id) client.on_connect = on_connect client.connect(broker, port) return client def on_message(client, userdata, msg): print(f"Mesaj primit pe topicul '{msg.topic}': {msg.payload.decode()}") client = connect_mqtt() client.on_message = on_message client.loop_forever()
client = mqtt_client.Client(client_id = client_id, callback_api_version = mqtt_client.CallbackAPIVersion.VERSION1)
Acest ghid vă oferă un punct de pornire pentru conectarea și utilizarea dispozitivului Nordic Thingy:52. Pentru a interacționa cu Nordic Thingy:52, în următoarele rânduri vă prezentam pașii de configurare, conectarea la dispozitiv și accesarea senzorilor și funcțiilor sale.
Thingy:52 este o platformă de prototipare IoT, echipată cu senzori, actuatori și conectivitate Bluetooth Low Energy (BLE). Instrucțiunile de mai jos acoperă configurarea BLE și utilizarea uneltelor software de la Nordic.
Odată ce Thingy:52 este conectat, puteți începe să accesați senzorii și funcțiile sale prin aplicația nRF Connect sau dezvoltând o aplicație proprie capabilă să comunice prin BLE.
Pentru a opri Thingy:52, apăsați și țineți apăsat butonul de pornire până când LED-ul se stinge.
mosquitto -v -c "C:\Program Files\mosquitto\mosquitto.conf"