ProjectThe Project assignment will be handed out on 19 April 2021 . The project assignment requires you to design and implement a BLE-Based Sensor Network. At the end of the project, you will submit a report and demonstrate your implementation.
Problem Description and RequirementsBluetooth Low Energy (BLE) is becoming a dominant industry standard for short-range IoT communications. It is now emerging as a good alternative for providing wireless connectivity to low-power sensors. In this project, you will design and implement a BLE-based sensor network which consists of one or more sensor nodes and a gateway. To simplify the project, the sensor network uses a single-hop topology wherein the sensor nodes are all within communication range from the gateway. The gateway also has a backhaul link, which is used for receiving queries via CoAP. When the gateway receives a query via CoAP, it immediately initiates scanning to find the appropriate sensor. If an appropriate sensor is discovered, the gateway connects to the sensor, reads the data, and sends it back to the requestor. If no appropriate sensor is discovered, the gateway sends back an error message. The requirements on the gateway and sensor nodes are divided into three types: Core, Completion, and Challenge. To be considered a reasonable attempt, you must design, implement and demonstrate the Core requirements on both the gateway and sensor nodes.
You are free to format the payload of the CoAP responses (this is part of your design), however, the response must include the following information: (1) Unix timestamp; (2) sensor reading value; and (3) sensor reading unit. For temperature, the unit must be Celsius whereas for humidity, it must be Percent.
You are also free to define and format the different kinds of error messages that the gateway can respond to a client.
Hardware and Base CodeTo facilitate the implementation and evaluation of your designs, two M5Stack devices will be loaned to you. M5Stack is a versatile device equipped with WiFi and BLE which can be easily programmed using Arduino Studio. One key advantage of M5Stack is that you can modify the BLE source code to easily implement your ideas. Of course, you are free to use other BLE devices that you can have access. You may also collaborate with your classmates during testing so you have more devices for testing. For more information about M5Stack Arduino IDE, visit this page. A tutorial on how to setup Arduio Studio will be done during the lecture on 20 April 2021. You can download the base code for the gateway here. For the sensor, you can use the example here as base code. You can use the given base codes for implementing your designs. Alternatively, you can write your implementation from scratch.
Report and Source CodeA report explaining your designs and presenting validation results is to be submitted at the end of the project. You should clearly explain the novel aspects of your designs, cite the relevant sources where you have taken codes, ideas, design, etc. from, and also provide explanation of why your designs work well or do not work well under the different scenarios. An important part of your report is the Evaluation section. You must perform experiments to measure the response time of your system. Response time is measured from the perspective of the CoAP client, and defined as the time delay between the sending of the CoAP request and the receipt of the CoAP response. You will need to think about other performance metrics that you want to measure, as well as the parameters that you will need to vary that will affect the performance metrics. You are encouraged to use the template at ReportTemplate to structure your report. You must submit a copy of your source code through the submission system; that will allow us to run your implementation and validate it. Ensure that your code is properly formatted and commented. The deadline for the submission of the project report (and source code) is 23 May 2021. A demonstration of your implementation will be carried out on 26-28 May 2021 . See Demo for more information.
|Core Functionality||The gateway and sensor node implementation satisfies the core requirements specified in this handout. This item will be graded during the demo.||40%|
|Completion Functionality||The gateway node implementation satisfies the additional completion requirements specified in this handout. This item will be graded during the demo.||15%|
|Challenge Functionality||The sensor node implementation satisfies the additional challenge requirements specified in this handout. This item will be graded during the demo.||10%|
|Report||The report provides a comprehensive description of the project. See Report section above for more details. The report will be used to grade this item.||30%|
|Coding||This item refers to the clarity and readability of the code you have written, i.e., whether your code uses consistent coding style and sufficient documentation. The source code will be used to grade this item.||5%|