Tải bản đầy đủ (.pdf) (29 trang)

Assignment 1 Internet of Things (1690 Distinction)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.09 MB, 29 trang )

ASSIGNMENT 1 FRONT SHEET
Qualification

BTEC Level 5 HND Diploma in Computing

Unit number and title

Unit 43: Internet of Things

Submission date

Date Received 1st submission

Re-submission Date

Date Received 2nd submission

Student Name

Bui Quang Minh

Student ID

GCD210325

Class

GCD1104

Assessor name


Tran Trong Minh

Student declaration
I certify that the assignment submission is entirely my work and I fully understand the consequences of plagiarism. I understand that
making a false declaration is a form of malpractice.
Student’s signature
Grading grid
P1

P2

P3

M1

M2

M3

D1

D2


 Summative Feedback:

Grade:

 Resubmission Feedback:


Assessor Signature:

Internal Verifier’s Comments:

IV Signature:

Date:


Contents
TASK 1. Review and evaluation of IoT aspects ............................................................................................................. 4
I. Exploring and reviewing IoT ................................................................................................................................... 4
1. Concepts about IoT (P1) .................................................................................................................................... 4
2. IoT Standard and Framework, Tools and harware (P2) .................................................................................... 6
II. Evaluation of a common IoT platform ................................................................................................................ 13
1. Impact on Software Development Lifecycle (M1) .......................................................................................... 13
2. Impact on IoT Security (M2) ........................................................................................................................... 14
Task 2. Appropriate IoT application plan .................................................................................................................... 15
I. Problem and its IoT solution ................................................................................................................................ 15
1. Exploring IoT Development Components (P3)................................................................................................ 15
2. Determining a specific problem to solve using IoT ......................................................................................... 18
II. IoT application plan............................................................................................................................................. 19
1. Selecting appropriate IoT options (M3) .......................................................................................................... 19
2. Feasibility and plan for IoT application (M4) .................................................................................................. 21
Task 3. Advanced Evaluating and Justifying................................................................................................................ 23
I. Evaluating and Justifying IoT architecture (D1) ................................................................................................... 23
1. Identification of IoT architecture forms.......................................................................................................... 23
2. Evaluating each architecture forms ................................................................................................................ 25
3. Justifying usage and their roles....................................................................................................................... 26
II. Enhance IoT application security iteratively (D2) ............................................................................................... 26

1. Identifying weaknesses ................................................................................................................................... 26
2. Setting iteration goals ..................................................................................................................................... 27
3. Implementation of upgrades .......................................................................................................................... 27
Table Of Figures .......................................................................................................................................................... 28
REFERENCE LIST .......................................................................................................................................................... 29


TASK 1. Review and evaluation of IoT aspects
I. Exploring and reviewing IoT
1. Concepts about IoT (P1)
1.1 Definition
The Internet of Things, or IoT, is a system of connected devices that share information and the cloud.
These devices, like sensors and software, are built into various machines and everyday items.
Many businesses across different fields are using IoT to work better, provide better customer service,
make smarter decisions, and increase their overall value.
With IoT, data can be sent between devices without people directly interacting.
In the Internet of Things, a "thing" can be anything from a person with a heart monitor, a farm animal
with a biochip, to a car with sensors that warn the driver about low tire pressure. Essentially, any
object, natural or man-made, that can have an Internet Protocol address and share data over a network
can be part of the Internet of Things.

Figure 1. Internet Of Things illustration

1.2 How IoT work
IoT works through a system of smart devices connected to the internet. These devices have built-in
technology like processors, sensors, and communication hardware to gather, send, and respond to data
from their surroundings.
The collected data from IoT devices is shared by connecting to an IoT gateway, acting as a central hub.
Before sharing, the data can be analyzed locally on an edge device, reducing the amount of data sent to
the cloud and saving bandwidth.

Sometimes, these devices talk to each other and act on the shared information. Most of the time, they
operate without human involvement, but people can interact with them to set them up, give
instructions, or access data.


