Protokol MQTT: Rozdiel medzi revíziami
Zo stránky SensorWiki
Vytvorená stránka „== MQTT cez Shiftr.IO == <source lang="cpp"> import mqtt.*; MQTTClient client; void setup() { client = new MQTTClient(this); client.connect("mqtt://try:try@broke…“ |
Bez shrnutí editace |
||
(7 medziľahlých úprav od rovnakého používateľa nie je zobrazených.) | |||
Riadok 1: | Riadok 1: | ||
Modifikované cvičenie na DOMA: | |||
'''Úloha''' | |||
Vyskúšajte si posielanie protokolom MQTT. | |||
Pošlite jednoduchú správu | |||
* Najprv na | |||
** MQTT server mqtt://public:public@public.cloud.shiftr.io (username vase priezvisko) | |||
** do topicu /feistu/misa/2021/XXX | |||
* a potom na | |||
** MQTT server mqtt://dOVph0fe2HybffoMHjN3@demo.thingsboard.io | |||
** do topicu v1/devices/me/telemetry | |||
Správa vo formáte JSON má vyzerať takto: | |||
{"XXXY-Lat": 49.1634, "XXXY-Lon": 20.1349, "XXXY-Temp": 18.2} | |||
kde | |||
* XXX su prve tri pismena vasho priezviska | |||
* Y je prve pismeno krstneho mena | |||
* Lat je zemepisna sirka na styri desatinne miesta | |||
* Lon je zemepisna dlzka na styri desatinne miesta a | |||
* Temp aktualna vonkajsia teplota | |||
'''Tipy''' | |||
Kontrola, či vám to správne funguje je možná tu: https://shiftr.io/try | |||
<center> | |||
[[Súbor:ShiftrIOtest.png|500px]]<BR> | |||
[[Súbor:ShiftrIOtestMsg.png|500px]]<BR> | |||
''Kontrola funkcie na Shiftr.IO'' | |||
</center> | |||
V Processingu treba pridat kniznicu Joela Gaehwillera MQTT: | |||
Sketch -> Import Library -> Add Library -> MQTT -> Install | |||
<center> | |||
[[Súbor:ProcessingAddLibrary.png|500px]]<BR> | |||
''Pridávanie knižnice v Processingu.'' | |||
</center> | |||
Na vytvorenie JSON reťazca využite JSONobject, potom pridávajte jednotlivé položky napr. takto | |||
message.setFloat("XXX-Lat", 49.1634); | |||
Ak sa vám podarí úspešne poslať správu na shiftr.io a vidíte ju tam správne formátovanú, zmeňte riadky | |||
client.connect("mqtt://public:public@public.cloud.shiftr.io", "Ferdinand"); | |||
... | |||
client.publish("/feistu/misa/2020/XXX", message.toString()); | |||
takto | |||
client.connect("mqtt://dOVph0fe2HybffoMHjN3@demo.thingsboard.io"); // no username here | |||
... | |||
client.publish("v1/devices/me/telemetry", message.toString()); | |||
Ukážkové programy máte nižšie. | |||
== MQTT cez Shiftr.IO == | == MQTT cez Shiftr.IO == | ||
Riadok 9: | Riadok 71: | ||
{ | { | ||
client = new MQTTClient(this); | client = new MQTTClient(this); | ||
client.connect("mqtt:// | client.connect("mqtt://public:public@public.cloud.shiftr.io", "Ferdinand"); | ||
} | } | ||
Riadok 20: | Riadok 82: | ||
client.publish("/feistu/BlokB/humidity", "38.1"); | client.publish("/feistu/BlokB/humidity", "38.1"); | ||
client.publish("/feistu/BlokA", "InReconstruction..."); | client.publish("/feistu/BlokA", "InReconstruction..."); | ||
} | } | ||
Riadok 41: | Riadok 102: | ||
} | } | ||
</source> | </source> | ||
== JSON == | == JSON == | ||
Riadok 76: | Riadok 136: | ||
} | } | ||
</source> | </source> | ||
[[MEMS inteligentné senzory a aktuátory#Cvi.C4.8Denia|Návrat na zoznam cvičení...]] | |||
[[Category:MEMS]] |
Aktuálna revízia z 08:17, 8. apríl 2022
Modifikované cvičenie na DOMA:
Úloha
Vyskúšajte si posielanie protokolom MQTT. Pošlite jednoduchú správu
- Najprv na
- MQTT server mqtt://public:public@public.cloud.shiftr.io (username vase priezvisko)
- do topicu /feistu/misa/2021/XXX
- a potom na
- MQTT server mqtt://dOVph0fe2HybffoMHjN3@demo.thingsboard.io
- do topicu v1/devices/me/telemetry
Správa vo formáte JSON má vyzerať takto:
{"XXXY-Lat": 49.1634, "XXXY-Lon": 20.1349, "XXXY-Temp": 18.2}
kde
- XXX su prve tri pismena vasho priezviska
- Y je prve pismeno krstneho mena
- Lat je zemepisna sirka na styri desatinne miesta
- Lon je zemepisna dlzka na styri desatinne miesta a
- Temp aktualna vonkajsia teplota
Tipy
Kontrola, či vám to správne funguje je možná tu: https://shiftr.io/try
V Processingu treba pridat kniznicu Joela Gaehwillera MQTT:
Sketch -> Import Library -> Add Library -> MQTT -> Install
Na vytvorenie JSON reťazca využite JSONobject, potom pridávajte jednotlivé položky napr. takto
message.setFloat("XXX-Lat", 49.1634);
Ak sa vám podarí úspešne poslať správu na shiftr.io a vidíte ju tam správne formátovanú, zmeňte riadky
client.connect("mqtt://public:public@public.cloud.shiftr.io", "Ferdinand"); ... client.publish("/feistu/misa/2020/XXX", message.toString());
takto
client.connect("mqtt://dOVph0fe2HybffoMHjN3@demo.thingsboard.io"); // no username here ... client.publish("v1/devices/me/telemetry", message.toString());
Ukážkové programy máte nižšie.
MQTT cez Shiftr.IO
import mqtt.*;
MQTTClient client;
void setup()
{
client = new MQTTClient(this);
client.connect("mqtt://public:public@public.cloud.shiftr.io", "Ferdinand");
}
void draw() { /* nerob nic, len cakaj na klavesu */}
void keyPressed()
{
client.publish("/feistu/BlokB/temperature", "27.0");
client.publish("/feistu/BlokB/humidity", "38.1");
client.publish("/feistu/BlokA", "InReconstruction...");
}
void clientConnected() {
println("client connected");
client.subscribe("/feistu/#");
client.subscribe("/hello/#");
}
void messageReceived(String topic, byte[] payload) {
println("new message: " + topic + " - " + new String(payload));
}
void connectionLost() {
println("connection lost");
}
JSON
JSONObject message;
float temperature = 0.0;
int status = 0;
void setup()
{
message = new JSONObject();
message.setFloat("temperature", 10.0);
message.setInt("state",2);
message.setString("name", "Lion");
saveJSONObject(message, "data/new.json");
int aktualnyStav = message.getInt("state");
float aktualnaTeplota = message.getFloat("temperature");
String realName = message.getString("name");
println("Stav: " + aktualnyStav
+ ", Teplota: " + aktualnaTeplota + ", Meno: " + realName);
}
void draw() { /* nic nekreslime */ }
void keyPressed() {
temperature = random(-10, 32.5);
message.setFloat("temperature", temperature);
println(message.toString());
}