Example of using Stream storage for messages
This commit is contained in:
parent
edd167b81b
commit
1113695f4a
53
PubSubClient/examples/mqtt_stream/mqtt_stream.ino
Normal file
53
PubSubClient/examples/mqtt_stream/mqtt_stream.ino
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
Example of using a Stream object to store the message payload
|
||||||
|
|
||||||
|
Uses SRAM library: https://github.com/ennui2342/arduino-sram
|
||||||
|
but could use any Stream based class such as SD
|
||||||
|
|
||||||
|
- connects to an MQTT server
|
||||||
|
- publishes "hello world" to the topic "outTopic"
|
||||||
|
- subscribes to the topic "inTopic"
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <SPI.h>
|
||||||
|
#include <Ethernet.h>
|
||||||
|
#include <PubSubClient.h>
|
||||||
|
#include <SRAM.h>
|
||||||
|
|
||||||
|
// Update these with values suitable for your network.
|
||||||
|
byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
|
||||||
|
byte server[] = { 172, 16, 0, 2 };
|
||||||
|
byte ip[] = { 172, 16, 0, 100 };
|
||||||
|
|
||||||
|
SRAM sram(SRAM_CS_PIN, SRAM_1024);
|
||||||
|
|
||||||
|
void callback(char* topic, byte* payload, unsigned int length) {
|
||||||
|
sram.seek(1);
|
||||||
|
|
||||||
|
// do something with the message
|
||||||
|
myfunctionthattakesastreamargument(&sram);
|
||||||
|
|
||||||
|
// Reset position for the next message to be stored
|
||||||
|
sram.seek(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
EthernetClient ethClient;
|
||||||
|
PubSubClient client(server, 1883, callback, ethClient);
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
Ethernet.begin(mac, ip);
|
||||||
|
if (client.connect("arduinoClient")) {
|
||||||
|
client.publish("outTopic","hello world");
|
||||||
|
client.subscribe("inTopic");
|
||||||
|
}
|
||||||
|
|
||||||
|
sram.begin();
|
||||||
|
sram.seek(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
client.loop();
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user