The way these devices connect, network, and communicate depends on the specific IoT applications in
use. Additionally, IoT can leverage artificial intelligence and machine learning to make data collection
processes easier and more adaptable.

Figure 2. How IoT works illustration

1.3 IoT characteristics
Understanding the capabilities and impact of IoT in various industries involves recognizing these key
characteristics:
Scalability:


IoT systems can handle a large number of devices without compromising performance.



Whether in a smart home, city, or industry, IoT networks can expand as more devices join.

Interoperability:


Devices from different brands or types can communicate seamlessly in an IoT environment.




This ensures effective information exchange and collaboration, irrespective of individual
specifications.

Real-time Data:


IoT involves continuous real-time data collection and analysis.



Devices transmit information promptly, enabling informed decision-making based on up-to-date
data.

Automation.


IoT devices can perform tasks autonomously without human intervention.



Through programming and artificial intelligence, devices can execute predefined actions based
on conditions or triggers.


1.4 Real-world examples
Smart Home Automation:


Utilizes IoT devices like smart thermostats, lighting controls, and security cameras.




Example: A smart thermostat learns your heating and cooling preferences, optimizing energy
usage, while smart security cameras enable remote monitoring and alerts for suspicious
activities.

Remote Patient Monitoring and Healthcare:


Wearable IoT devices like fitness trackers and smartwatches collect health data.



Example: Real-time monitoring allows early identification of health conditions, and IoT-enabled
medical devices integrate patient data with electronic health records for informed healthcare
decisions.

Connected Vehicles and Transportation:


Enables connected cars and intelligent transportation systems with real-time tracking of vehicle
performance and diagnostics.



Example: Smart traffic management systems optimize traffic flow, reduce congestion, and
enhance road safety. Networked cars provide alternate routes and real-time traffic data.

Smart Cities:



Transforms cities into smart cities using IoT sensors to collect data on energy use, waste
management, traffic flow, and environmental factors.



Example: Data-driven decision-making helps city officials allocate resources efficiently, enhance
public services, and improve the overall quality of life for citizens.

2. IoT Standard and Framework, Tools and harware (P2)
2.1 IoT Standard and Framework
Organizations Involved in IoT Standards:


International Electrotechnical Commission (IEC)



Institute of Electrical and Electronics Engineers (IEEE)



Industrial Internet Consortium



Open Connectivity Foundation




Thread Group



Connectivity Standards Alliance


Examples of IoT Standards:
IPv6 over Low-Power Wireless Personal Area Networks (6LoWPAN):
 Standardized by the Internet Engineering Task Force (IETF).
 Enables low-power radios (e.g., 804.15.4, Bluetooth Low Energy, Z-Wave) to communicate with
the internet.
 Used in home automation, industrial monitoring, and agriculture.

Figure 3. LoWPAN logo

Zigbee:
 A low-power, low-data rate wireless network standard based on IEEE 802.15.4.
 Zigbee Alliance created Dotdot, a universal language for secure IoT communication.

Figure 4. Zigbee logo

Data Distribution Service (DDS):
 Developed by the Object Management Group.
 An industrial IoT (IIoT) standard for real-time, scalable, and high-performance machine-tomachine (M2M) communication.

Figure 5. DDS logo


IoT Protocols:

Constrained Application Protocol (CoAP):
 IETF-designed protocol for low-power, compute-constrained IoT devices.
Advanced Message Queuing Protocol (AMQP):
 Open-source standard for asynchronous messaging in IoT device management.
Long-Range Wide Area Network (LoRaWAN):
 Designed for WANs to support large networks, such as smart cities, with millions of low-power
devices.
MQ Telemetry Transport (MQTT):
 Lightweight protocol for control and remote monitoring applications, suitable for devices with
limited resources.
IoT Frameworks:
Amazon Web Services (AWS) IoT:
 A cloud computing platform for IoT by Amazon, facilitating secure interactions between smart
devices and the AWS cloud.

Figure 6. Amazon Web Services IoT logo

