Alexa on Home Hub 100 development kit

This project is designed to use the Qualcomm® Home Hub 100 development kit to control a smart bulb and smart lock using Alexa voice services to demonstrate Home Automation. Designed to control the bulb, turn it on/off, lock and unlock, sense smoke and send data to AWS IoT at regular intervals.

The main objective is to develop a home automation solution using the Home Hub 100 development kit with Alexa as the voice UI to control smart devices like a smart bulb (turn on & off), smart lock (lock & unlock) and smoke detector.

HomeHub

Tech Talk :

Demo in action:

Build and Flash the Sample app

The development kit will come pre-installed with the sample application. You can skip to the “Assembly and smart devices setup” portion.

Steps to build and flash the sample application will help in case the development kit needs to be re-flashed or updated to a newer version of the app.

Download the Qualcomm® QCA4020 SDK and AIS sample app from here. Make sure all the files and folders are in place.

  1. Move AIS_demo from

    C:\\qca4020-or-3-2_qca_oem_ais.git\target\quartz\demo

    to

    C:\\qca4020-or-3-2_qca_oem_sdk-cdb.git\target\quartz\demo
  2. Move synaptics library from

    C:\\qca4020-or-3-2_qca_oem_ais.git\target\thirdparty\aws\synaptics

    to

    C:\\qca4020-or-3-2_qca_oem_sdk-cdb.git\target\thirdparty\aws\synaptics
  3. Move AIS ecosystem libraries from

    C:\\qca4020-or-3-2_qca_oem_ais\target\quartz\ecosystem\aws

    to

    C:\\qca4020-or-3-3_qca_oem_sdk-cdb.git\target\quartz\ecosystem\aws
  4. Download AWS SDK from https://github.com/aws/aws-iot-device-sdk-embedded-C and extract.
  5. Create thirdparty\aws\awsiot\ folder under target directory.C:\\qca4020-or-3-2_qca_oem_sdk-cdb.git\target\thirdparty\aws Now \aws folder will have two subfolders awsiot and synaptics
  6. Copy all files from aws-iot-device-sdk-embedded-C-3.0.1 folder to the third party \aws\awsiot\ folder.
  7. Download OPUS decoder source from http://opus-codec.org/release/dev/2018/06/01/libopus1_3_rc.html and extract.
  8. Move extracted opus source from opus-1.3-rc.tar.gz to C:\\qca4020-or-3-2_qca_oem_sdk-cdb.git\target\thirdparty folder.
  9. Set environment variables for compiling AWS sample app.set TOOLLIBPATH=C:\Program Files (x86)\GNU Tools ARM Embedded\6 2017-q2-update\lib\gcc\arm-none-eabi\6.3.1\thumb\v7e-mset NEWLIBPATH=C:\Program Files (x86)\GNU Tools ARM Embedded\6 2017-q2-update\arm-none-eabi\lib\thumb\v7e-m
  10. Navigate to the working directorycd C:\\qca4020-or-3-2_qca_oem_sdk-cdb.git\target\quartz\demo\AIS_demo\build\gcc
  11. Build the Sample app:build.bat t 4020 cdb
  12. You can flash the sample app over USB with the following instructions:
    1. Turn off the board
    2. Remove Jumper from J31 pins 1 and 2
    3. Set Jumper on J34 pins 1 and 2
    4. Turn on the board
    5. Open cmd
    6. Navigate to the path qca4020-or-3-2_qca_oem_sdk-cdb.git\target\quartz\demo\AIS_demo\build\gcc
    7. Run the python command python ..\..\..\..\..\build\tools\flash\qflash.py --comm 8 --debug
    8. Once the flash is complete, turn the board off
    9. Remove the Jumper on J34.
    10. Turn the board ON again.
    11. Connect terminal to the serial comm port, either enter "1" or reset the board to see the command line menu.

Assembly and smart devices setup

  1. Download the Kasa Smart Wi-Fi Plug and follow instructions to set up and install the smart power outlet.Setting up the Kasa smart Wi-Fi Plug
  2. Download the August smart lock app and follow instructions to install and set up the smart lock.Setting up the August smart lock
  3. Download the Alexa app and select device set up to add the August Lock and TP-LINK Kasa device to Alexa. Follow the instructions to set up the smart devices with Alexa.Setting up the smart devices with Alexa
  4. Plug in the light bulb to the Kasa Smart Wi-Fi Plug. Plug in the August Connect Wi-Fi Bridge into the second socket.Plug connection

Launching the application

  • Power ON the Home Hub 100 Board
  • Connect the micro-USB port J85 to your host PC. It will detect the USB connection as a serial port.

    Connect the micro-USB.
  • Open a hyper-terminal program like Putty and open the Com port as seen below.hyper-terminal
  • Once the Com port is open, enter the following commands3 53 7 WiFiHotspot Password WPA2 CCMP CCMPwait for handshakeWLAN: 4 way handshake success for device=14 4wait forNet: DHCPv4c: IP=10.73.201.200Subnet Mask=255.255.254.0 Gateway=10.73.200.1Net: Resolving SNTP client...Net: Interface wlan1 initialized, DNS and SNTP started Successfully
  • Once the device is connected to WiFi, you will need to set up the AVS account, add the Home Hub 100 development kit to your AVS account and download the AWS certs and create the “config.json” file. Please refer to the Home Hub 100 User Guide for more details on each step.
  • Once you have downloaded the certs, you can use the Certcs tool included in the SDK and download the certs to the Home Hub 100 device using the following commands:Net cert get QCA4020_AIS_Thing1.pem.crt 192.168.0.34 -s client.bin -k QCA4020_AIS_Thing1.pri.key -t pem_certNet cert get root_ca.bin 10.45.160.97 -s aws_ca_list.bin -t ca_list Net cert get qdn_config.json 10.45.160.97 -s /spinor/ais_configuration.json -t raw_file
  • Once the certs are stored on the development kit, you can run the demo with the following two commands.5 45 5wait for alexa client is ready

Alexa Commands

Once the app is launched, you can use the following Alexa commands to control the demo.

  • Alexa, turn on the light
  • Alexa, turn off the light
  • Alexa, lock the door
  • Alexa, unlock the door
  • Alexa, is the door locked?
  • Alexa, play some music
  • Alexa, stop

Qualcomm Home Hub 100 and Qualcomm QCA4020 are products of Qualcomm Technologies, Inc. and/or its subsidiaries.