Sie sind auf Seite 1von 26

Yarmouk University

Hijjawi Faculty for Engineering Technology


Communication Engineering Department

WIRELESS LEDDOT MATRIX DISPLAY

Student Name Student Number


Mohanad Haddad 2013973076
Abdullah Ishtyyat 2013973123
Osama Al-jboor 2013873013
Khaled Oudat 2013973029

Supervisor Dr. Bassam Harb

i
ii
Acknowledgement

First and foremost, we have to thank our research supervisor, Dr. Bassam Harb.

Without his assistance and dedicated involvement in every step throughout the

process, this paper would have never been accomplished. We would like to thank him

very much for his support and understanding during this project.

Most importantly, none of this could have happened without our families, who

offered their encouragement and have been kind and supportive to us. This paper

stands as a testament for their unconditional love and encouragement.

iii
Abstract

This project is a node MCU based standalone system that makes you control led

dot matrix display remotely over the internet using an android application, it helps the

user to display the text desired on the screen without the need to go physically to the

field and check it personally. This can particularly help if the field is far from where

the person is staying or the displayed text needs to be changed frequently.

Either for large areas or small ones, ordinary people or governments who like to

use the led dot matrix display as an advertisement screen saves effort to be fully

committed to the screen , this system is very suitable for all as it's easy to use, and

doesn't require any new skills to learn to benefit the user.

iv
Table of Contents

Acknowledgements …..………………………………...….…………………...
……..ii
Abstract ……………….…………………………….….....………………….………
iii
Table of Contents …………………………....................
……………………………..iv

Chapter1
Chapter1...........................................................................................................................1
...........................................................................................................................1
Introduction.....................................................................................................................
Introduction.....................................................................................................................1 1
1.1 Project Objective ……….......................................................................................1

.2 Project Advantages ………..................................................................................2
1.2 …
.3 Problem Statement ……….................................................................................2
1.3
1.4 Scope of The Work ………....................................................................................3
1.4.1 Hardwar Diagram Overview ………...........................................................3
1.4.2 Software Overview ……….............................................................................4

Chapter2
Chapter2...........................................................................................................................5
...........................................................................................................................5
Hardware Detailing .....................................................................................................5
.....................................................................................................5
2.1 Led Dot Matrix ………............................................................................................5
2.2 ESP8266 NODEMCU ………..................................................................................8
2.2.1 ESP8266 nodeMCU Features ………..........................................................9
2.2.2 ESP8266 nodeMCU pins ………...................................................................9
2.3 Breadboard ………................................................................................................10

Chapter3
Chapter3.........................................................................................................................11
.........................................................................................................................11
Project Design And Coding......................................................................................
Coding......................................................................................11 11
3.1 Project Design ………...........................................................................................11
3.1.1 The Led Dot Matrix Display connection ………...................................11
3.1.2 ESP8266 NodeMCU connection ………..................................................12
3.2 Software And Coding ……….............................................................................12
1 Android application ……….........................................................................12
3.2.1
3.2.2 Arduino Coding ……….......................................................................................13

Chapter4
Chapter4.........................................................................................................................14
.........................................................................................................................14
Conclusions...................................................................................................................
Conclusions...................................................................................................................14 14
4.1 Summary ………....................................................................................................14
4.2 Future Work ………...............................................................................................14

References.........................................................................................................................
References.........................................................................................................................15
15
Appendix...........................................................................................................................16

v
vi
Chapter
Introduction
1
In this chapter, there will be an explanation about the introduction of Wireless

LedDot Matrix Display, which is including the overview, problem statement, and

objective of the project and scope of the work.

1.1 PROJECT OBJECTIVE

In modern business world, advertising plays an important role to establish

contact between the buyer and the seller; it’s the medium through which the customer

comes to know of the existence and the utility of the items available in the market. In

modern times, the business world has become very complex with keen competition.

So businessmen spend huge sum of money on advertisement and this is a highly

profitable investment [1].

Wireless Led Dot Matrix Display is achieved as an advertisement screen to be

more reliable and suitable for the users, and for a better performance we used the

nodeMCU module to make it work easier by using the a mobile application through

the internet at anytime and in any place.

1
1.2 PROJECT ADVANTAGES

There is a reason why we chose the led dot matrix because it’s more effective than the

