UPDATE: Github code for M5Atom Walkie Talkie
I was looking for a DIY in house voice intercom system. If you have a teenager living with you in a 3 levels house, you should have strong lungs and a sergeant voice to call him shouting for dinner or to tell him take out the trash; otherwise a hide and seek takes place inside the house to find him. Instead of calling him on the cellphone which he will never answer, i tried to find an intercom project to install in each room. Unfortunately alexa, google home mini etc are not in my native language and therefore are not sold in my country.
Searching on the internet, i came upon ESP32 Walkie Talkie by atomic14, and that was exactly what i was looking for. Instead of using ESP32, i decide to use M5StickC which has a microphone built in, 3 buttons and a nice LCD screen with battery. The only missing part was speaker and amplifier. Changed atomic14’s code accordingly and tried it; it worked, however the speaker was so tiny it acts as a buzzer instead of a speaker. Also, the microphone was so buried inside that you have to stick the M5 to your mouth for your voice to be recognized. So i used to M5StickC and SPK HAT in my other Earthquake Sensor Project.
I quickly came into senses to understand that using an i2s microphone (INMP441) and an i2s amplifier (MAX98357) was required so i bought 2 sets of each. Instead of using a regular ESP32, i decided to use the marvelous M5Atom ESP32 because of its size. So the prototype is like this:
Using longer jumper cables spend too much of my time; it creates enormous amount of noise on the microphone; so i needed to shorten all of it. I guess using a PCB like atomic14 and some capacitors to make a stable feed will be a lot better.
The prototypes were ready to test:
Changing the code was the hardest part; since this was my first time dealing with i2s and UDP transport. But after struggling a lot, i managed to make it work; and the performance is quite good. The good thing is you can either use UDP on WiFi or ESPNow. I decided to use ESPNow for protocol in order not to put an additional UDP stress on the local WiFi, ESPNow communicates directly to each other without usig WiFi (as far as i understand )
The only thing left is after my tests, i decided to go with larger speakers since this kind of tiny speaker sounds works but are not enough.
So, next steps:
- Select high performance (louder) small size speakers
- Prepare a PCB which also stabilizes power for less noise
- Prepare a 3D print enclosure
- Publish the code on github (It is a mess now, have to tidy it up)
- Home Assistant interface (Possibilities are endless)
- Batteries ?
All in all it works perfectly. I might need assistance especially on 2 and 3, Stabilizing power and prepare a PCB and also preparing a 3d Print enclosure. If any of you guys can help, i appreciate.