diff --git a/ArduinoProps.zip b/ArduinoProps.zip index 2362676..840ffa0 100644 Binary files a/ArduinoProps.zip and b/ArduinoProps.zip differ diff --git a/README.md b/README.md index 8bc34b4..efd58f5 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Reading [EXAMPLES.md](EXAMPLES.md) will be helpful. The *ArduinoProps library* allows to build *escape room 2.0 props* easily with Arduino and particularly with Arduino Yun or Arduino Mega 2560 + Dragino Yun shield however it works with Ethernet and Wifi shields too. -The *ArduinoProps library* relies on *Nick O'Leary PubSubClient***** library for MQTT. MQTT is a lightweight +The *ArduinoProps library* relies on *Nick O'Leary PubSubClient* library for MQTT. MQTT is a lightweight ![](help/install-shot.png) publish/subscribe messaging protocol designed for M2M (machine to machine) telemetry in low bandwidth environments. @@ -211,7 +211,7 @@ You can build escape room 2.0 Arduino-based props just with Nick O'Leary PubSubC With *ArduinoProps library*: - create connected props quickly thanks to the application protocol and examples - targetted for escape room props, *ArduinoProps library* can be used for any IoT project -- re-use your code when creating new escape rooms**** +- re-use your code when creating new escape rooms - rely on *ArduinoProps library* robustness: for example, ***the library handles the Arduino Yun Bridge transfer size limitation by smartly splitting large messages (only) when necessary***. **Note:** sending too large messages to Arduino Bridge breaks the Arduino sketch. *ArduinoProps library* prevents this crash case. diff --git a/examples/BlinkOnBridgeProps/BlinkOnBridgeProps.ino b/examples/BlinkOnBridgeProps/BlinkOnBridgeProps.ino index 9129bd8..378935d 100644 --- a/examples/BlinkOnBridgeProps/BlinkOnBridgeProps.ino +++ b/examples/BlinkOnBridgeProps/BlinkOnBridgeProps.ino @@ -8,7 +8,7 @@ Copy and change it to build your first Arduino connected props, you will only be limited by your imagination. - Requirements: + Requirements: - install ArduinoProps.zip library and dependencies (https://github.com/fauresystems/ArduinoProps) */ #include @@ -26,10 +26,14 @@ BridgeProps props(u8"Arduino Contrôleur", // as MQTT client id, should be uniqu PropsDataLogical clignoter(u8"clignote", u8"oui", u8"non", true); PropsDataLogical led(u8"led"); +PropsDataText rssi(u8"rssi"); void clignote(); // forward PropsAction clignoteAction = PropsAction(1000, clignote); +void lireRssi(); // forward +PropsAction lireRssiAction = PropsAction(30000, lireRssi); + void setup() { Bridge.begin(); @@ -37,11 +41,14 @@ void setup() props.addData(&clignoter); props.addData(&led); + props.addData(&rssi); props.begin(InboxMessage::run); pinMode(LED_BUILTIN, OUTPUT); // initialize digital pin LED_BUILTIN as an output + lireRssi(); + // At this point, the broker is not connected yet } @@ -52,6 +59,7 @@ void loop() led.setValue(digitalRead(LED_BUILTIN)); // read I/O clignoteAction.check(); // do your stuff, don't freeze the loop with delay() calls + lireRssiAction.check(); } void clignote() @@ -62,6 +70,20 @@ void clignote() } } +void lireRssi() +{ + Process _process; + _process.runShellCommand("cat /proc/net/wireless | awk 'NR==3 {print $4}'"); + while (_process.running()); + String b; + while (_process.available() > 0) { + char c = _process.read(); + b += c; + } + b.trim(); + rssi.setValue(b + " dBm"); +} + void InboxMessage::run(String a) { if (a == u8"app:startup") diff --git a/keywords.txt b/keywords.txt index f122c3f..f14911b 100644 --- a/keywords.txt +++ b/keywords.txt @@ -27,6 +27,7 @@ InboxMessage KEYWORD1 begin KEYWORD2 addData KEYWORD2 loop KEYWORD2 +resetMcu KEYWORD2 run KEYWORD2 sendAllData KEYWORD2 sendDataChanges KEYWORD2 @@ -37,6 +38,9 @@ sendOmit KEYWORD2 sendOver KEYWORD2 sendProg KEYWORD2 sendRequ KEYWORD2 +inbox KEYWORD2 +outbox KEYWORD2 +clientId KEYWORD2 reset KEYWORD2 disable KEYWORD2 enable KEYWORD2