RemoteESP Controller Project
Preliminary Report V1
16.09.2020
─
Nauman Shakir
https://NaumanShakir.com
https://3STechLabs.com
1
Overview
This preliminary report aims at defining an architecture for RemoteESP Controller Project.
The goals of this report are mentioned below
Goals
1. Wireless Connectivity.
2. WebPortal
3. High Availability, fail-safe and commercial product.
2
Specifications
The system is divided into 4 different layers which should communicate with each other in
real time.
Layers
● Hardware - Microcontroller
● Processing Layer - Server {Ubuntu Server 18.04(recommended)}
● Transport Layer - MQTT(communication protocol) and REST API
● Network Layer - GPRS
3
Architecture
The complete product has
● Sensor Node
● Web Admin Panel
A complete System is referred to as a Product in this report.
Software Architecture
Multiple Nodes management
The nodes should have unique identifiers which are the MAC address numbers of ESP32
which will be used to uniquely identify each Node.
SensorNodeID;[DataString]
● SensorNodeID is a unique ID of Sensor Node
● [DataString] contains the sensor value(Switch Status)
The communication is done over WiFi mesh and data is shared to the Server(and the
webapp) over MQTT..
Web Server Integration and WebApp
The communication should ideally be done using MQTT because of its smaller data packets
and fast response.
The data will be stored in the database present on the Server. I will use my company’s
server for Broker Configuration and WebApp hosting.
4
What is MQTT?
Take an example of a system in which there are hundreds of people having smart bands
that can display information of a person’s surroundings. And then there are Android, iOS
and Windows devices that can be used to monitor smart bands to get a defined set of
parameters for bands.
So in a scenario where there are mixed types of devices including hardware platforms, the
best communication protocol is MQTT.
It can handle two-way and parallel communication and the number of devices that can be
connected and communicate via MQTT are limitless, the only limit is server resources.
MQTT is also known as pub/sub protocol.
Hence the protocol of choice here is MQTT.
5
Web App
The webapp will be made using AngularJS and the backend will be made on NodeJS.
● Dashboard
○ Graphs and Sensor’s data
● Device Management
○ Device ID, Type, Name Settings
○ Device linkage to a specific User
● User’s Management
○ Users creation, deletion
○ User roles(Basic, Admin)
● Device Statistics
○ Device Types
○ Assigned Users
○ Last update status
6
Management and CI/CD Pipeline
The developers from my team will be working on Hardware, Firmware, Backend, Frontend
and apps simultaneously and for modularity we will dockerize different components of the
app.
For Continuous Integration and Delivery we will be using CapRover running on a bare metal
Ubuntu 18.04 instance and each component of the project’s github repository will be linked
to the respective Containers running in the Caprover. It will allow fully-automated delivery.
We will use our own company’s production server running on AWS for testing and delivery
during the development time. After that we can transfer the files to your own AWS and
details of migration are mentioned in the Terms and Condition section of this report.
My automation engineer will work on this.
From the picture above you can see that all of the services like backend, frontend and
database etc are running in separate containers allowing a smooth delivery pipeline.
7
3STechLabs’ CI/CD Standard Pipeline
Below is our well-tested CI/CD Pipeline for project management and delivery. This has been
proven to work for our 10+ Full-Stack IoT Projects and Products.
(For a detailed look, please open the image file of above diagram)
8
9
Questions and Their Answers
1. How much of the web and server integration would you do? We can develop a
simple platform but need to understand what would be in your scope
● We can do almost everything related to integrations whether it is something running
on cloud or on a local computer.
● As far as webapp is concerned, I do have a web developer who will make a simple
webapp with a very basic set of features which are listed in the WebApp section of
this report. We can always add more features but the scope of this project will be to
complete a basic version of webapp.
2. Could you develop a prototype for us?
● Do you want me to send you the completed prototype to your address? If yes,
unfortunately I can’t do this at this moment and neither can I commit anything like
that because of the current Covid-19 situation the flights are delayed eventually
delaying the shipments and in some cases even missing the delivery altogether.
● On other hand, I will provide you
○ Complete Code
○ Circuit diagrams
○ A complete report on how to setup and configure things.
● You can use all the delivered files and documentation to assemble. the prototype
yourself.
10
Milestones Breakdown
1. Sensor Node Design - M
ilestone 1 $350
a. {ESP32 Based}
b. Hardware and Firmware + Setup Document
c. Breadboard Based POC
d. Development Time 12 Days
2. Sensor Node Design - M
ilestone 2 $300
a. {Production Ready; Can be used Commercially}
b. Circuit Diagram, PCB and Components Selection for Commercial Product
c. Single Board with all components integrated
d. Can be mass-manufactured from JLPCB or from any vendor of your choice
e. Development time 15 Days
3. Server Configuration - Milestone 3 $50
a. {We will use our company’s server for testing}
b. MQTT Broker configuration, NodeRED, CapRover, Network configs
c. Development Time 4 Days
4. WebApp Development - M
ilestone 5 $600
a. {Production Ready}
b. Backend+Frontend
c. WebServer and other related things
d. Development Time 15 Days
5. Casing Design - Milestone 7 $240
a. Casing design of sensor nodes and Gateway which could be 3D Printed
b. Design time 5 Days
Maximum Development time 20-30 Days. Few milestones can be started in parallel to save
time. We will be following project management techniques and will implement CI/CD for
smooth delivery.
11
Terms and Conditions
● We will not ship anything physically unless otherwise decided, instead, you will be
provided with a setup document with completion of each milestone which will be
easy to follow and will contain all of the necessary information.
● The client will bear the R&D cost(components for single nodes and their shipments
to the company). Companies will try to source as many components as possible
from local sources but in case of some specific sensor/actuator unavailability, the
company will ask the client to ship that components to the company’s address via
amazon.
● Client will bear all of the shipment costs.
● {Production Ready; Can be used Commercially} milestones are the ones that can be
used in a commercial environment.
● Software Deployment
a. Software deployment costs like server costs, server management costs,
deployments and other related things will be managed by the company and
the company's launched AWS servers will be used during all the development
cycle
b. Once the development completes, the server charges for post development
will be paid by the client. Clients can use their own servers or can ask us to
provide managed services which will cost a few dollars a month(which covers
AWS running costs and management costs).
c. The Managed hosting cost breakdown inRemoteESP Controller Project case is
given below[Only applicable in testing for this project]
■ Ubuntu Server 18.04 t3a.medium(2 vCPUs and 4GB RAM) $32.07
■ Elastic IP(a static IP Address for server) $9.35
■ Management Charges $13.47
■ Total per month cost $54.89
d. If you want the server to be transferred to your account, please make a valid
AWS Account and we will transfer all the required services to your account
once the development finishes. The transfer will cost $250 and 5 days of
time. In this case we will not be responsible, in any way, for managing the
services running on your server.
12
● Hardware Development is divided into two parts, the milestones list only covers the
first part and the second parts will be decided as we make progress with the
development. The parts are given below
a. {Only Prototype; Not Production Ready for Commercial UseCase}
milestones(if any) are the ones that can not be used in commercial
environments and are only the prototype(only one unit of all the nodes).
These are for testing purposes and can be used by the client for testing the
functionalities. (Breadboard Based Design)
b. Prototype 2 - PCB Based Design; Production Ready; Mass-Manufacturable.
c. After Prototype 2 the client can use design files to get manufacturing services
himself or can ask the company to deal with the large-scale manufacturing.
d. There are few milestones with overlapping development timelines and will be
catered in that way. The time breakdown given in Milestones Breakdown
time is approximately the maximum time that this project will take.
e. The 3D casing design is something that will be finalized at the end of the
project because it depends upon the final size of the circuit.
f. 3STechLabs will provide all the files necessary for the
mass-productionRemoteESP Controller Project. If you want 3STechLabs to
handle mass-production for you, we will charge for that else we will let you
know the trusted vendors that you can contact and can get things
manufactured on your own.
In this document, the company refers to 3STechLabs.
If you agree to this report please fill-out the form below.
https://naumanshakir3s.typeform.com/to/jZJlJP
13
Profile
Name: Nauman Shakir
Company: 3STechLabs
Designation: Founder and Program Manager
Email Address: [email protected]
Portfolio: https://NaumanShakir.com
I’m a Full-Stack IoT Developer and have done more than 150 hardware
projects and running an IoT and Hardware Design House
https://3STechLabs.com
https://facebook.com/3STechLabs
https://Linkedin.com/company/3STechLabs
Freelancing Profiles
https://www.fiverr.com/naumanshakir
https://www.upwork.com/fl/naumanshakir3s