other advertising screens types as for its [2]:

1) Low price.
2) The quality is average (because the market is super mature, a casual person can

make a piece of it himself).


3) Long life.
4) High brightness.
5) Long distance effect.

1.3 PROBLEM STATEMENT

The purpose of this project is to develop a system model for displaying

an advertising text on the led dot matrix, controlled by an android application

using the internet. So the internet connection is required for the system to be

fully established, and the nodeMCU must be connected to the internet when

changing the text displayed

As for the dot led matrix it’s known to have a few disadvantages:

1) High calorific value.


2) Low resolution.
3) Not suitable for close viewing.
4) Maintenance difficulty.

1.4 SCOPEOF THE WORK

We hope that the realization of this project will actually make everyone

everywhere and at all times be able to send and receive orders at the lowest cost,

reasonable rate and more security with the use of the Internet.

2
1.4.1 HARDWHER DIAGRAM OVERVIEW

Figure 1.1: Block Diagram of the Project

Figure 1.1 shows that text signals are controlled by data transmitted from the

android app through the Internet to an ESP located inside a memory ESP that reads the

incoming data and then calls to the led dot matrix display.

The system consist of 8 Led dot matrix (8x8), ESP8266 NodeMCU, Jumper

wires (Connecting wires), Breadboard, Micro USB Cable, power supply, android

mobile, internet router.

1.4.2 SOFTWARE OVERVIEW

This project requires two softwares:

 ARDUINO 1.8.5

3
The open-source Arduino Software (IDE) makes it easy to write code and upload it

to the board. It runs on Windows, and this software can be used with the ESP8266

nodeMCU board [3].

Figure 1.2: ARDUINO IDE Icon

 ANDROID STUDIO

Android Studio the Official IDE for Android provides the fastest tools for

building apps on every type of Android devices [4].

Figure 1.3: ANDROID STUDIO Icon

4
Chapter
HARDWARE
DETAILING
2
2.1 LED DOT MATRIX

In our search to improve the versatility of our design, we began to look for

more simplistic ideas that would allow us to have more control over the system. Led

dot matrix with strictly LEDs spaced evenly in rows and columns seemed to be the

most organized, uniform way of presenting the lighting. Due to the low variety of such

products on the market, we decided to order four matrices of 64 dots in order to test a

rough design and learn more about the function and characteristics we will be working

with. The model that was purchased can be seen in the figure 2.1 below.

Figure 2.1: 8x8 Led Dot Matrix

LED dot matrix display consists of a matrix of LED’s arranged in a rectangular

configuration, the desired character or graphs can be displayed by switching ON /OFF

a desired configuration of LED’s. Wiring up a matrix is very simple – if you have the

8x8 Led Dot Matrix with the following schematic as shown in figure2.2.

5
Figure 2.2: Interfacing of 8x8 Led Dot Matrix

The MAX7219 is an integrated serial input / output common-cathode display

driver, it’s connected to the bar graph display or 64 separate LED. The MAX7219 can

completely control 64 individual LEDs – including maintaining equal brightness, and

allowing you to adjust the brightness of the LEDs either with hardware or software (or

both). It can refresh the LEDs at around 800 Hz, so no more flickering, uneven LED

displays. The figure2.3 below shows the pin out diagram for the MAX7219 [5].

Figure 2.3: The pinout diagram for the MAX7219


6
The MAX7219 drives eight LEDs at a time, and by rapidly switching banks of

eight your eyes don’t see the changes. Connect the MAX7219 pins labelled SEG DP,

A~F to the row pins respectively, and the MAX7219 pins labelled DIG 0~7 to the

column pins respectively. A total example circuit with the above matrix is as follows

in figure 2.4 [6].

Figure 2.4: the total circuit for the MAX7219 and the

8x8 Led Dot Matrix

The circuit is quite straight forward, except we have a resistor between 5V and

MAX7219 pin 18. The MAX7219 is a constant-current LED driver, and the value of

the resistor is used to set the current flow to the LEDs.

In our project we used kits that contain a MAX7219 and an 8x8 Led Dot

Matrix. These are great for the project and saved us a lot of work and time, and we can

connect multi kits together easily to form a display screen as needed for the project.

The figure2.5 shows the kit.

