Build a Elderly Communication System Using Zoom Meeting

Ferry Djaja
4 min readNov 8, 2020

In this tutorial, we’ll learn how we can create a communication system using Zoom Meeting for the elderly with limited mobility. In this scenario, we can initiate a meeting request with Zoom from our mobile phone and on the other side (elderly), they can immediately join the meeting without need their intervention. On the other hand, the elderly can make an emergency call by pressing a button.

What We Need to Prepare

From the hardware side, we need a mini computer to install the Zoom app client and to host our app that we are going to build. This computer should be equipped with a monitor, a speaker, a microphone, a webcam and an internet connection. In addition, we will need a push button (I am using a micro:Bit) for the elderly to make an emergency call.

From software side, we need to have an operating system (I am using Ubuntu Ubuntu 20.04.1 LTS, but you can also use Windows), a Zoom account and some libraries that we will install and configure.

Image courtesy of Chuwi LarkBox

Prepare the Component for Our App

Install and prepare the following components:

Install Libraries

Open your console (assuming using Ubuntu) and install these libraries:

npm install jsonwebtoken request-promise node-telegram-bot-api child_process opn bbc-microbit

We also need to get the zoom-api-jwt from https://github.com/zoom/zoom-api-jwt. Follow the instruction there and we need to modify a bit on the config.js.

The email property is just an email when you used to register with Zoom.

Getting Zoom API Key and Secret

Create a Zoom account and navigate to https://marketplace.zoom.us/develop/create and choose app type JWT.

Create an app and select App Credential. Copy the API Key and API Secret and paste it in config.js.

Getting Telegram Bot ID and Token

Install the Telegram client on your mobile phone and use the /newbot command to create a new bot. The Bot Father will ask you for a name and username, then generate an authorization token for your new bot.

To get the bot ID, search for @chatid_echo_bot and tap /start. It will echo your chat id.

Copy and paste the token and id to config.js.

Install and Configure micro:Bit

At this step, you must done installing the library for micro:Bit from https://github.com/sandeepmistry/node-bbc-microbit.

If you are using Ubuntu and unable to install the bluetooth-hci-socket, use this command to install:

npm install "https://github.com/jrobeson/node-bluetooth-hci-socket/#fix-builds-for-node-10"

Flashing micro:bit firmware

  1. Save hex file from firmware folder to computer.
  2. Connect micro:bit to computer using USB cable.
  3. Copy hex file to micro:bit disk drive.
  4. Calibrate magnetometer, by rotating micro:bit around in a circle.

Write Our App

At this point, we should have all the required libraries installed, setup and configure the micro:Bit and now we are ready to write our app.

Our app is based on the NodeJS that has the following function:

  • StartZoomMeeting(): This is to start the Zoom meeting by calling the HTTP Post to Zoom API v2 endpoint.
  • UpdateZoomMeeting(): This is to update the status of Zoom meeting to “end”. This is needed when we have done with the conversation.
  • callback_query(): To listen on the callback query when user clicks on Terminate Call and Initiate Call from the Telegram bot.
  • When we finish with the conversation, we should click Terminate Call to end the call so the backend will be able to start a new meeting call.
    If you click this button when there is no ongoing call, you will get a warning message ”Can’t terminate call”.
  • When we need to initiate a call, we should click Initiate Call.
    Take note that if the call is still ongoing, and we click this button again, you will get a warning message “Can ’t initiate call. Please terminate it first”.

You can find the complete code here: https://github.com/ferrygun/ZoomMonitoring

Quick Demo Video

And that’s all that we need to do. I hope you can make it and let me know if you have questions. Thank you and see you next time.

Reference

--

--