Arm Mbed IoT:
 An open-source platform for developing IoT apps based on Arm microcontrollers, providing a
scalable and secure environment.

Figure 7. Arm Mbed IoT logo

Microsoft Azure IoT Suite:
 A set of services for interacting with and analyzing data from IoT devices, offering
multidimensional analysis, transformation, and aggregation.


Figure 8. Microsoft Azure IoT Suite logo


2.2 Top tools and devices
Arduino:


Hardware Offerings: Microcontroller boards, modules, shields, and kits.



Software:



Arduino IDE: Open-source prototyping platform for coding compatible with Arduino boards.



Arduino Cloud: Enables wireless communication, remote control, and data collection for IoT
devices.



IoT Cloud Remote: Application for creating dashboards to control cloud-connected devices.



Web Editor: Browser-based application for coding.

Flutter:



Programmable processor core based on Arduino with an ARM processor, built-in battery
charging, and a security chip.



Offers basic and pro control modules, complete kits, accessory boards, and 3D-printed parts.



Ideal for wireless sensor networks.

Tessel 2:


Programmable microcontroller supporting JavaScript, Node.js libraries, and other languages.



Runs Linux and provides access to NPM modules.



Extendable with external hardware (sensors, peripherals) and features Wi-Fi, Ethernet
connectivity, MediaTek router, 64MB of RAM, and 32MB of Flash.



Convenient command-line tools for prototyping.

M2MLabs Mainspring:



Open-source Java-based framework for developing machine-to-machine applications.



Widely used for fleet management apps and remote monitoring projects.



Enables flexible device configuration and supports reliable machine-to-machine connections.



Quick app prototyping and long-term data storage with a scalable Apache Cassandra database.

Raspberry Pi OS (formerly Raspbian):


Official operating system for Raspberry Pi hardware.




Free, Debian-based system with a 32-bit version available and a 64-bit version in active
development.



Includes basic programs and utilities for hardware functionality.




Compiles thousands of packages and pre-compiled software for easy installation.

2.3 IoT hardware
The hardware in IoT systems includes devices like a remote dashboard, control devices, servers, a
routing or bridge device, and sensors. These devices handle important tasks such as turning on the
system, specifying actions, ensuring security, communication, and detection to support specific goals.
In IoT, sensors are crucial hardware. They include energy modules, power management modules, RF
modules, and sensing modules. RF modules manage communication through signal processing, using
technologies like WiFi, ZigBee, Bluetooth, radio transceiver, duplexer, and BAW.

Figure 9. Sensors

Wearable electronic devices are small gadgets worn on different body parts like the head, neck, arms,
torso, and feet. Examples include helmets, glasses, jewellery, watches, wristbands, clothing, and shoes.

Figure 10. Wearable electronic devices


Standard devices like desktops, tablets, and cell phones are essential in IoT. The desktop gives the user
a high level of control, the tablet provides access to key features, and the cellphone allows for some
settings modification and remote functionality.
2.4 Popular APIs for IoT
APIs play a crucial role in the Internet of Things (IoT) by securely exposing connected devices to
customers and other apps in the IT infrastructure. This is particularly important as APIs connect
essential things like medical devices, cars, thermostats, and energy grids to the broader ecosystem.
Deploying scalable, flexible, and secure API management becomes crucial in facilitating this connection.
In our everyday lives, many of us use smartwatches and fitness trackers connected to mobile phones,

linking these devices to the internet and accessing services from providers. APIs play a key role in
connecting applications to these providers.
Different Types of APIs in IoT:
SOAP:


Protocol defining communication between server and client in XML format.



Web services publish their interface definition in a machine-readable document.

JSON and XML:


Older methods compared to SOAP, using simpler approaches for calling and utilizing less
bandwidth.

REST:


Representation State Transfer for establishing communication with electronic devices.



Architectural principles, not just a protocol, with features like interface simplicity and resource
identification.

Top IoT APIs:
Google Assistant API:



Manages and converses with devices, providing voice control, language understanding, hot
word detection, and other services.

Figure 11. Google Assistant API logo