7
Figure 2.5: MAX7219 and the 8x8 Led Dot Matrix kit

2.2 ESP8266 NODEMCU

ESP8266 NODEMCU is a programmable open-source panel that offers the

ability to connect objects and communicate with each other through the Internet,

which means that they are all smart devices such as television, mobile, watches ,

Glasses, alarms, monitors, and other devices that can be connected to each other over

the internet. This panel contains the 12-ESP2866 chip [7].

ESP8266 offers a complete and self-contained Wi-Fi networking solution,

allowing it to either host the application or to offload all Wi-Fi networking functions

from another application processor, as shown below in figure 2.6.

8
2.2.1 ESP8266 nodeMCU Features

 Wireless 802.11 b / g / n standard

 Support STA / AP / STA + AP three operating modes

 Built-in TCP / IP protocol stack to support multiple TCP Client connections

(5 MAX)

 Power input: 4.5V ~ 9V (10VMAX), USB-powered.

 Current: continuous transmission: ≈70mA (200mA MAX), Standby: <200uA

 Transfer rate: 110-460800bps

 Support Smart Link Smart Networking [8]

2.2.2 ESP8266 nodeMCU pins


 The node MCU pines D0 ~ D8, SD1 ~ SD3: used as GPIO (General-purpose

input/output) they are a generic pin on an integrated circuit or computer board

whose behavior—including whether it is an input or output pin—is controllable

by the user at run time.

 Pines used as a Serial Peripheral Interface (SPI) is an interface bus commonly

used to send data between microcontrollers and small peripherals such as shift

registers, sensors, and SD cards [9].

 Pines for a the ground and 3.3V

9
2.3 BREADBOARD
We used 2 BREADBOARD MINI 400 to attach the nodeMCU in them because the
nodeMCU doesn’t fit in one breadboard so we connected 2 breadboards together, and
the figure2.8 shows the BREADBOARD MINI 400.

Figure 2.8: BREADBOARD MINI 400

10
Chapter
ProjectCoding
Design and
3

3.1 PROJECT DESIGN


3.1.1 The Led Dot Matrix Display connection

The Led Dot Matrix Display is constructed by connecting multi 8x8 Led Dot

Matrix kits every single kit has 10 pines 5 on each side as follow: VCC as the supply

voltage, GND is the ground, DIN is the data in , CS is the load and CLK referred to

the clock. Connect the kits together by wires every pinto it’s similar one to the

neighbored kit and so on as shown in figure3.1 below.

Figure 3.1: 8x8 Led Dot Matrix Display connection

11
The MAX7219 can make it easier to control the leds, for this project we used a

display constructed with 8 matrixes, so we have 64 x 8 leds combined together as one

screen and controlled by the MAX7219 using an Arduino library functions.

3.1.2 ESP8266 NodeMCU connection

The ESP8266 NodeMCU board is similar to the Arduino boards, it connects

directly to the led dot matrix display kit pins by the wires and the table below shows

the required pins to be connected.

Display Pins ESP8266 nodeMCU Pins


VCC 3V
GND GND
DIN D7
CS D4
CLK D5

Table 3.1: NodeMCU Pins connection with the display

3.2 SOFTWARE AND CODING


3.2.1 Android application

The application is built using the android studio, only one screen is needed we

added 2 plain text inputs, one to enter the text desired to be displayed on the screen

and another text to enter the ip address of the nodeMCU of the established connection

with the internet, and a bottom to send the command to the nodeMCU and figure3.2

shows the screen of the application.

12
Figure 3.2: Android application screen

3.2.2 Arduino Coding

This part was the most challenging part in this project, it took the majority of

time and effort to be finished as expected, the ESP8266 nodeMCU board

programming was a lot familiar to the Arduino boards. First, we programmed the led

dot matrix display using the "MaxMatrix.h" library [10] and displayed the text

scrolled, also, used the ROGMEM function to store every single character data, then

established the connection to the internet and requested to Print the local IP address to

access the server that used to send the text from the application.

13
Chapter
Conclusions
4
4.1 Summary

At the end of this project we were able to send commands through The internet

using the nodeMCU to one display screen, This proves that in the future we will be

able to send and receive any type of data using the internet everywhere beside the led

