Here are my latest updates:
- I tested the Bluetooth Low Energy (BLE) connection between the Arduino Nano 33 IoT board and an Android smartphone. Using the ArduinoBLE library, I created a Sanity Check program. In this program, the Arduino Nano 33 IoT board acts as a Peripheral device and the Android smartphone as a Central device. The Arduino defines a service with a String type characteristic. This String characteristic is an undocumented but available part of the ArduinoBLE library (check the GitHub repository of the library and this example). The characteristic is readable and can provide notifications when the values are changed. The content of the this characteristic is changed between 2 predefined messages every 10 seconds. The size of the String characteristic is set to 512 bytes but the notification payload can handle only 20 bytes of payload. So, when the notification mechanism is enabled on the smartphone, the received message is truncated if it is too long. For reading the full message, the classic reading should be triggered.
- I created the BLE connection module for the SmartExhibit project which you can see in action in the screenshots below
. This connection is used for providing a better interaction between the public and the exhibits of the museum.
- When a visitor connects via BLE to the exhibit using an app like LightBlue, different facts are sent every 10 seconds using a readable characteristic.
- Using a different characteristic, questions can be asked to the exhibit by the visitors. If the questions are one of the standard ones, to which the exhibit "knows" how to answer
, then a reply will be provided. Otherwise, the exhibit will let the visitor know that it doesn't know the answer.
- The facts, questions and answers are defined in a header file. Thus, the scalability is very simple because the code remains the same, only the header is needed to be changed for each exhibit of the museum.
- The User Interface of this app is not the most attractive but a separate app can be created for the museum in order to have an even better interaction with the public