TIA Weak Artificial Intelligence IoT Assistant

IoT security/environment monitoring device with NFC & fingerprint authentication devices and a Weak Artificial Intelligence Assistant.


Things used in this project

Hardware components

Arduino UNO & Genuino UNO
Arduino UNO & Genuino UNO
× 2
Arduino MKR1000
Arduino MKR1000
× 1
Solderless Breadboard Half Size
Solderless Breadboard Half Size
× 1
SeeedStudio Grove Base Shield
× 1
SeeedStudio Fingerprint Scanner
× 1
PN532 NFC Module V3
× 1
LED (generic)
LED (generic)
× 3
Temperature Sensor
Temperature Sensor
× 1
Proximity Sensor
Proximity Sensor
× 1
SparkFun Magnetic Door Switch
× 1
Jumper wires (generic)
Jumper wires (generic)
× 10
Resistor 330 ohm
Resistor 330 ohm
× 1

Software apps and online services

Microsoft Azure
Microsoft Azure
Arduino IDE
Arduino IDE
Visual Studio 2015
Microsoft Visual Studio 2015
SIML – Synthetic Intelligence Markup Language

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)


This project consists of three devices:

2 x Arduino Uno boards (AuthWayNFC & AuthWayFP)

1 x MKR1000 (DoorGuard1000)

1 x Windows Universal Application (TIA).

The two Arduino Uno boards are used for authentication to the Windows application and the MKR1000 is an IoT security device. The Arduino Uno boards communicate with the Windows Application using serial, the MKR1000 is a web server and the Windows Application controls it and reads sensor data via HTTP.

The Windows Universal application is a Weak Artificial Intelligence application using SIML – the Synthetic Intelligence Markup Language. The Windows application is programmed in C# and also uses speech recognition and speech synthesis.

The plan was to integrate Azure IoT Hub & Stream Analytics completely and be able to manage and monitor devices etc via the Windows Application but due to issues I came across with the Azure API’s and other work commitments I did not have enough time to do this but will be doing in the future. For now the DoorGuard1000 sends its data to Azure IoT Hub.


First of all you will want to setup your Arduino IDE, to do this download the latest Arduino IDE from here, at the time of writing this article the latest version is 1.6.7. Once you have downloaded and installed the latest version follow the steps that follow:

1. Using the Boards Manager install the MKR1000 build by Arduino BetaTesting and the Arduino SAMD Boards.

2. Using the Library manager install/update the Wifi101 library.



Next you will need to set up an Azure account and also an IoT Hub that will manage data from the DoorGuard1000. Follow the following instructions to compete this stage:

1. Register your free Azure account from here if you don’t already have one.

2. Login to the Azure Portal.

3. Create your new Azure IoT Hub.

3. Download and install SetupDeviceExplorer.msi for Windows from here, or the IoT Hub Explorer via NPM if you are running a different operating system, instructions here.

4. In Azure select your IoT Hub and go to Settings -> Shared Access Policies -> iothubowner and copy the Connection string—primary key.

5. Open up Device Manager and paste your Connection String into the IoT Hub Connection String section on the first page of Device Manager.

6. Create a new device that will represent your DoorGuard1000 in the Management tab.

7. Create a SAS for your device and save it for later.

8. Next you need to install the SSL certificate for your IoT Hub onto the MKR1000. First of all download the Wifi101 Firmware Updater.

9. Navigate to File > Examples > WiFi101 > FirmwareUpdater in the Arduino IDE.

10. Upload the sketch to your MKR1000.

11. Run the winc1500-uploader-gui file found in the firmware updater folder you just downloaded.

12. Follow the instructions in the application to download the SSL certificate for your IoT Hub and upload it to your MKR1000.


For the AI part of this project I have implemented SIML, Synthetic Intelligence Markup Language. The following info will help you if you want to create your own SIML files.

1. There is a SIML package preloaded in the Windows project but if you want to modify the SIML package you will need to download the Syn Chatbot Studio software from here and create your own.

2. Create a new project, to find out how to do this you can study the documentation here.

3. Edit the SIML file with your desired content for more information you can check out the link here. You will need the basic layout provided in the GitHub repository so that integrated functions of the Windows app will work:

4. Export the package into the bin\x86\Debug\AppX folder of the Windows app, replacing the file named TIA.simlpk


Now that we have set up the basics it is time to get to work on the devices. The following set of instructions and schematics will help you to get the devices and application ready so you can start playing using them.

If you need any additional help with setting up the following, my hourly rate is 30euros per hour 😉 Just kidding leave a message in the comments below and I will make sure to answer any issues as quickly as possible. If you find any bugs please use the “Issues” section on the GitHub repository.

Here we go….

DEVICE: DoorGuard1000

The DoorGuard1000 is an IoT security/environment monitoring device developed on the MKR1000 that is manageable via the Windows Universal Application. The device includes a temperature sensor, proximity sensor and a switch that detects when a door is open. The following information will tell you how to set up the DoorGuard1000:

1. Follow the schematic below:

2. Edit the IntelliLanDoorGuard1000AzureHTTP sketch and replace your configuration at the top of the file, you will need your IoT Hub settings and the SAS generated in the above steps.

2. Upload sketch to your MKR1000.


The AuthWayFP device is a fingerprint scanning device built on the Arduino Uno that communicates with the Windows app via serial. The device is used to authenticate onto the app by scanning your finger. The following information will tell you how to set up the AuthWayFP:

1. Follow the schematic below.

2. Install the Adafruit-Fingerprint-Sensor-Library library to your Arduino IDE.

3. Follow the instructions here and use the examples to register your fingerprint to the device.

4. Upload the AuthWayFP sketch to your Uno.


The AuthWayNFC device is an NFC scanning device built on the Arduino Uno that communicates with the Windows app via serial. The device is used to authenticate onto the app by scanning an NFC chip. (See video above to see me using an NFC chip implanted in my hand to authenticate onto the app.) The following information will tell you how to set up the AuthWayNFC:

1. Follow the schematic below.

2. Install the PN532-PN532_HSU library to your Arduino IDE.

3. Upload the AuthWayNFC sketch to your Uno.


Source : TIA Weak Artificial Intelligence IoT Assistant

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top