We have an Arduino library to make reading our GDX sensors fairly easy. The library is named GDXLib. You can install it while using the Arduino IDE (Integrated Development Environment). More info on this process is at How do I import the Vernier Arduino VernierLib or GDXLIb Libraries?
The GDXLib library works with any Arduino which supports the ArduinoBLE library. We have tested it with all of the following: Arduino Nano 33 BLE, Arduino Nano 33 BLE Sense, Arduino MKR Wifi 1010, Arduino UNO Wifi Rev2. The library supports about 45 different Vernier GDX sensors. It reads one channel at a time at up to 5 or 10 readings per second. You can select the channel and the data collection rate. Note that with the GDX sensors all the calibration is taken care of on the sensor and calibrated sensor readings are sent by Bluetooth to the Arduino. A couple simple sample example programs are included with the library.
Examples of projects we have done using our GDX sensors and Arduinos include:
- Displaying sensor readings on small displays connected to the Arduino.
- Displaying messages on a display mounted on a mask, controlled by a GDX sensor (This was all done in 2020.)
- Controlling a servo motor connected to the Arduino with a GDX sensor
- Setting up an alarm system, with a buzzer connected to the Arduino and responding to GDX sensor readings.
- Controlling LEDs with a GDX sensor. For example, we have made a “traffic light” with a red and yellow and a green LED that is controlled by our GDX Sound sensor. When the noise gets loud, the traffic light indicates red.
- The controlling a DCU with a GDX sensor
- Controlling a servo motor with a GDX sensor
Note also that we have a different Arduino library, VernierLib, that can be used to read our analog, wired, BTA sensors. It is designed for use with our Vernier Arduino® Interface Shield (BT-ARD). It handles all the issues of calibration and make the projects much easier. See What types of Arduino can be used with Vernier BTA and BTD sensors? and Arduino and SparkFun RedBoard Troubleshooting and FAQs