dot matrix, this opportunity makes the internet of things more reliable and sufficient in

our lives.

4.2 FUTURE WORK

In this project we can add more options to the android application, for example

we can add bottoms to control the brightness of the led dot matrix or the speed of the

scrolling text, for areas that require more than one display multi displays can be

connected to one nodeMCU and be controlled by the same android application. And

with more time and resources, this device can be further developed for practical use

more comfortable and reliable.

14
References
[1] https://www.importantindia.com/15675/short-essay-on-advertisement/

[2] http://ask.okorder.com/questions/advantages-and-disadvantages-of-led-dot-matrix-
display-screen_270266.html

[3] https://www.arduino.cc/en/Main/Software

[4] https://developer.android.com/studio/index.html

[5] http://tronixstuff.com/2013/10/11/tutorial-arduino-max7219-led-display-driver-ic/

[6] https://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf

[7] https://lib.chipdip.ru/414/DOC001414363.pdf

[8] https://mikroelectron.com/Product/ESP8266-NodeMcu-V3

[9] https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi

[10] https://github.com/riyas-org/max7219/blob/master/MaxMatrix/MaxMatrix.h

15
Appendix

Project codes
 Arduino code
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include "MaxMatrix.h"

ESP8266WebServer server(80); //Web server object. Will be listening


in port 80 (default for HTTP)
char S[100] ;

#define data 13 // DIN to D7


#define load 2 // CS to D4
#define clock 14 // CLK to D5

PROGMEM const unsigned char CH[] = {


3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, //
space
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A

16
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \
backslash
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, //
hat
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w

17
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~
};

int maxInUse = 8; //how many MAX7219 are connected

MaxMatrix m(data, load, clock, maxInUse); // define Library

byte buffer[10];

void setup() {
m.init(); // module MAX7219
m.setIntensity(5); // LED Intensity 0-15
Serial.begin(115200);
WiFi.begin("Umniah Mobile WiFi", "66823460"); //Connect to the
WiFi network

while (WiFi.status() != WL_CONNECTED) { //Wait for connection


delay(500);
Serial.println("Waiting to connectÖ");
}

Serial.print("IP address: ");


Serial.println(WiFi.localIP()); //Print the local IP to access
the server

server.on("/genericArgs", handleGenericArgs); //Associate the


handler function to the path
server.on("/specificArgs", handleSpecificArg); //Associate the
handler function to the path

server.begin(); //Start the server


Serial.println("Server listening");

void loop() {

byte c;
delay(100);
m.shiftLeft(false, true);
printStringWithShift(S, 100); // Send scrolling Text

server.handleClient(); //Handling of incoming requests

18
void handleGenericArgs() { //Handler

String message = "Number of args received:";


message += server.args(); //Get number of parameters
message += "\n"; //Add a new line

for (int i = 0; i < server.args(); i++) {

message += "Arg n?" + (String)i + " ñ> "; //Include the


current iteration value
message += server.argName(i) + ": "; //Get the name of the
parameter
message += server.arg(i) + "\n"; //Get the value of the
parameter
}

server.send(200, "text/plain", message); //Response to the


HTTP request

void handleSpecificArg() {

String message = "";

if (server.arg("Text") == "") { //Parameter not found

message = "Text Argument not found";


}
else { //Parameter found

message = server.arg("Text"); //Gets the value of the query


parameter
strcpy(S, message.c_str());

Serial.println(S);

byte c;
delay(100);
m.shiftLeft(false, true);
printStringWithShift(S, 100); // Send scrolling Text

server.send(200, "text/plain", message); //Returns the


HTTP response

// Put extracted character on Display


void printCharWithShift(char c, int shift_speed) {
if (c < 32) return;
c -= 32;
memcpy_P(buffer, CH + 7 * c, 7);
m.writeSprite(maxInUse * 8, 0, buffer);

19
m.setColumn(maxInUse * 8 + buffer[0], 0);

for (int i = 0; i < buffer[0] + 1; i++)


{
delay(shift_speed);
m.shiftLeft(false, false);
}
}

// Extract characters from Scrolling text


void printStringWithShift(char* s, int shift_speed) {
while (*s != 0) {
printCharWithShift(*s, shift_speed);
s++;
}
}

20

Das könnte Ihnen auch gefallen