Professional Documents
Culture Documents
PROJECT REPORT
ON
SUBMITED TO
BY
AKSHATA GONE
PROF.K.A. LOKANDE
PROJECT REPORT
ON
BY
MSBTE
Year 2023-2024
LOHEGAON, PUNE-411047
(2023-2024)
Submitted by
COMPUTER ENGINEERING
MSBTE
Prof.K.A.LOKANDE
It gives us great pleasure to present this report on Wifi talking robot towards partial fulfillment of
Diploma in Computer Engineering course of Maharashtra State Board of Technical Education (MSBTE).
I take this opportunity to convey my deepest gratitude to my guide Mrs.K.A.Lokande who guided me at
every juncture of need.
My special thanks to Head OF Computer Engineering Department and Principal of K.E.S. Polytechnic for
their cooperation and support.
I am also thankful to all faculties of Computer Engineering Department for their help.
The WiFi Talking Robot Capstone Project aims to develop an innovative robotic system capable of natural
language interaction and communication over a WiFi network. The project integrates advancements in robotics,
artificial intelligence, and wireless communication technologies to create a versatile and user-friendly robotic
platform.
2 Literature survey:
2.1 Problem identification and specification 10-11
5 Modules 16
6 Advantages and Disadvantages 17
7 Application area 18
8 System design : 19
8.1 System architecture
9 Testing: 20-43
9.1 Types of testing
9.2 System Implementation
10 Result 43-46
11 Project scope 47
12 Future scope 48
13 References 49
13 Conclusion 50
LIST OF FIGURES
W
In an eraI defined by interconnected devices and smart technologies, robotics stands at the forefront of
innovation, promising transformative advancements in various domains. The WiFi Talking Robot Capstone
F
Project emerges as a testament to this technological evolution, merging the realms of robotics, artificial
intelligence (AI), and wireless communication to create a sophisticated yet accessible robotic platform.
I
The essence
T
of this project lies in the convergence of multiple disciplines, each contributing its unique
capabilities to shape the functionality and usability of the WiFi Talking Robot. At its core, this endeavor seeks
to bridgeAthe gap between humans and machines through natural language interaction, enabling seamless
communication and collaboration in diverse environments.
L
The concept
K
of a WiFi Talking Robot embodies the essence of modern robotics, characterized by mobility,
intelligence, and connectivity. By harnessing the power of WiFi networks, the robot transcends physical
I enabling remote control, data exchange, and access to online resources. This connectivity not only
limitations,
enhances the robot's capabilities but also opens doors to a myriad of applications across industries and domains.
N
At a timeGwhen human-machine interfaces are evolving rapidly, the WiFi Talking Robot project underscores the
importance of user-centric design and technological integration. Through intuitive user interfaces, advanced
R
natural language processing algorithms, and robotic mobility, the project aims to create a symbiotic relationship
between humans and robots, where interaction is seamless, engaging, and meaningful.
O
As we delve deeper into the intricacies of the WiFi Talking Robot Capstone Project, we embark on a journey
B
that epitomizes innovation, collaboration, and the relentless pursuit of pushing the boundaries of what robots
O in our interconnected world.
can achieve
T WiFi Talking Robot with Motors project is about creating a basic robot that can talk and move
The Simple
using WiFi and motors. We'll use simple technology to make the robot listen to people, talk back, and move
around. With sensors, it can avoid obstacles and stay safe. You'll control it easily with a phone app or voice
commands. This project is cool because it can teach you robotics, help with tasks at home, and just be fun to
play with. We'll work step by step, putting together the parts, programming it, and testing to make sure it works
smoothly.
BLUETOOTH KIT
NODE MCU
JUMPER WIRES
MOTOR DRIVER
BATTERY
DC MOTOR
I. CAMERA(ESP32-CAM module)
The ESP32-CAM is an intriguing and versatile development board that combines several powerful
features into a compact package. Let’s delve into its components:
ESP32-S Processor:
o The heart of the ESP32-CAM is the ESP32-S System-on-Chip (SoC) from Ai-Thinker.
o This chip boasts an impressive Tensilica Xtensa® LX6 microprocessor with two 32-bit
cores running at a staggering 240 MHz.
o Its capabilities make it suitable for intensive tasks such as video processing, facial recognition,
and even artificial intelligence.
Memory:
o The ESP32-S has 520 kilobytes of internal RAM on the same die as other components.
o Additionally, the ESP32-CAM includes 4 MB of external PSRAM (Pseudo-Static RAM) to
expand memory capacity.
o This ample RAM is especially useful for tasks like audio or graphics processing.
Storage:
o The ESP32-S chip contains 4 MB of on-chip flash memory, providing ample space for
programs and data.
Camera:
o The board includes a microSD card slot, allowing for limitless expansion.
o It’s perfect for use as a data logger or for capturing and storing images.
Antenna Options:
o The ESP32-CAM comes with an on-board PCB trace antenna and a u.FL connector for an
external antenna.
o An Antenna Selection jumper allows you to choose between the two options.
LEDs:
The SIM800L GSM/GPRS module is a compact GSM modem that finds applications in various Internet
of Things (IoT) projects. Let’s delve into its features and functionality:
o The SIM800L module can perform tasks similar to a regular cell phone:
Sending SMS messages: You can use it to send and receive text messages.
Making phone calls: It supports voice calls using an external 8Ω speaker and an electret
microphone.
Internet connectivity via GPRS: It can connect to the Internet using GPRS (General
Packet Radio Service).
FM radio reception: Yes, it can even tune in to FM radio broadcasts!
o The module operates on quad-band GSM/GPRS networks, which means it works globally with
any 2G SIM card.
Hardware Overview:
o The heart of the module is the SIM800L GSM cellular chip from Simcom.
o Data pins (including UART communication) are accessible via 0.1″ pitch headers.
o Operating voltage: 3.4V to 4.4V, making it suitable for direct LiPo battery supply
o External antenna required: The module comes with a helical antenna that can be soldered
directly to the PCB.
o SIM socket on the back accepts any 2G Micro SIM card.
o LED status indicators provide information about network connectivity:
Blink every 1s: Chip running but not connected to the cellular network yet.
Blink every 2s: Active GPRS data connection.
Blink every 3s: Module connected to the cellular network for voice and SMS
communication.
o The SIM800L can be connected to a microcontroller (such as an Arduino) using the serial
UART interface.
o Baud rates range from 1200 bps to 115200 bps, with automatic baud rate detection.
o The module communicates with the Internet via an integrated TCP/IP stack.
Choosing an Antenna:
IV .ARDUINO NANO
The Arduino Nano is a compact and versatile microcontroller board based on the ATmega328P
microcontroller chip. It is part of the Arduino family of boards known for their ease of use and wide range
of applications in electronics and programming projects. The Nano is designed for small-scale projects that
require a low-cost, space-efficient solution with a good balance of performance and features.
1. ATmega328P Microcontroller:
The ATmega328P is an 8-bit microcontroller with a clock speed of 16 MHz, providing enough
processing power for a wide range of projects.
It has 32KB of flash memory, which is where your Arduino sketches (programs) are stored.
2. USB Connectivity:
The Nano has a mini USB port for connecting to a computer. This port is used for programming
the board and powering it.
It uses the CH340G USB-to-serial chip for communication with the computer, enabling easy
uploading of sketches.
The Nano's small size makes it suitable for embedding into projects where space is limited
It has a total of 30 pins, including 14 digital I/O pins, 8 analog input pins, and additional pins for
power and communication.
The pinout is compatible with standard breadboards and shields, making it easy to prototype and
expand functionality.
The Nano can be powered via the USB connection or an external power supply (7-12V DC).
It includes a 5V voltage regulator, ensuring stable power supply to the board and connected
components.
5. Integrated Components:
The board features a built-in LED connected to digital pin 13, often used for basic testing and
debugging.
A reset button allows you to restart the program execution or re-upload sketches.
Arduino Nano is programmed using the Arduino IDE (Integrated Development Environment),
which provides a user-friendly interface for writing, compiling, and uploading sketches.
The IDE supports a simplified version of C/C++ programming language, making it accessible to
beginners while offering advanced features for experienced developers.
7. Applications:
KESP RITP Lohegaon Pune-47 Page 16
The Nano is widely used in robotics projects, home automation, IoT (Internet of Things) devices,
sensor interfacing, data logging, and educational purposes.
Its versatility, affordability, and ease of use make it a popular choice for hobbyists, students, and
professionals alike.
Overall, the Arduino Nano is a powerful yet compact microcontroller board that enables users to bring their
electronic projects to life with ease. Its rich feature set and broad community support make it an excellent
platform for learning and innovation in the field of embedded systems and electronics.
A0 to A6: These are analog input pins for reading analog voltage levels (0 to 5V).
AREF: Analog Reference pin for setting the analog reference voltage.
VIN: Input voltage to the Nano (typically 7-12V when using an external power supply).
3.3V: Output of the 3.3V voltage regulator, used for low-power devices.
RX0, TX0, RX1, TX1: Serial communication pins (RX0 and TX0 are also used for programming and
debugging)
Input/Output Digital Pins D0 - D13 Can be used as input or output pins. 0V (low) and 5V (high)
Pins
PROPOSED SYSTEM
KESP RITP Lohegaon Pune-47 Page 20
The proposed system is to design a portable device which resembles a normal jacket. It consists of WIFI
microcontroller, WIFI/GPS modules, GSM modules,Shock circuit modules and Push buttons. The prototype
includes two independent system controlled using switch. When switch is pressed the device will get activated,
immediately the location of the victim will be tracked with the help of GPS and emergency message along with
latitude and longitude value will be sent to stored contacts every one minute with updated location... When
second switch is pressed coordinates which can be used to find exact location using GOOGLE MAPS. The
circuit consists of two switches which functions differently to give different output and activate the circuit. The
circuits include GPS, GSM, Shock circuit . The GPS module is connected to the RX pin of the microcontroller
through its TX pin and sends the location via the GSM module .The GSM module which is connected to the TX
pin of the microcontroller through its RX pin.. When switch one is pressed all these feature i.e. location , LED
modules and the buzzer start working simultaneously, and when switch two is pressed only the location is send
to the emergency contacts.
Result: In this system Push button is pressed GSM and GPS should ON. After pressing second push
button camera must ON and send the streaming to authorized person. GPS module must send live
location to authority
LITERATURE SURVEY
FLOW CHARTS
#include "esp_camera.h"
#include <WiFi.h>
#include "esp_timer.h"
#include "img_converters.h"
#include "Arduino.h"
#include "fb_gfx.h"
#include "soc/soc.h" //disable brownout problems
#include "soc/rtc_cntl_reg.h" //disable brownout problems
#include "esp_http_server.h"
//Replace with your network credentials
const char* ssid = "RIT";
const char* password = "1234567890";
#define PART_BOUNDARY "123456789000000000000987654321"
// This project was tested with the AI Thinker Model, M5STACK PSRAM Model and M5STACK WITHOUT
PSRAM
#define CAMERA_MODEL_AI_THINKER
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WITHOUT_PSRAM
// Not tested with this model
//#define CAMERA_MODEL_WROVER_KIT
#if defined(CAMERA_MODEL_WROVER_KIT)
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
Kasegaon Education Society’s
Rajarambapu Institute of Technology (Polytechnic)
Lohegaon, Pune
(Approved by AICTE New Delhi, DTE Govt. of Maharashtra & Affiliated to MSBTE)
#define Y5_GPIO_NUM 21
#define Y4_GPIO_NUM 19
#define Y3_GPIO_NUM 18
#define Y2_GPIO_NUM 5
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22
#else
#error "Camera model not selected"
#endif
static const char* _STREAM_CONTENT_TYPE = "multipart/x-mixed-replace;boundary="
PART_BOUNDARY;
static const char* _STREAM_BOUNDARY = "\r\n--" PART_BOUNDARY "\r\n";
static const char* _STREAM_PART = "Content-Type: image/jpeg\r\nContent-Length: %u\r\n\r\n";
httpd_handle_t stream_httpd = NULL;
static esp_err_t stream_handler(httpd_req_t *req){
fb = NULL;
_jpg_buf = NULL;
} else if(_jpg_buf){
free(_jpg_buf);
_jpg_buf = NULL;
}
if(res != ESP_OK){
Kasegaon Education Society’s
Rajarambapu Institute of Technology (Polytechnic)
Lohegaon, Pune
(Approved by AICTE New Delhi, DTE Govt. of Maharashtra & Affiliated to MSBTE)
}
//Serial.printf("MJPG: %uB\n",(uint32_t)(_jpg_buf_len));
}
return res;
}
void startCameraServer(){
httpd_config_t config = HTTPD_DEFAULT_CONFIG();
config.server_port = 80;
httpd_uri_t index_uri = {
.uri = "/",
.method = HTTP_GET,
.handler = stream_handler,
.user_ctx = NULL
};
//Serial.printf("Starting web server on port: '%d'\n", config.server_port);
if (httpd_start(&stream_httpd, &config) == ESP_OK) {
httpd_register_uri_handler(stream_httpd, &index_uri);
}}
void setup() {
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
Serial.begin(115200);
Serial.setDebugOutput(false);
camera_config_t config;
Kasegaon Education Society’s
Rajarambapu Institute of Technology (Polytechnic)
Lohegaon, Pune
(Approved by AICTE New Delhi, DTE Govt. of Maharashtra & Affiliated to MSBTE)
#include<SoftwareSerial.h>
SoftwareSerial GSM(2,3);
void setup()
Serial.begin(9600);
GSM.begin(9600);
pinMode(A0,INPUT_PULLUP);
}void loop()
int a=digitalRead(A0);
if(a==0)
Serial.println("Sending SMS");
GSM.println();
GSM.println();
GSM.print("\"+919890390840\"");
delay(1000);
delay(1000);
GSM.println();
delay(3000);
GSM.println();
GSM.println();
GSM.print("\"+919370641004\"");
GSM.println();
delay(1000);
delay(1000);
GSM.println();
GSM.write(26);
delay(3000);
GSM.println();
GSM.println();
GSM.print("\"+917068877575\"");
GSM.println();
delay(1000);
GSM.print("My life is in danger heres my coordinates: 18.6130478, 73.9424217"); // SMS body - Sms
Text//18.675230863196386, 73.8923327094054//
delay(1000);
GSM.println();
GSM.write(26);
delay(3000);
GSM.println();
GSM.println();
GSM.println();
delay(1000);
delay(1000);
GSM.println();
GSM.write(26);
Serial.println("SMS Sent");
FIG.
FIG.ASSEMBLED MODULES
Literature survey:
Digital watermarking
The information to be embedded in a signal is called a digital watermark, Digital watermarking is the method of
embedding data into digital multimedia content. This is used to verify the credibility of the content or to
recognize the identity of the digital content's owner.
There are two types of digital watermarking: Visible Digital Watermarking, Invisible Digital Watermarking.
It is the act of hiding a message related to a digital signal within the signal itself. It is a concept closely related
to steganography, in that they both hide a message inside a digital signal.
Network steganography
Network steganography is an ever-growing research topic as the idea of hiding information attracts many
researchers. It is a rapidly evolving topic with suggestions and proposals how one can exploit
a network protocol to enable a secret communication, and how it can be detected and prevented. It discusses
techniques that encode hidden information in the timing of protocol messages, also referred to as timing covert
channels. Timing channels are always noisy because of the timing inaccuracies at the covert sender and
receiver. The intentional retransmissions caused by RSTEG should be kept at a reasonable level to avoid
detection.
Printed steganography
Steganography methods are proposed for the authentication of the holder's photo in an ICAO-consistent (travel)
document. The embedded message is heavily influenced by the print-scan process, as the electronic image is
first printed to be included into the document (or identity card) and is scanned next to constitute the reference
template in an automatic face verification procedure. Two sufficiently robust steganography methods are
KESP RITP Lohegaon Pune-47 Page 42
designed, modifications of the “Fujitsu method” and the “triangle net” method. Test results demonstrate the
feasibility in biometric verification and high authentication quality of proposed approach.
Text steganography
This technique is considered as most difficult steganography technique. In this data is compression is encodes
one representation into another. So it is difficult to decrypt it. Text steganography is a sub part
of steganography that hides the message behind other cover text file. Moreover, hiding the text behind HTML
coding of web pages makes the detection of steganography impractical as web pages are a fundamental
building blocks of the internet. Steganography can be classified into image, text, audio and video steganography
depending on the cover media used to embed secret data.
We can test our develop project between two computers one as a sender and one as a receiver.
Our project, DIGITAL STEGANOGRAPHY solution for transmitting secret formation without affecting
unintended users. Steganography uses multimedia data as a covering medium (Covering secret information). By
using steganography data (secret information) can hided with in data (multimedia data, here multimedia data is
an image) and it can be sent anywhere to transfer the message easily without giving any suspicion to others.
Digital Steganography Project is a java based software application designed to send secured information
without effecting any users. In this project we will use multimedia as covering medium. Modules are explained
below.In this project there are two modules, namely
“Making stegano Medium” and “Getting secret information from stegano medium”
Steganography is the art of hiding the fact that communication is taking place, by hiding information in other
information. Many different carrier file formats can be used, but digital images are the most popular because of
their frequency on the internet. For hiding secret information in images, there exists a large variety of
steganography techniques some are more complex than others and all of them have respective strong and weak
points.
Different applications may require absolute invisibility of the secret information, while others require a large
secret message to be hidden. This project report intends to give an overview of image steganography, its uses
and techniques. It also attempts to identify the requirements of a good steganography algorithm and briefly
reflects on which steganography techniques are more suitable for which applications.
Steganography is the practice of hiding private or sensitive information within something that appears to be
nothing out to the usual. Steganography is often confused with cryptology because the two are similar in the
way that they both are used to protect important information. The difference between two is that steganography
involves hiding information so it appears that no information is hidden at all.
We can test our develop project between two computers one as a sender and one as a receiver.
Overall description:
KESP RITP Lohegaon Pune-47 Page 44
Language used in project:
In our project advanced java language is used.
History of project:
Stegoanalysis Attacking techniques for steganography were also developed. When compared to
cryptanalysis, stegoanalysis is a more challenging task for the analyst, because ciphertext can
easily be identified by looking at it. Whereas a message hidden in an image cannot be
determined or even look suspicious to the eye of the analyst. There are three attacks possible
which are considered as steganalysis: Visual attack, Structural attack and Statistical attack . The
simplest form of steganalysis is visual attack, in which the analyst’s attack is by observing
subjected file with naked eyes. The first rule of good steganography is to keep the stego-image
unchanged. Despite of that, removing some parts of the images that were not altered and just
focus on the altered parts make the visual attack a successful one. Therefore the main idea of
this attack is to identify which parts of the stego-image are to be considered. The study of image
says that, in an image, the bits with value 1 are almost equal to bits with value That is there are
approximately equal number of 0’s and 1’s in an image. Embedding of some plain data will
disprove this fundamental rule; but if the embedded data is encrypted, then the fundamental rule
will remain the same. Structural attacks mainly focus on the high level properties of a particular
method or algorithm. However, when we remove parts of the image that are not altered as a
result of embedding a message, and instead concentrate on the likely areas of embedding in
isolation, it is usually possible to observe signs of manipulation. The ‘Hide & Seek’
steganographic algorithm can be applied only to images whose size is 320 × 480 pixels, which
is an example of this attack. In this case, an analyst can consider all the images satisfying those
size specifications as a suspicious image to perform his attack.
Objective of project
Using a multilevel approach, the main objective of this project is to provide high level security
to sensitive digital data against steganalysis techniques, while keeping the operational time low.
This objective can be achieved by encrypting and authenticating the image that has user’s
sensitive data and then embedding the resultant document on to a carrier.
O OS :Windows 10
Hardware Specification:
KESP RITP Lohegaon Pune-47 Page 46
O 40 GB hard disk space.
Modules: In our project two modules are used. First module is embedded and second module is decoded.
APPLICATION AREAS
Military applications.
Theoretical mathematical aspects dealing with decoding or finding information.
Additionally.
The technology has many applications for legitimate business.
Personal purposes.
KESP RITP Lohegaon Pune-47 Page 49
network security,
Fighting crime.
terrorism
Other applications of concealing data, of varying levels of complexity and sophistication, exist
and can be readily applied. Organizations increasingly consider steganography as a useful
business tool, and the number of carriers is increasing. For example, database developers use
steganography to place identifiers in database relationships [Agrawal et al., 2003]. In general,
steganography can be used either independently or in combination with other technologies. It is
a powerful approach to prevent unwanted detection of messages, simply by denying third
parties knowledge of the presence or location of protected information.
System Architecture
Architecture Figure 4 represents the architecture that is implemented. The modules of the
stenographic tool are also included in the architecture. The user can either be the sender or the
receiver.
A user is able to do all the operations as shown in figure 4 manually or automatically by using
auto-mode. Both the manual and auto-mode follows the same system flow.
Testing : Testing is a process of executing a program with the aim of finding error. To make our software
perform well it should be error free. If testing is done successfully it will remove all the errors from the
software.
Types of Testing:-
1. Unit Testing
2. Integration Testing
The objective is to take unit tested components and build a program structure that has been dictated by design.
Integration testing is testing in which a group of components are combined to produce output.
3. Regression Testing
Every time new module is added leads to changes in program. This type of testing make sure that whole
component works properly even after adding components to the complete program.
4. Smoke Testing
This test is done to make sure that software under testing is ready or stable for further testing
It is called smoke test as testing initial pass is done to check if it did not catch the fire or smoked in the initial
switch on.
5. Alpha Testing
This is a type of validation testing. It is a type of acceptance testing which is done before the product is released
to customers. It is typically done by QA people.
6. Beta Testing
The beta test is conducted at one or more customer sites by the end-user of the software. This version is released
for the limited number of users for testing in real time environment.
7. System Testing
In this software is tested such that it works fine for different operating system. It is covered under the black box
testing technique. In this we just focus on required input and output without focusing on internal working. IN
this we have security testing, recovery testing, stress testing and performance testing.
8. Stress Testing
In this we give unfavorable conditions to the system and check how they perform in those conditions.
9. Performance Testing
System Implementation:
Algorithms:
Encryption Process
• While sending the message secrete image is provided in the encrypted form.
• Output: Stego_Image;
Decryption Process
• Input: Stego_Image;
• Decode ;
• Output Secret_Message;
• End
Flowcharts:
Start
end
ENCRYPTION
Start
Secret_Message
DECRYPTION
Source code
KESP RITP Lohegaon Pune-47 Page 58
//EmbedMessage.java
import java.awt.image.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.imageio.*;
public EmbedMessage() {
assembleInterface();
// this.setBounds(GraphicsEnvironment.getLocalGraphicsEnvironment().
// getMaximumWindowBounds());
this.setSize(500, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
sp.setDividerLocation(0.5);
this.validate();
p.add(open);
p.add(embed);
p.add(save);
p.add(reset);
this.getContentPane().add(p, BorderLayout.SOUTH);
open.addActionListener(this);
embed.addActionListener(this);
save.addActionListener(this);
reset.addActionListener(this);
open.setMnemonic('O');
embed.setMnemonic('E');
save.setMnemonic('S');
reset.setMnemonic('R');
p.add(new JScrollPane(message));
message.setFont(new Font("Arial",Font.BOLD,20));
p.setBorder(BorderFactory.createTitledBorder("Message to be embedded"));
this.getContentPane().add(p, BorderLayout.NORTH);
sp.setRightComponent(embeddedPane);
originalPane.setBorder(BorderFactory.createTitledBorder("Original Image"));
embeddedPane.setBorder(BorderFactory.createTitledBorder("Steganographed Image"));
this.getContentPane().add(sp, BorderLayout.CENTER);
Object o = ae.getSource();
if(o == open)
openImage();
embedMessage();
saveImage();
resetInterface();
if(open)
name.endsWith(".bmp") || name.endsWith(".dib");
if(open)
};
fc.setAcceptAllFileFilterUsed(false);
fc.addChoosableFileFilter(ff);
java.io.File f = null;
f = fc.getSelectedFile();
f = fc.getSelectedFile();
return f;
java.io.File f = showFileDialog(true);
try {
sourceImage = ImageIO.read(f);
originalPane.getViewport().add(l);
embeddedImage = sourceImage.getSubimage(0,0,
sourceImage.getWidth(),sourceImage.getHeight());
embedMessage(embeddedImage, mess);
embeddedPane.getViewport().add(l);
this.validate();
return;
img.setRGB(i, j, rgb);
count++;
img.setRGB(i, j, rgb);
count++;
if(embeddedImage == null) {
return;
java.io.File f = showFileDialog(false);
ext = "png";
f = new java.io.File(f.getAbsolutePath()+".png");
try {
if(f.exists()) f.delete();
message.setText("");
originalPane.getViewport().removeAll();
sourceImage = null;
embeddedImage = null;
sp.setDividerLocation(0.5);
this.validate();
return v==0?0:1;
if(bv == bit)
return n;
n |= toggle;
n ^= toggle;
return n;
new EmbedMessage();
}
KESP RITP Lohegaon Pune-47 Page 66
//DecodeMessage.java
import java.awt.image.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.imageio.*;
assembleInterface();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(GraphicsEnvironment.getLocalGraphicsEnvironment().
getMaximumWindowBounds());
this.setVisible(true);
p.add(open);
p.add(decode);
p.add(reset);
this.getContentPane().add(p, BorderLayout.NORTH);
open.addActionListener(this);
decode.addActionListener(this);
reset.addActionListener(this);
open.setMnemonic('O');
decode.setMnemonic('D');
reset.setMnemonic('R');
p.add(new JScrollPane(message));
message.setFont(new Font("Arial",Font.BOLD,20));
KESP RITP Lohegaon Pune-47 Page 68
p.setBorder(BorderFactory.createTitledBorder("Decoded message"));
message.setEditable(false);
this.getContentPane().add(p, BorderLayout.SOUTH);
imagePane.setBorder(BorderFactory.createTitledBorder("Steganographed Image"));
this.getContentPane().add(imagePane, BorderLayout.CENTER);
Object o = ae.getSource();
if(o == open)
openImage();
decodeMessage();
resetInterface();
};
fc.setAcceptAllFileFilterUsed(false);
fc.addChoosableFileFilter(ff);
java.io.File f = null;
f = fc.getSelectedFile();
f = fc.getSelectedFile();
return f;
java.io.File f = showFileDialog(true);
try {
image = ImageIO.read(f);
imagePane.getViewport().add(l);
this.validate();
message.setText(new String(b));
int length = 0;
count++;
return length;
byte b = 0;
return b;
message.setText("");
imagePane.getViewport().removeAll();
image = null;
this.validate();
return v==0?0:1;
if(bv == bit)
return n;
n |= toggle;
n ^= toggle;
return n;
KESP RITP Lohegaon Pune-47 Page 72
}
new DecodeMessage();
Project Scope
Future scope
As a part of security, the pixels of the cover image are filtered both according to their position
and the threshold limit. Because of this, the space availability of data insertion could become
Reference:
• http://ijcsit.com/docs/Volume%206/vol6issue01/ijcsit20150601152.pdf
• https://searchsecurity.techtarget.com/definition/steganography
• http://programmer2programmer.net/live_projects/project_7/steganography.aspx
Conclusion
The proposed Digital Steganography project provides a GUI, user-friendly software system through which
secret information can be easily transmitted without hackers knowing anything about it. Attaining all Java
features, this system is platform independent and flexible. We have briefly explained and defined
steganography, which is in my opinion an effective tool to do so many things regarding security or reliability in
any field of communication .what we mean that, this technique can be used in any section in real life, military,
businesses, educational, governments and more. Also, we have shown various tools and how they function well.
KESP RITP Lohegaon Pune-47 Page 79
KESP RITP Lohegaon Pune-47 Page 80