This is a simple IoT project focused in security. The objective of the project is to control an actuator, of which a buzzer was chosen for test, but it can be anything with a on/off behavior. The MRAA library was used to interact with the buzzer.
The Intel Edison board was used for the project. Unfortunately, this board was discontinued by Intel. Other platforms can be used with little or no changes in the code, such as a Raspberry Pi, since the libraries used support the most commonly used platforms. In order to download the dependencies of the project on your working environment, run the following command:
$ npm install
This command will install all Node.js dependencies on your working environment. Be sure to have Node.js and NPM (Node Package Manager) installed on your environment prior to running this command.
To run the project, use the following command:
$ node main.js
This command will start the Node.js HTTPS server, and then you will be able to access the server with a browser in the local host through the following URL:
https://localhost:3000
In which 3000 is the port used by the Node.js HTTPS server. The server can also be accessed through it's IP address in the local network, which should look like this:
https://192.168.26.16:3000
IMPORTANT: You need to create new asymmetric cryptography keys in order to use the HTTPS server. You can use the OpenSSL to generate new criptographic material for the Node.js HTTPS server. The generated cryptographic material, meaning the public and private keys, should be placed in the security folder. Also remember to modify the main.js program to look for the correct file names that you created. Here's a simple tutorial on how to create your own asymmetric keys using OpenSSL: how to create your own asymmetric keys using OpenSSL.
In depth details about the project can be found in the report file (although it's written in Portuguese): Internet of "things": controlling actuators through an Internet page.pdf
ANY COMMENTS AND CONTRIBUTIONS ARE MUCH WELCOME!
This code is distributed under the MIT license.