There are several students at the school I work in who are partially sighted and I wanted to build several instruments that they could use that would allow them to be able to take part in Science experiments. A clock was chosen as a first project as it could be turned into a timer and this second project is a talking thermometer.
Getting the speech just right:
The biggest problem with getting this project right was to have as natural a voice as possible. I decided to produce a file that contained a range of words and phrases that would be useful in a range of measuring instruments. The result was the Talking Measurements file that contains a wide range of words suitable for a number of measuring instruments from Voltage and Current to GPS and Humidity. There is a list of phrases by measuring instrument in the text file Library List.txt.
This project uses an Arduino UNO, a WT588D -U 32M audio module and an RTC module DS1327. The clock has four connections, Vcc, Gnd, SDA (connected to A4) and SCL connected to A5. A simple push button switch is connected between digital pin 2 and Gnd, this is used to make the clock speak. The WT588D comes in several versions and the pin out for the -U version that has a USB connection is shown below.
Pin connections are looking down on the top of the module. Connect a small 8 ohm speaker to pins 9 and 10 and connect the module via a USB lead to a PC and startup the WT588D VoiceChip software.
If the program starts in Chinese click on the second menu item on the right and select English. Load the talking_measurements_winproj file using the Load a project button. Click on the compile button. Now click on the Options button and select Three Line Mode, PWM, Busy Mode – LOW and finally make sure Pull High Resistor is selected. Click on OK to exit the screen. Now click on the Upload to WT588D button, make sure the WT588D is connected to the PC, but not connected to the Arduino and click on the Connect button, the red light will turn green. To upload the audio to the WT588D click on the OneKeyDownLoad button, the green status bar will move across twice. On the second pass it should cross all the way over, if it stop about three quarters of the way over press the OneKeyDownLoad button again.
Once the audio file has been uploaded then connect the WT588D to the Arduino, the complete connection diagram for the clock is shown below.
The DS18B20 thermometer can be purchased in a number of forms. I have chosen the sealed version that is fitted with about 500mm of cable. It must have a 4K7 resistor fitted between the data line and Vcc and although it can be operated in a two wire mode it is faster when connected with all three wires. The resolution can be set and the more accurate the reading is the slower it is to send the data. By setting the resolution to 12 (as I have done here) the resolution is 0.1C, this slows things down a little and needs a long press on the button to talk the temperature. Setting the resolution to 9 will give a resolution of 0.5C and the button only needs to be pressed quickly to get it to talk.
If the temperature is changing quickly the spoken temperature my differ from the displayed temperature, but the device will always speak the temperature that was present the moment the button is pressed
The audio file in the WT588D project file contains a wide range of words and phrases useful for measuring devices and a list is included in the GitHub files. The sub routines will speak a 4 digit integer and a four digit decimal number with two decimal places. Minus numbers are also spoken.