Line: 1 to 1 | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Slide 1: Setting up and IoTSession 4: Sending real measurement data to Cayenne andreceiving commands and executing them on the hardwareUli Raichformally CERN, Geneva, Switzerland | |||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||
> > | The Cayenne MQTT protocolIn the last lecture we have seen the command message sent by Cayenne:Trying the protocol with MQTTfxThe MQTTfx client allows you to
Starting MQTTfxSetting up the profileCopy Cayenne credentialsConnecting to CayenneOnce the profile is created you can connect to Cayenne with the “connect” button.You should see the “offline” note in on your Cayenne device page go away Once connected we can start sending messages to Cayenne Publish a message on CayenneCayenne MQTT expects topics of the following form:v1/username/things/clientID/data/channel This tells Cayenne that “data” are going to be sent. Replace “username” with your Cayenne user name and “clientID” with the client ID of your device We will send dummy temperature data to channel 0. Therefore “channel” must be replaced by “0”. The payloadThe payload (the actual data) has the following form:type,unit=value In our case: Type (temperature): temp Unit (Celsius): c Value: 29.3 (typical Ugandan temperature) Our payload therefore becomes: Temp,c=29.3 Publish the data messageMQTTfx data seen in CayenneSubscribing to cmd messagesIn order to see the command messages e.g. thosesent by the push button we must first subscribe to them. The format of a subscription is: v1/username/things/clientID/cmd/channel Since our push button is connected to channel 3 this is what we define as channel . v1/88253c70-76e9-11e9-9636-f9904f7b864b/things/ 1ce44ea0-76ea-11e9-b4eb-6bf2c2412b24/cmd/3 Subscribing in MQTTfxClicking the buttonCayenne is waiting for a responseTreating the commandNormally we would treat the command by acting on the hardware.If this was successful we would inform Cayenne that the new value was set: Format: v1/88253c70-76e9-11e9-9636-f9904f7b864b/things/ 1ce44ea0-76ea-11e9-b4eb-6bf2c2412b24/data/3 and the topic would be the new value: in this case: 1 Sending the responseThe switch shows “on”The Cayenne MQTT clientWith this information we understand how the Cayenne MQTT client works:
Measurement typesA big number of data types is defined in the Cayenne MQTT protocolHave a look at the docs under”Supported data types”: https://mydevices.com/cayenne/docs/cayenne-mqtt-api/#cayenne-mqtt-api-mqtt-messaging-topics Only the most basic ones are implemented in our client: Measurement unitsThe same is true for the units, here are the ones defined in the client:Combining measurement and publishingIn session 2 we have seen how to readout sensors and control actuatorsNow we have seen how to publish and how to subscribe to Cayenne messages We have to combine those two in order to create a full cayenne IoT node. SHT30 on Cayenne(1)SHT30 on Cayenne(2)Cayenne MQTT client subscribeThis is a little more tricky:We have to create a callback function and register it with the Cayenne MQTT client When the push button or slider on Cayenne are activated this function will be called The function must find out from which channel the request is coming, and which are the data It must then act on the hardware correspondingly The Cayenne MQTT client sends a response message without our intervention A Qt app and Cayenne MQTTThe graphical user interface of Cayenne is fairly limited.Can we write an application with another GUI system interacting with our devices connected to the Cayenne MQTT broker? Example: The WeMos D1 buzzer. We want to play a song from a list of choices. The Buzzer GUIThe Cayenne MQTT C libraryThe Cayenne MQTT C library contains everything we need to communicate with the Cayenne MQTT broker:
The end of the showThere is still work for you during the exercises session to make you IoT node work with Sensor readoutPublishing the result on Cayenne (for the SHT30) Subscribe to a command message from the Cayenne slider to modify the settings of a colour component of your WS2812 rgb LED For further study please consult: https://afnog.iotworkshop.africa/do/view/AFNOG/AFNOGWorkshop2019 You will find plenty examples on https://github.com/uraich?tab=repositories | ||||||||||||||||||||||||||||||||
%SLIDESHOWEND% -- Uli Raich - 2019-05-15 | |||||||||||||||||||||||||||||||||
Line: 11 to 190 | |||||||||||||||||||||||||||||||||
Comments | |||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||
> > |
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Added: | ||||||||
> > |
Slide 1: Setting up and IoTSession 4: Sending real measurement data to Cayenne andreceiving commands and executing them on the hardwareUli Raichformally CERN, Geneva, Switzerland-- Uli Raich - 2019-05-15Comments |