Garmin Health API:


Allows mobile app developers to use health-related data collected from Garmin wearables,
monitoring steps, calories, sleep, heart rate, stress, intensity, and more.

Figure 12. Garmin Health API logo

Withings API:


Developed by Withings for IoT app development, focusing on measuring devices like blood
pressure monitors and scales.



Allows third parties to access users' activity data, supporting nearly thirty activity types.

Figure 13. Withings API logo


II. Evaluation of a common IoT platform

1. Impact on Software Development Lifecycle (M1)
Software Specification
The customer and the engineer work together to figure out what services the software needs to
provide and the limitations on how it can operate and be developed. The agreed-upon requirements
are written down in a document called the Software Requirement Specification (SRS). This whole
process is also known as software requirements and is divided into four stages:


Feasibility Study: This is an analysis to see if it makes financial and technical sense to develop the
software. The study should be relatively quick and cost-effective.



Requirement Elicitation and Analysis: This involves figuring out the system's requirements to
understand what it needs. It might include creating system models and prototypes.



Requirement Specification: This step is about turning the system's requirements into written
documents (user and system requirements) to move on to the next phase.



Requirement Validation: This involves checking if the system requirements are complete and
consistent. Any mistakes in the document from the previous step are found and corrected.

Software development
Software development is the process of turning the specifications decided in the previous stage into a
working system that can be executed. It involves both designing and programming the software. During
the design process, the structure of the software is decided, and a data model is created to build a

system architecture, specify the database, and outline interfaces and components. This involves the
following activities:


Architectural Design: In this phase, designers decide on the overall structure of the system,
including its components. They define the modules and subsystems along with their
arrangements and relationships.



Interface Design: This phase focuses on creating interfaces for the system and its components,
ensuring they work seamlessly.



Component Design: Each part of the system is individually designed to determine what it does
and how it operates. This also considers reusing existing components.



Database Design: Here, the database is designed, including the structure of the system's data
and how it's represented in the database. This also considers reusing existing databases.

Software validation
Software validation is a crucial phase that involves confirming that the designed software meets the
customer's specified requirements and expectations. This includes both validating the development
process and the final product.
Component Testing:



Every component of the system is tested separately and independently.


System Testing:


Components that passed the component testing are integrated and tested as a whole to detect
defects from component interaction and find issues at component interfaces.



Both functional and non-functional requirements of the process are tested.

Acceptance Testing:


The system is tested using real data provided by the customer in acceptance testing.



This ensures the system meets the customer's requirements, and they accept it for operational
use.

2. Impact on IoT Security (M2)
Even though IoT technology has many advantages and is well-regarded, it comes with several
difficulties and potential risks for users. Below are these challenges:
Privacy Concerns:
Due to the vast amount of data collected by IoT, including information about everyday objects and
potentially private details like users' locations or health records, people worry that this data could be
accessed by unauthorized parties. Ensuring and addressing these privacy concerns is crucial.

Security Issues:
Connected to privacy, security challenges arise in safeguarding user data from unauthorized access,
especially considering the reliance of IoT systems on networks. Researchers are actively working on
achieving high levels of security to mitigate these risks.
Compatibility Challenges:
When devices from different manufacturers are linked through a network, ensuring compatibility is
essential for the entire system to function properly. While a common standard among manufacturers
could address this, technical issues may persist.
Data Integrity:
Maintaining the correctness and preventing modification of data is crucial. This involves employing
secure network connections, including techniques such as end-to-end encryption.
Data Confidentiality:
Secure transmission of messages across the network is vital, protecting them from unauthorized
access. Various techniques, including requiring identification for network actions, are used to ensure
data confidentiality.
Data Authentication:
Verifying that IoT data comes from the correct sender to the intended receiver involves correctly
identifying every object on the network. These challenges highlight the complexities associated with
IoT technology.


