This document summarizes a minor project progress presentation by students Shivesh Navin, Neha Bansal, and Adil Ahmad, mentored by Mr. B.K. Hemant. The project aims to encrypt IoT device data using blockchain technology. Key tasks completed include researching resources, setting up development platforms and tools, connecting hardware modules on a breadboard, and implementing basic coding and routing algorithms. Challenges addressed include preventing DHCP IP clashes when multiple devices use the same range, and formulating algorithms for inter-device communication and resource discovery when the backbone network is unavailable.
3. Introduction
📌 The Internet of Things can simplify and automate our lives
for us. However what we often ignore is that under all the
convenience, manufacturers of these smart devices can also use
the personal data.
📌 As the “virtual us” syncs with our personal data in all time, it
grows with us and shares all our behaviours. It's like a
mandatory contract signed without our consensus as long as we
want to use our smart devices, we need to give away our
personal data for the benefit of availing the services.
📌 Our Objective is to make the data encrypted by the network
using block-chain technology.
4. “The citizens will divide
between those who prefer
convenience and those who
prefer privacy.
-Niels Ole Finnemann, a professor and director of
Netlab, Dighumlab Denmark
5. List of Tasks
📖 Resource Lookup
🔌 Setting up Platforms and Integrated Development Editors
🌏 Making it an Open Source Project: https://github.com/shiveshnavin/iot_blockchain
🔨 Connecting Various Modules on Hardware
👍 Testing the network
🔑 Deploying the Updated Codes
8. Tasks Completed:
Resource Lookup: github, youtube, research papers.
Platforms’ Setup: mJS, Mongoose OS, Sublime Text and Postman.
Connecting Modules: ESP8266, ESP32, etc.
Basic Coding and Routing algorithms implemented
Basic connections on Breadboard
9. Various Modules
Involved in the Project
▪ IOT Devices & Sensors: Things connected via a Block-chain based
network capable of communicating with and via each other without
need of a backbone network.
▪ OTA & Bootloader: Lite weight transmission over the air updates
system designed to dispatch firmware updates to things remotely .
The bootloader is especially designed to load firmware and rollback
to previous working firmware if update fails or commit an make the
update permanent.
▪ Resource Discovery: It is a process that locates and retrieves
existing resources based on particular attributes across multiple
administrative domains.
▪ Network Infrastructure Creation: Network infrastructure is the
hardware and software resources of an entire network that
enable network connectivity, communication, operations and
management of an enterprise network. It provides the
communication path and services between users, processes,
applications, services and external networks/internet.
10. Resource Discovery
1. Internetwork Communication (CORE)
To make HTTP calls from one device routed through AP and
routed through STA mode when device is working in
AP+STA mode . This would be used for Chaining Up multiple
devices , request forwarding and Call backing.
2. Implementation of Intercom functions (CORE)
Resource availability and transfer of requests.
on-request()
on_callback()
on_resource()
3. Resource Registry
Creation of table of resources available on a device.
11. Network Infrastructure Creation
1. WiFi Status LED behaviour
LED at pin 5 goes to blinking state when WiFi is connected or disconnected and Solid ON when
WiFi is connected.
2. Connecting to Backbone network when available
All devices are intended to connect to the backbone network when in centralized mode.
3. Interconnect
When backbone network goes down or is in chained mode , triggering a scan and connecting
to the IoT wifi SSID with the signal of highest amplitude.
13. DHCP server Configuration
Dynamic DHCP server configuration to prevent IP clashes while multiple DHCP servers are
used within the chained network .
let AP={
ssid:DEVICE_NAME,pass:"password",enable:true,
ip:"192.168.4.1" ,
gw:"192.168.4.1",
dhcp_start:"192.168.4.2",
dhcp_end:"192.168.4.100"};
14. OTA & Bootloader
RPC.addHandler('update', function(args) {
fname = WORKER_FILE + ".new";
print('Updating from url... ', args.url);
download(args.url, fname, function(res) {
if (res !== null) {
let s = { files: [{ file_o: fname, file_n: fname + ".new" }],
status: "TO_COMMIT" };
write_data("updater_data.json", s);
print('File Updated...Will be Applied on Reboot');
if (auto_apply)
Sys.reboot(5);
} else {
print('Failed');
}
});
return {
"result": "Update started !"
};
});
0
200
400
600
800
1000
1200
1400
1600
1800
Full Firmware Lite OTA
Full Firmware
Lite OTA
15. Problems and Opportunities
1. Formulate and Implement Algorithm for preventing DHCP assigned IP clashes
Background : All device's default IP in AP mode is 192.168.4.1 . When a client connects to AP an IP in
range 192.168.4.2 to 192.168.4.100 is assigned to the client
Problem : When two devices connect to each other and both of them have same DHCP range as
well as IP , Reconfiguring AP dynamically or manually writing RPC to restart AP with a DHCP range
and IP such that it doesn’t clash with any other device in the network .
2. Formulating Intercom and resource discovery
How requests can be handled/forwarded and what to do on callbacks?
3. Optimizing Intercom Connections