Professional Documents
Culture Documents
A PROJECT REPORT
Submitted by
ANANTHI.N 411518104011
NANTHINI.K 411518104055
REKHA.T.V 411518104081
SIGNATURE SIGNATURE
This project presents a digital notice board using WiFi module. The idea
behind this project is to provide its users with a simple, fast and reliable
way to put up important notices in an LCD where the user can send a
module. So, notices can be put up in an LCD display from any location
technology for communication and sends the message through the Google
an LCD, and a Google Assistant application for user interface with the
iii
TABLE OF CONTENT
CHAPTER TITLE PAGE
NO
ABSTRACT iii
LIST OF ABBREVIATIONS ix
1 INTRODUCTION 1
2 LITERATURE SURVEY 4
3 SYSTEM ANALYSIS 9
3.1 OVERVIEW 9
3.6 OBJECTIVE 10
REQUIREMENTS
iv
4 SYSTEM DESIGN 12
4.2.1 Nodemcu 20
4.3 SPI 25
5.1 IMPLEMENTATION 31
6.1 CONCLUSION 36
v
6.2 FUTURE ENHANCEMENT 37
APPENDIX 3: ACCEPTANCE OF 45
CONFERENCE PAPER
REFERENCE 47
vi
LIST OF FIGURES
vii
LIST OF TABLE
viii
LIST OF ABBREVIATIONS
ABBREVIATION EXPANSION
Communication
ix
CHAPTER 1
INTRODUCTION
1
a notice and click on the send button to get it displayed. The
functionality can be used only if wiFi module is connected to hot spot of
the host. The hardware consists of a Nodemcu that communicates to the
application through a WiFi module to receive messages. N o d e m c u
itself retrieves message and sends signal to switch on/off a device or
display a notice.
2
to give you conversational interactions. Google Assistant will: Control your
devices and your smart home.
The idea behind this project is to provide its users with a simple,
fast and reliable way to put up important notices in an LCD where the
user can send a message to be displayed in the LCD. The message can
be sent through a Google Assistant application in this project
3
CHAPTER 2
LITERATURE SURVEY
4
sent through a Nodemcu controller by using GSM technology. The
entries can be documented and a record may be maintained for future
use by using visual basic. The controller has internal a real time clock
used for synchronization of data. A resistive touch screen is used to
access the previous notices and also progress details. The monitoring
system consists of an image sensor which captures the images for the
specified amount of time and the images can be transferred through an
USB port to a PC for storage purposes.
5
Communication has given rise to many interesting applications. One of
such applications is public addressing sys- tem (PAS). Many
companies are manufacturing audio / video systems like public
announcement system, CCTV, programmable sign boards etc. But all
these systems are generally hardwired, complex in nature and difficult
to expand. So, by adding wireless communication interface such as
GSM to these systems, we can overcome their limitations. Now a days
LED Message Scrolling Displays are becoming very popular .These
displays are used in shopping malls, theaters, public transportation,
traffic signs, highways signs, etc. This paper describes the GSM based
LED display [4].
6
LED displays remotely using GSM (that is by using SIMs SMSs via
mobile phones) and updating message instantly on display board unlike
a desk bound device such as PC or laptop. The user can update it even
from a remote distant with simple user interaction.
7
printed and voice of the SMS are got as the output[9]. Sms from the user's
mobile will be send to GSM interfaced with level shifter for establishing
RS232 communication protocol to the microcontroller. The sms received
by the GSM is sent to the microcontroller[10].
Summary
8
CHAPTER 3
SYSTEM ANALYSIS
3.1 Overview
9
cloud. Then, the cloud is activated to perform forward action by which
cloud direct the information to the Esp8266 module and also can be
accessed by power supply for the convenience of the faculty. In this project
the main module is WI-FI esp2866 is implemented for controlling and
manipulating the data.
3.5 Objective
Hardware
10
1) LCD
2) ESP8266
3) Phone
4) Powersupply
Software
1) Googe Assistant
2) Arduino IDE
3) Embedded C
Summary
The main aim of this chapter is to find out whether the system is
feasible enough or not. For these reasons different kinds of analysis, such as
performance analysis, technical analysis, economical analysis etc is
performed.
11
CHAPTER 4
SYSTEM DESIGN
4.1Architectural Design
From the above figure 6.2 we can observe that the dot matrix is
connected to NodeMCU10 by 3 wired SPI protocol connection. The
NodeMCU10 has one wifi module inbuilt in it. The NodeMCU10 has
12pins.Here in this we are using only 3 pins rest of the pins we are
leaving free. The user connect the device and Google Assistant
application with the same hot spot. The user then open the app and
press the ip address of the hot spot then after establishment of the
connection between device and Google Assistant application, User will
type the content to be displayed in the text box provided for text in the
Google Assistant application and then user will press enter then the
message will be transferred from application to device through wifi and it
will be displayed in dot matrix display.
12
Figure 4.1: System Architecture
13
4.1.1 Class Diagram
UML class diagram shows the static structure of the model. The
class diagram is a collection of static modeling elements, such as
classes and their relationships, connected as a graph to each other and
to their contents.
14
Figure 4.2: Class Diagram
15
The class matrix display is used for fetching the user input from the user
and displaying it on display. Whereas server class is used for storing the
local host user name and password .It was also used for connecting of the
device to local host.
16
Figure 4.3: Use Case Diagram
Actors
1.app
2.Lcd
Use Cases
1.Connect to network
2.Display IP
3.Enter text
4.Receive text
5.Display text
17
4.1.3 Activity Diagram
In the activity diagram first we will update the ssid and password of
the wifi , then we will check whether connection is established or not. If
established we will then enter the ip address which is displayed on the lcd
into the app and then we will type the text which has to be displayed on
18
the lcd. If connection is not established then we will go back to check
whether ssid and password are correct or not.
Basic elements:
→ Vertical rectangle: represent the object is active (method is
being performed).
→ Vertical dashed line: represent the life of the object.
→ X: represent the life end of an object. (Being destroyed from
memory).
→Horizontal line with arrows: messages from one object to
another.
19
Figure 4.5: Sequence Diagram
In this sequence diagram there are 3 objects named as app, Mcu and Lcd
matrix respectively. Here the user has to enter the ip address displayed on lcd
in app to get connected to it. After establishing connection the user can
type any text whatever he wants to display on the lcd screen in the app
and then he press enter. This data is transmitted to the Mcu through Wifi
then it is transferred to the lcd display via SPI protocol.Now Lcd display
will fetch the content and it will display on the Lcd matrix.If the user want to
stop the text then user press plain text and enter ,automat- ically the
displayed will be stopped.
4.2.1 NodeMCU
20
which runs on the ESP8266 Wi-Fi SoC from Espressif Systems, and
hardware which is based on the ESP-12 module. The term
”NodeMCU” by default refers to the firmware rather than the
development kits. The firmware uses the Lua scripting language. It is
based on the eLua project, and built on the Espressif Non-OS SDK for
ESP8266. Since NodeMCU is open source platform, their hardware
design is open for edit/- modify/build. NodeMCU Dev Kit/board
consist of ESP8266 wifi enabled chip. The ESP8266 is a low-cost Wi-
Fi chip developed by Espressif Systems with TCP/IP protocol. F
There is Version2 (V2) available for NodeMCU Dev Kit i.e.
NodeMCU Development Board v1.0 (Version2), which usually comes
in black colored PCB.
21
→ Inter-Integrated Circuit (IC) serial communication protocol.
→ analog-to-digital conversion (10-bit ADC).
→ Serial Peripheral Interface (SPI) serial communication
protocol.
→ IS (Inter-IC Sound) interfaces with DMA(Direct Memory
Access) (sharing pins with GPIO).
→ UART (on dedicated pins, plus a transmit-only UART can be
enabled on GPIO2).
→ pulse-width modulation (PWM).
22
ESP8266 module is low cost standalone wireless transceiver that
can be used for end-point IoT developments. To communicate with the
ESP8266 module, micro- controller needs to use set of AT commands.
Microcontroller communicates with ESP8266-01 module using UART
having specified Baud rate. There are many third- party manufacturers
that produce different modules based on this chip. So, the module comes
with different pin availability options like
→ ESP-01 comes with 8 pins (2 GPIO pins) PCB trace
antenna.
→ ESP-02 comes with 8 pins, (3 GPIO pins) U-FL antenna
connector.
→ ESP-03 comes with 14 pins, (7 GPIO pins) Ceramic antenna.
→ ESP-04 comes with 14 pins, (7 GPIO pins) No ant
23
Electronic voltage regulators are found in devices such as computer
power supplies where they stabilize the DC voltages used by the
processor and other elements. In automobile alternators and central power
station generator plants, voltage regulators control the output of the plant.
In an electric power distribution system, voltage regulators may be
installed at a substation or along distribution lines so that all customers
receive steady voltage independent of how much power is drawn from
the line.
24
Software (IDE) are called sketches. These sketches are written in the
text editor and are saved with the file extension. The editor has features
for cutting/pasting and for searching/replacing text. The message area
gives feedback while saving and exporting and also displays errors. The
console displays text output by the Arduino Software (IDE), including
complete error messages and other information.
4.3 SPI
→ Other microprocessors.
25
signifying the channel is active. The CLK line is a clock generated by the
master. The DOUT is a data line driven by the master and received by
the slave. The DIN is a data line driven by the slave and received by the
master. In order to work properly, the transmitting device uses one edge of
the clock to change its output, and the receiving device uses the other
edge to accept the data. In general, the SSI interface allows data to
flow both directions.
26
4.5 Arduino IDE
The NodeMcu is the wifi module required for uploading the APP
data to the Smatrix display. NodeMCU is an open source IoT platform.
It includes firmware which runs on the ESP8266 Wi-Fi SoC from
Express if Systems and hardware which is based on the ESP-12 module.
The term ”NodeMCU” by default refers to the firmware rather than the
dev kits. The firmware uses the Lua scripting language. It is based on
the eLua project, and built on the Express if Non-OS SDK for
ESP8266. It uses many open source projects, such as lua-cjson and
spiffs.
27
development boards, including NodeMCUs. The nodemcu will provide
power to the matrix display. The matrix display will upload its reading
in the wireless module, the wireless module will upload the data to the
app.
28
code, and tutorials.
4.8.1 data pin D5 from arduino is connected to the display pin Din.
4.8.3 data pin D7 from arduino is connected to the display pin CLK.
29
Using data output pin in display we can connect to another display
in serial fashion as Shown in above figure. It has inbuilt Wifi module, it is
used for communication purpose. Separate power module is used to power
the arduino and display, because arduino has 5v has output it is used to
power only one display module and input is given to this from Google
Assistant app.
Summary
This chapter mainly concentrates on few fundamental design concepts
such as system development methodology, system architecture, class diagram,
flowchart, sequence diagram, use-case diagram, activity diagram, dataflow
diagram etc..
30
CHAPTER 5
5.1 Implementation
The ESP8266 is a low-cost Wi-Fi microchip, with built-in TCP/IP
networking software, and microcontroller capability, produced by Espressif
Systems in Shanghai, China. The chip was popularized in the English-
speaking maker community in August 2014 via the ESP-01 module, made
by a third-party manufacturer Ai-Arduino is the popular open-source
electronics prototyping platform based on easy-to-use hardware and
software.
Adafruit.io is a cloud service - that just means we run it for you and
you don't have to manage it. You can connect to it over the Internet. It's
meant primarily for storing and then retrieving data but it can do a lot more
than just that. MQTT (MQ Telemetry Transport) is a lightweight open
messaging protocol that provides resource-constrained network clients with
a simple way to distribute telemetry information in low-bandwidth
environments.
The Liquid Crystal library allows you to control LCD displays that are
compatible with the Hitachi HD44780 driver. There are many of them out
there, and you can usually tell them by the 16-pin interface. A register
select (RS) pin that controls where in the LCD's memory you're writing
data to. You can select either the data register, which holds what goes on
the screen, or an instruction register, which is where the LCD's controller
looks for instructions on what to do next. A Read/Write (R/W) pin that
selects reading mode or writing mode
31
An Enable pin that enables writing to the registers 8 data pins (D0 -
D7). The states of these pins (high or low) are the bits that you're writing to
a register when you write, or the values you're reading when you read.
Creates a client that can connect to to a specified internet IP address and
port as defined in client.
In this scenario, the Arduino board uses MQTT to transfer data to the
remote IoT cloud platform. Data comes from sensors for example.
Therefore, the Arduino board is the client while the IoT cloud platform is
the broker. As we know already, an MQTT broker can handle several
MQTT clients. void loop( ){ }
The Liquid Crystal Library allows you to control LCD displays that
are compatible with the Hitachi HD44780 driver. There are many of them
out there, and you can usually tell them by the 16-pin interface. This
example sketch shows how to use the setCursor() method to reposition the
cursor.
32
ESP8266 is also able to operate as both a station and a soft access point
mode. This provides the possibility of building e.g. mesh networks.
33
5.2 Test Cases
1. Left to Right
2. Right to left
34
The following test cases were generated for case 2.
Summary
The chapter discusses the tests that are done on the system to check its
functionality. Testing is carried out at three different levels from the
module level to the system level checking for errors at each stage. The
remarks have also been documented.
35
CHAPTER 6
ENHANCEMENT
6.1 Conclusion
36
validate it, store it and display it on 8X8 LED panel. It reduces the
overall development6. cost and also minimizes the complexity.
Therefore, smart electronic notice board system becomes smarter, efficient,
robust and portable.
The display unit can range from LED scrolling displays to LCD
monitors. The LED scrolling displays can be set up at public transport
places such as bus stations, railway stations and airports. They can also
be used in offices and similar organi- zations for sending notices. The
LCD monitors can be setup on school and college campuses for sending
out notices. Also, as an extension to the current message dis- playing
template, multiple messages can be displayed at a time, by dividing the
screen to the required number of parts.
37
APPENDIX - 1
SAMPLE CODE
/* Necessary Libraries */
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
#include <LiquidCrystal.h>LiquidCrystal lcd(D1,D2,D3,D4,D5,D6);
/*Variables */
char* str;
String payload;
uint32_t present;
bool first_time;
String myString;
ESP8266WiFiMulti WiFiMulti;
/*Adafruit.io Setup */
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 // use 8883 for SSL
#define AIO_USERNAME"Ananthi2002"
#define AIO_KEY"aio_XuwC94zqB4uwMweGDuBcgOEJTuNQ"
//aio_iLiY95M4qh5bIREAdw9Ov3Rh5Re n
38
/*Global State (you don't need to change this!) */
// Create an ESP8266 WiFiClient class to connect to the MQTT server.
WiFiClient client;
// or... use WiFiFlientSecure for SSL
//WiFiClientSecure client;
// Setup the MQTT client class by passing in the WiFi client and MQTT
server and login details.
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER,
AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
/*Feeds */
// Setup a feed called 'onoff' for subscribing to changes.
Adafruit_MQTT_Subscribe message = Adafruit_MQTT_Subscribe(&mqtt,
AIO_USERNAME "/feeds/message");
/*Sketch Code */
void MQTT_connect();
void setup()
{
lcd.begin(20, 4); // The begin call takes the width and height. This
lcd.setCursor(3, 0); // Move the cursor at origin
lcd.print("IOT BASED,"); lcd.setCursor(0, 1);
lcd.print("WIRELESS NOTICEBOARD");
lcd.setCursor(0, 2);
lcd.print("with LCD 20X4."); lcd.setCursor(5, 3);
lcd.print("GOOD LUCK!"); newMessage[0] = '\0';
Serial.begin(57600);
39
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("iotdata", "12345678");
WiFiMulti.addAP("SSID2", "PASS2");
WiFiMulti.addAP("SSID3", "PASS3");
Serial.println("Connecting");
newMessageAvailable = 1;
present = millis();
first_time = 1;
// Setup MQTT subscription for onoff feed. mqtt.subscribe(&message);
str = " Ask Google assistant to change the msg!!! ";
}
void loop()
{
while (WiFiMulti.run() != WL_CONNECTED) {
Serial.println("WiFi not connected!");
delay(1000);
}
MQTT_connect();
Adafruit_MQTT_Subscribe *subscription;
while ((subscription = mqtt.readSubscription(1))) {
if (subscription ==&message) {
payload = "";
Serial.print(F("Got: "));
40
Serial.println((char *)message.lastread);
str = (char*)message.lastread;
myString = str;
String mod = myString.substring(0, 20);//string to integer
String engine = myString.substring(20, 40);
String driver = myString.substring(40, 60);
String health = myString.substring(60, 80);
lcd.clear();
lcd.setCursor(0, 0); // Move the cursor at origin lcd.print(mod);
lcd.setCursor(0, 1);
lcd.print(engine);
lcd.setCursor(0, 2);
lcd.print(driver);
lcd.setCursor(0, 3);
lcd.print(health);
payload = (String) str;
payload += " "; str = &payload[0];
newMessageAvailable = 1;
}
}
}
void MQTT_connect() {
int8_t ret;// Stop if already connected.
if (mqtt.connected()) {
41
return;
}
42
APPENDIX 2 – OUTPUT SCREENSHOT
43
A2.3 Hardware Prototype
44
APPENDIX 3: ACCEPTANCE OF CONFERENCE PAPER
45
46
REFERENCES
47