Task 2. Appropriate IoT application plan
I. Problem and its IoT solution
1. Exploring IoT Development Components (P3)
1.1 Architecture
Even though every IoT project is unique, the fundamental structure has remained the same. Since the
early days of IoT research, the three-layer architecture has been the main model for IoT applications.
These layers are Perception (or Devices), Network, and Application.



Perception: This layer includes the sensors and actuators that collect and act on data from the
connected device.



Network: The network layer manages the movement of large amounts of data within the
application, connecting devices and sending data to backend services.



Application: The application layer is what users interact with, whether it's an app for controlling
a smart device or a dashboard displaying the status of system devices.

While the three-layer architecture is a good way to explain an IoT project, it has its limits. Many
proposed architectures include different or additional layers. One popular model is the five-layer
architecture, which adds Transport (replacing Network), Processing, and Business layers to the
Perception and Application layers from the three-layer model.
In addition to Perception and Application, you usually find these three layers:


Transport: This layer manages data transfer between sensors in the Perception layer and the
Processing layer through various networks.



Processing: Also known as the Middleware layer, this layer stores, analyzes, and pre-processes
data from the Transport layer, often located on the edge of the cloud for quick communication.




Business: This layer, often called Business Intelligence, is higher than the Application layer. It
involves everything related to stakeholders, and decision-making based on data from the
Application layer occurs here.

Figure 14. IoT architecture


1.2 Framwork
The Ewings Framework is a comprehensive tool for easily creating IoT applications using ESP8266. It's
built on top of the arduino-esp8266 layer, making it user-friendly for developers.

Figure 15. Ewings Framework

The ESP8266EX contains an upgraded version of Tensilica’s L106 Diamond series 32-bit processor, along
with on-chip SRAM, and Wi-Fi capabilities. Its non-OS SDK provides APIs for core ESP8266 functions like
Wi-Fi data transmission, TCP/IP stack, hardware interfaces, and basic system management.
Arduino offers developer-friendly libraries that utilize these SDK APIs. Thanks to Arduino's user-friendly
IoT development environment, developers find it easy to create applications using the Arduino IDE.
The Ewings Framework is positioned above these Arduino libraries in the structure. This arrangement is
illustrated in the Ewings ESP8266 Structure figure mentioned earlier.
Additionally, Ewings provides various services like HTTP Service, NTP Service, and Wifi service.
1.3 Tool
Arduino is a platform for electronics that's open-source, meaning it's built on accessible hardware and
software. With Arduino boards, you can take various inputs like light on a sensor or a button press,
even a Twitter message, and turn them into outputs, like activating a motor or turning on an LED. You
instruct the board on what to do by sending a set of instructions to the microcontroller using the
Arduino programming language (based on Wiring) and the Arduino Software (IDE), which is based on
Processing.



Figure 16. Arduino IDE

Here are some key features of Arduino:


Inexpensive: Arduino boards are affordable compared to other microcontroller platforms. Even
the simplest version can be put together by hand, and pre-assembled modules cost less than
$50.



Cross-platform: The Arduino Software (IDE) works on Windows, Mac, and Linux. This is not
common for many microcontroller systems, which are often limited to Windows.



Simple Programming Environment: The Arduino IDE is user-friendly for beginners but also
flexible for more advanced users. It's based on the Processing programming environment,
making it familiar for students learning to program.



Open Source Software: The Arduino software is open source, meaning it's available for
extension by experienced programmers. The language can be expanded through C++ libraries,
and those interested in technical details can transition from Arduino to the AVR C programming
language it's based on.



Open Source Hardware: Plans for Arduino boards are published under a Creative Commons

license. This allows experienced circuit designers to create their own versions, enhancing and
customizing them. Even less experienced users can build a basic version on a breadboard to
understand how it works and save money.

1.4 Hardware
The NodeMCU ESP8266 module is a tiny but powerful microcontroller based on the ESP8266 chip. It's
affordable and allows developers to connect their projects to the internet and control them remotely.
This device works seamlessly with the Arduino Integrated Development Environment (IDE) and
supports scripting in either Lua or the Arduino programming language. It's widely used in IoT (Internet
of Things) projects, offering the potential to create gadgets for homes, remote control, and more.
In IoT applications, the NodeMCU ESP8266 serves as a popular development board, providing a
versatile and cost-effective way to connect devices to the internet. It comes with Wi-Fi capabilities and
programming features, making it ideal for quickly prototyping and deploying IoT solutions. The board's
compatibility with the Arduino IDE and a variety of libraries simplifies the programming process. Its
small size and low power consumption make it suitable for a wide range of applications, from home
automation to industrial control systems.


Figure 17. Nodemcu esp8266

2. Determining a specific problem to solve using IoT
2.1 Identification of the problem
Keeping your home safe is crucial for the well-being of your family. Imagine a situation where you're
not aware of what's happening at home when you're out or asleep. This lack of knowledge can be a
serious concern, especially if there's a potential threat like a thief. A break-in not only poses a risk to
your belongings but also endangers the safety of your loved ones. Finding a solution to stay informed
and secure, even when you're not at home, is essential for your peace of mind and the protection of
your family.

Figure 18. Thief illustration


2.2 Purpose of the project
Creating a device to detect and alert me about potential thieves in your house is a smart and proactive
way to enhance the safety of my family and belongings. With this project, I can develop a system that
recognizes unusual activity or unauthorized entry, triggering an alert to notify our family members,
even when we're away or asleep. This innovative approach empowers me to take quick action and


ensures that I'm informed about any potential threats, providing an extra layer of security for my home
and loved ones.

Figure 19. Thief alert illustration

II. IoT application plan
1. Selecting appropriate IoT options (M3)
1.1 Introduction
Making sure your home is safe is super important for your family's well-being. Think about times when
you don't know what's happening at home, especially when you're out or sleeping. Not being aware
can be a big worry, especially if there's a chance of a thief coming in. A break-in isn't just a danger to
your stuff; it can also put your family at risk. It's crucial to find a way to feel safe and know what's going
on, even when you're not there. Creating a gadget that can spot potential thieves and give you a headsup is a clever way to boost your family's safety. With this project, you can make a system that
recognizes strange activity or if someone enters without permission. It will then send an alert to let you
and your family know, even if you're away or asleep. This smart idea lets you act fast and keeps you
informed about any possible dangers, giving extra protection for your home and loved ones. Below
parts are the details about this project.
1.2 Selection of IoT components
To address the challenge of thief recognition, the selection of IoT components is crucial for building an
effective and reliable solution. The chosen components for this application include the NodeMCU
ESP8266, HC-SR501 motion sensor, a buzzer, and a keypad.
NodeMCU ESP8266:

Advantages:


Compact and cost-effective.



Integrated Wi-Fi capability for seamless connectivity.



Ample GPIO pins for connecting peripherals.

Disadvantages:


Limited processing power compared to more advanced microcontrollers.




Relies on external power sources.

HC-SR501 Motion Sensor:
Advantages:


Inexpensive and widely available.




High sensitivity and quick response time.



Simple to interface with microcontrollers.

Disadvantages:


May trigger false positives due to environmental factors.

Buzzer:
Advantages:


Auditory alert system for immediate response.



Simple to integrate into the system.



Low power consumption.

Disadvantages:


Limited in conveying detailed information.


Keypad:
Advantages:


Provides a user-friendly interface for system control.



Versatile for arming/disarming the security system.



Can enhance user engagement.

Disadvantages:


Susceptible to wear and tear over time.

Justification:


The NodeMCU ESP8266 serves as the central microcontroller, offering connectivity and
processing capabilities.



The HC-SR501 motion sensor is chosen for its cost-effectiveness and reliability in detecting
motion within the monitored area.




The buzzer acts as an immediate audible alert, ensuring prompt response to a potential threat.



The keypad provides user interaction, allowing for system arming and disarming with ease.

These components collectively create a comprehensive IoT system capable of detecting intruders and
notifying users in real-time. The advantages and disadvantages considered for each component
contribute to an informed decision-making process in designing a reliable solution for thief recognition.



×