remote ac controlling through embedded web server

91
AC Controlling through embedded web server 1 Index 1 Index.......................................................................1 2 Introduction................................................................2 3 Block Diagram:..............................................................3 4 Description (working Procedure).............................................6 5 Components Involved (hard ware).............................................8 5.1 AVR ATMega128:..........................................................16 5.2 LM35 temperature sensor.................................................20 5.3 RTC (DS1307)............................................................23 5.4 LCD (HD44780U)..........................................................25 5.5 LED.....................................................................29 5.6 Motor Driver(L293D).....................................................30 5.7 ENC28J60 Ethernet interface card........................................32 5.8 Extra...................................................................37 5.8.1 SPI Bus.............................................................37 5.8.2 I2C Bus.............................................................41 5.8.3 Rj45 Network cable..................................................47 6 Components Involved (software).............................................49 6.1 WINAVR(avr-gcc).........................................................49 6.2 AVR STUDIO 4.14.........................................................50 6.3 Micro IP(µIP) TCP/IP Protocol suit......................................51 6.3.1 TCP/IP Communication................................................52 6.3.2 Main Control Loop...................................................53 6.3.3 Architecture Specific Functions.....................................53 6.3.4 Application Program Interface (API).................................54 6.3.5 Protocol Implementations............................................58 6.3.6 Application Layer (HTTP Layer)......................................61 6.4 HTML....................................................................63 7 Future Enhancements........................................................64 8 Diagrams (Browser).........................................................65 8.1 A.1 – index page........................................................65 9 Bibliography...............................................................67 9.1.1 Books and Journals:.................................................67 9.1.2 Reference links:....................................................67 10 Project designers:......................................................68 CDAC-DESD Page 1 of 91 06/06/2022

Upload: api-3800035

Post on 18-Nov-2014

490 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Remote AC controlling through embedded web server

AC Controlling through embedded web server

1 Index1 Index........................................................................................................................................................... 1

2 Introduction................................................................................................................................................. 2

3 Block Diagram:........................................................................................................................................... 3

4 Description (working Procedure)................................................................................................................6

5 Components Involved (hard ware)..............................................................................................................8

5.1 AVR ATMega128:............................................................................................................................... 16

5.2 LM35 temperature sensor...................................................................................................................20

5.3 RTC (DS1307).................................................................................................................................... 23

5.4 LCD (HD44780U)................................................................................................................................ 25

5.5 LED..................................................................................................................................................... 29

5.6 Motor Driver(L293D)........................................................................................................................... 30

5.7 ENC28J60 Ethernet interface card.....................................................................................................32

5.8 Extra................................................................................................................................................... 37

5.8.1 SPI Bus...................................................................................................................................... 37

5.8.2 I2C Bus...................................................................................................................................... 41

5.8.3 Rj45 Network cable.................................................................................................................... 47

6 Components Involved (software)..............................................................................................................49

6.1 WINAVR(avr-gcc)............................................................................................................................... 49

6.2 AVR STUDIO 4.14.............................................................................................................................. 50

6.3 Micro IP(µIP) TCP/IP Protocol suit......................................................................................................51

6.3.1 TCP/IP Communication..............................................................................................................52

6.3.2 Main Control Loop...................................................................................................................... 53

6.3.3 Architecture Specific Functions..................................................................................................53

6.3.4 Application Program Interface (API)...........................................................................................54

6.3.5 Protocol Implementations...........................................................................................................58

6.3.6 Application Layer (HTTP Layer).................................................................................................61

6.4 HTML.................................................................................................................................................. 63

7 Future Enhancements.............................................................................................................................. 64

8 Diagrams (Browser).................................................................................................................................. 65

8.1 A.1 – index page................................................................................................................................. 65

9 Bibliography.............................................................................................................................................. 67

9.1.1 Books and Journals:................................................................................................................... 67

9.1.2 Reference links:.......................................................................................................................... 67

10 Project designers:............................................................................................................................... 68

CDAC-DESD Page 1 of 67 08/04/2023

Page 2: Remote AC controlling through embedded web server

AC Controlling through embedded web server

2 IntroductionPowerful microcontrollers are used as parts of most home and office appliances of today. Integrating

web servers to these intelligent devices will aid in controlling such devices over the Internet and also

creating user interfaces for them in the form of web pages. Assigning multiple functionalities to a

single button help manufacturers economize user interfaces but, this makes them more complicated.

Since the cost of web-based interfaces is considerably low, they can be used to provide the

infrastructure for the design of simple and more user friendly interfaces for household appliances.

Also, a web page based interface is much easier to change, when needed, as compared to a hardware

interface.

This project is to control the Remote AC with an internet enabled device. This controlling system

has various features like start and stop time, upper and lower limit of temperature and holiday

controlling. HTTP protocol is implemented on the top of uip (micro-ip) for Ethernet communication

and AVR microcontroller is used for accessing and processing the data.

CDAC-DESD Page 2 of 67 08/04/2023

Page 3: Remote AC controlling through embedded web server

AC Controlling through embedded web server

3 Block Diagram:

The block diagram shows the all the components involved in the project,

The AVR (uniboard) kit is connected by LM35 temperature sensor.

LED’s for condenser on off representation.

DC motor for AC on off.

Ethernet interface card for interface the AVR kit to internet.

CDAC-DESD Page 3 of 67 08/04/2023

Page 4: Remote AC controlling through embedded web server

AC Controlling through embedded web server

From user point of view, when we enter the site address as www.192.168.72.12/index.html then it will open

the index page. In that we will get the current info regarding current temperature and the temperature lower

and upper limits, those are shown in the figure

CDAC-DESD Page 4 of 67 08/04/2023

Page 5: Remote AC controlling through embedded web server

AC Controlling through embedded web server

The browser is currently showing the current date and time, and the holidy and temp limits , start and

stop times. If you enter the username and password and press login, this will show the page as

Once you fill the form, and submit then it will update the values into the web server. And the holiday will

be added to the holiday table, and the temperature limits will be changed according to new values.

CDAC-DESD Page 5 of 67 08/04/2023

Page 6: Remote AC controlling through embedded web server

AC Controlling through embedded web server

4 Description (working Procedure)Flow chart:

CDAC-DESD Page 6 of 67 08/04/2023

Page 7: Remote AC controlling through embedded web server

AC Controlling through embedded web server

CDAC-DESD Page 7 of 67 08/04/2023

Page 8: Remote AC controlling through embedded web server

AC Controlling through embedded web server

1. When the system is started, all the components like- Uip, RTC, Ports, Holiday list, variables,

etc. are initialized.

2. RTC gives the Current date.

3. Check whether today is Holiday or not.

4. If it is Holiday then, go to step 15.

5. If it’s not a holiday then, the Current time is checked with the help of RTC.

6. After this, Flag is checked.

7. If Flag is Set, user can make changes as per the requirement.

8. If flag is not set then, check Current time.

9. If current time is ON_TIME, then check whether AC is ON or not.

10. If AC is not ON, turn ON the AC.

11. After turning on the AC, sense the Temperature with the help of Temperature Sensor.

12. Now check Temperature Limits.

13. If Current temperature is more than Temperature Upper Limit, then turn ON the Condenser.

14. If Current temperature is less than Temperature Lower Limit, then turn OFF Condenser.

15. Check whether Packet is available or not.

16. If Packet is available then, read the packet.

17. Decode the data received from the packet.

18. Now update the variables like- Add holiday, Temperature Upper limit, Temperature Lower

limit, On time, Off time, etc.

19. After updating the variables, send the Reply.

20. Again go to step 2.

CDAC-DESD Page 8 of 67 08/04/2023

Page 9: Remote AC controlling through embedded web server

AC Controlling through embedded web server

5 Components Involved (hard ware)

The board we are using in this project is the UNIBOARD.

The uNiBoard version 1.1 is an ideal open source development platform for Embedded and

Real Time Systems Programming. It is powered by a RISC machine (ATMega128) that provides a

throughput of 16 MIPS and up to 128KB of internal storage (flash), the board would be suitable for

any sort of embedded application development.

Onboard peripherals like the communication ports (RS232) and the Gtkterm driver

(hyperterminal for Windows) make the board apt for various projects development in an Embedded

(nonOS) as well as OS based environment. RT Kernels with small footprint (uC /OS II, Free RTOS,

nut OS) can be ported on the board to gain hands on experience of Real time application design.

The board is powered by the USB port. The board is also programmable through USB port

thereby making it complete stand alone lab equipment needing nothing apart from a basic PC/laptop

to get started with the development process. The open interface (open LED interface, open ports)

extend the platform’s role for prototyping applications like external device/sensor interfacing. The

controller by itself supports protocols like SPI, I2C (on board I2C based RTC), UART (dual

programmable UART) which can be used for multi board communication.

Additionally, the board also features an onboard motor driver which allows to control up to

two DC motors bidirectional. External supply, if required for the motors can be provided with

appropriate hardware configuration settings.

Kit Contents:

UNiBoard development board – 1 unit

16x2 LCD – 1 unit

Serial cable (DB9) – 1 unit

USB cable – 1 unit

FRC connector cables – 2 units

CDAC-DESD Page 9 of 67 08/04/2023

Page 10: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Board Features:

• ATmega128 controller with external crystal of 16MHZ

• usbasp: ATmega8 based USB programmer for ATmega128 (open source firmware running on

hardware licensed under GNU GPLv2

• I2C communication lines

• SPI communication lines

• 16x2 alphanumeric LCD with contrast adjustment

• RTC with Backup Battery

• Analog Joystick with centre click

• LDR sensor

• Buzzer (beneath the processor board)

• Onboard Motor Driver (L293D)

• LEDs for USB programmer ready indicator, Programming status indicator, and Power ON

indicator

• Test LEDs (open for interface with any PORT)

• Open interface Ports such as PORTF/ADC, PORTC

• JTAG interface(External JTAG hardware required)

• USB Port for programming the Board

• Dual programmable UARTs

• Push Buttons for External Interrupts, Reset

• Configuration Switches for USB Power/External power, External ADC /Joystick and Program

Enable/UART0

• Modular design to permit replacement of processor board

CDAC-DESD Page 10 of 67 08/04/2023

Page 11: Remote AC controlling through embedded web server

AC Controlling through embedded web server

KIT IMAGE:

Description Of Board:The uNiBoard version 1.1 connects to the PC using USB port. As shown in the figure 1.1 on

the board there is a serial port and USB port connectors. The serial port is used for debugging

purpose while USB port is used for power and burning the hex files into ATmega128

microcontroller.

The USB cable (for power/programming purposes) and serial cable can be interfaced with

the PC. The serial cable is optional as we are not using it for programming the hex file into the

Atmega128 chip. For any UART related activities having the serial cable is a must.

CDAC-DESD Page 11 of 67 08/04/2023

Page 12: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Atmega128 controllerThe ATmega128 is a low power 8 bit microcontroller based on the AVR enhanced RISC

architecture. The Atmel ATmega128 is a powerful microcontroller that provides a highly flexible

and cost effective solution to many embedded control applications.

Atmega8 controller with the firmware for programming through USB

USBasp is a USB in circuit programmer for Atmel AVR controllers. It simply consists of an

ATMega8 and a couple of passive components. The programmer uses a firmware (USB driver) to

program Atmega128 microcontroller. It is an open source firmware along with hardware licensed

under GNU GPLv2.

I2C and RTC (DS1307) with Backup Battery:

The DS1307 serial real time clock (RTC) is a low power, full binary coded decimal (BCD)

clock/calendar plus 56 bytes of NV SRAM. Address and data are transferred serially through an

I2C, bidirectional bus. The clock/calendar provides seconds, minutes, hours, day, date, month, and

year information (Compensation Valid up to 2100). No special hardware configuration is required as

it is mounted on our board and internally connected to the processors pins.

CDAC-DESD Page 12 of 67 08/04/2023

Page 13: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Analogy sensors (LDR)The LDR sensor is connected to channel 0(PF0) of the Atmega128 microcontroller.

External powerThe external power connector in the above figure can also be used for connecting rechargeable

batteries and making the board operate on battery power in case of robotic or other such mobile

applications.

Onboard Motor DriverThe Motor driver chip (L293D) is used to drive the motors which can be connected to the PTR

connectors as shown in the above figure. Through software you need to configure as follows:

PB6 and PB5 (Motor1)

PE2 and PE3 (Motor2)

PB4 (Chip Enable)

There are motors which might need higher than 5V (up to 12V) operating voltage. In such cases an

external supply can be given to the board and the USB power switch can be toggled to make the

external supply available instead of a USB powered connection.

Test LEDsTest LED's are pulled up so to glow the LEDs we need to make the particular port pin Low. You can

connect the General Purpose Port to test LED using FRC Cable.

CDAC-DESD Page 13 of 67 08/04/2023

Page 14: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Two UART's UART1 is used to connect PC through the MAX232 voltage converter chip since pc uses RS

232 standard for serial port. UART1 can be used for debugging the code or for any sort of

interaction with Gtkterm.

UART0 is not connected to MAX232 as it is left open for communication between two

Boards.

LCDLCD for uNiBoard is using 4 data lines, 2 control lines and WR of LCD is connected to GND.

Data Lines (PA4, PA5, PA6, PA7)

Control Lines (PA0 for RS, PA2 for LCD EN)

Selection Switches USB Power (Pressed) / External power (Depressed)

Joystick (Pressed) / External ADC (Depressed)

Program Enable (Pressed) / UART0 (Depressed)

CDAC-DESD Page 14 of 67 08/04/2023

Page 15: Remote AC controlling through embedded web server

AC Controlling through embedded web server

General Purpose Ports

PORTC

PORTC is an open interface port which can be used to connect any devices on FRC connector.

PORTF

PORTF can be used to connect external analog or digital sensors or it can also be used as LDR ADC

channels. There are two connectors FRC connector and Berg sensor port connector either of which

can be used to connect the external sensors.

PORTG

PORTG is an open interface port which can be used to connect any devices on berg connector.

PORTC and PORT F

The PORTC and PORTF (ADC) are open ports and can be connected to test LEDs through FRC

cable. These can be accessed using 10 pin the FRC connector.

MOTOR DRIVER SECTION:

PIN DIAGRAM:

CDAC-DESD Page 15 of 67 08/04/2023

Page 16: Remote AC controlling through embedded web server

AC Controlling through embedded web server

PORTSThe LEDS are connected to one of the general purpose port (PORTC) available of the ATmega128.

These LEDs are connected using the FRC cable. The open FRC connectors are given on the

UNiBoard so that their status can be monitored by interfacing them to LEDs using the FRC cable.

LCDThe LCD can be used as an output device and can be placed on the uNiBoard LCD connector. The

hardware connections are as follows:

• LCD control lines Enable (PD2)

• R/~W (Hardwired GND)

• RS (PD0)

• LCD data lines (PD4 – PD7).

Therefore LCD is initialized using 4 line mode.

The given LCD library contains the API’s for printing character, string, values (decimal) on LCD,

changing the LCD positions, clearing the LCD screen.

SPI

CDAC-DESD Page 16 of 67 08/04/2023

Page 17: Remote AC controlling through embedded web server

AC Controlling through embedded web server

There are two programs given for SPI, one for Master and another for Slave. You can communicate

between two UNiBoard by connecting wires on SPI lines and making GND common of both the

boards. The Output is debugged using the serial terminal whatever character typed on master’s serial

terminal is transferred to the slave’s serial terminal using SPI. Make sure you have connected the

SPI lines and the GND points of the master and slave correctly as follows:

I2C (RTC)The DS1307 is the RTC (Real Time Clock) chip interfaced on the I2C lines of the controller. The

API’s can be used for reading the date and time from RTC. Before reading you need to call this API

Update_RTC_variables() which actually updates local variables that data and time API’s returns.

You can also set date and time for RTC using Write_RTC() API and date and time values for

writing to RTC registers are taken from RTC_def_cfg.h.

5.1 AVR ATMega128:The ATmega128 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISCarchitecture. By executing powerful instructions in a single clock cycle, the ATmega128achieves throughputs approaching 1 MIPS per MHz allowing the system designer to optimizepower consumption versus processing speed.

Features:

• Advanced RISC Architecture

• 128K Bytes of In System Self programmable Flash program memory

• 4K Bytes EEPROM

CDAC-DESD Page 17 of 67 08/04/2023

Page 18: Remote AC controlling through embedded web server

AC Controlling through embedded web server

• 4K Bytes Internal SRAM

• JTAG (IEEE std. 1149.1 Compliant) Interface

• Two 8 bit Timer/Counters with Separate pre scaler and Compare Modes

• Two Expanded 16 bit Timer/Counters with Separate pre scaler, Compare Mode and Capture Mode

• Real Time Counter with Separate Oscillator

• Two 8 bit PWM Channels

• 6 PWM Channels with Programmable Resolution from 2 to 16 Bits

• 8 channel, 10 bit ADC

• Byte oriented Two wire Serial Interface

• Dual Programmable Serial USARTs

• Master/Slave SPI Serial Interface

• Programmable Watchdog Timer with On chip Oscillator

• Power on Reset and Programmable Brown out Detection

• External and Internal Interrupt Sources

• Six Sleep Modes: Idle, ADC Noise Reduction, Power save, Power down, Standby, and Extended

Standby

• Software Selectable Clock Frequency (using Fuse bits)

• 53 Programmable I/O Lines

• 4.5V 5.5V for Atmega128 Operating Voltages

• 64 lead TQFP

Block diagram:

CDAC-DESD Page 18 of 67 08/04/2023

Page 19: Remote AC controlling through embedded web server

AC Controlling through embedded web server

ABSOLUTE MAXIMUM RATINGS:Sr. No. Description Ratings1 Operating Temperature -55 to +125 °C2 Storage Temperature -65 to +150 °C3

Voltage on any Pin except with respect to Ground-0.5 to Vcc+0.5 V

4Voltage on with respect to Ground

-0.5 to +13.0 V

5 Maximum Operating Voltage 6.0 V

CDAC-DESD Page 19 of 67 08/04/2023

Page 20: Remote AC controlling through embedded web server

AC Controlling through embedded web server

6 DC Current per I/O Pin 40.0 mA7 DC Current Vcc and GND Pins 200.0 – 400.0 mA

PIN DIAGRAM:

For pin description and more info see the datasheet of ATMega128

5.2 LM35 temperature sensor

An analog temperature sensor is pretty easy to explain, its a chip that tells you what the ambient

temperature is!

CDAC-DESD Page 20 of 67 08/04/2023

Page 21: Remote AC controlling through embedded web server

AC Controlling through embedded web server

These sensors use a solid-state technique to determine the temperature. That is to say, they dont use

mercury (like old thermometers), bimetallic strips (like in some home thermometers or stoves), nor

do they use thermostats (temperature sensitive resistors). Instead, they use the fact as temperature

increases, the voltage across a diode increases at a known rate. (Technically, this is actually the

voltage drop between the base and emitter - the Vibe - of a transistor. By precisely amplifying the

voltage change, it is easy to generate an analog signal that is directly proportional to temperature.

There have been some improvements on the technique but, essentially that is how temperature is

measured.

Because these sensors have no moving parts, they are precise, never wear out, don't need calibration,

work under many environmental conditions, and are consistent between sensors and readings.

Moreover they are very inexpensive and quite easy to use

Pin Layout:

Features:

Calibrated directly in ° Celsius (Centigrade)

Linear + 10.0 mV/°C scale factor

0.5°C accuracy guarantee able (at +25°C)

CDAC-DESD Page 21 of 67 08/04/2023

Page 22: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Rated for full -55° to +150°C range

Suitable for remote applications

Low cost due to wafer-level trimming

Operates from 4 to 30 volts

Less than 60 µA current drain

PARAMETERS VALUES

Temperature Accuracy (+/-) 1, 0.5 deg C

Supply Min 4 Volt

Quiescent Current_ 56 uA

Temperature Min -40, 0, -55 deg C

Temperature Max 100, 110, 150 deg C

Sensor Gain 10 mV/Deg C

Supply Max 30 Volt

Single Supply No

Output Impedance 0.4 Ohm

Quiescent Current 0.056 mA

Automotive Selection Guide Yes

Typical Performance:

CDAC-DESD Page 22 of 67 08/04/2023

Page 23: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Description:

It can be used to measure temperature with accuracy of 0.5 degree centigrade. We can

interface it easily with AVR MCUs and can create thermometers, temperature controller, fire alarms

etc. LM35 by National Semiconductor is a popular and low cost temperature sensor. It is also easily

available.

It has three pins as follows: The Vcc can be from 4V to 20V as specified by the datasheet.

To use the sensor simply connect the Vcc to 5V ,GND to Gnd and the Out to one of the ADC

(analog to digital converter channel). The output linearly varies with temperature. The output is

10MilliVolts per degree centigrade. So if the output is 310 mV then temperature is 31 degree C.

The LM35 series are precision integrated-circuit temperature sensors, whose output voltage

is linearly proportional to the Celsius (Centigrade) temperature. The LM35 thus has an advantage

over linear temperature sensors calibrated in ° Kelvin, as the user is not required to subtract a large

constant voltage from its output to obtain convenient Centigrade scaling. The LM35 does not require

any external calibration or trimming to provide typical accuracies of ±¼°C at room temperature and

±¾°C over a full -55 to +150°C temperature range. Low cost is assured by trimming and calibration

at the wafer level. The LM35's low output impedance, linear output, and precise inherent calibration

make interfacing to readout or control circuitry especially easy.

CDAC-DESD Page 23 of 67 08/04/2023

Page 24: Remote AC controlling through embedded web server

AC Controlling through embedded web server

5.3 RTC (DS1307)The DS1307 serial real-time clock (RTC) is a low-power, full binary-coded decimal (BCD)

clock/calendar plus 56 bytes of NV SRAM. Address and data are transferred serially through an

I2C, bidirectional bus. The clock/calendar provides seconds, minutes, hours, day, date, month, and

year information. The end of the

month date is automatically adjusted for months with fewer than 31 days, including corrections for

leap year. The clock operates in either the 24- hour or 12-hour format with AM/PM indicator.

The DS1307 has a built-in power-sense circuit that detects power failures and automatically

switches to the backup supply. Timekeeping operation continues while the part operates from

the backup supply.

FEATURES Real-Time Clock (RTC) Counts Seconds,Minutes, Hours, Date of the Month, Month, Day of

the week, and Year with Leap-Year

Compensation Valid Up to 2100

56-Byte, Battery-Backed, Nonvolatile (NV) RAM for Data Storage

I2C Serial Interface

Programmable Square-Wave Output Signal

Automatic Power-Fail Detect and Switch Circuitry

Consumes Less than 500nA in Battery-Backup Mode with Oscillator Running

Pin Configurations:

CDAC-DESD Page 24 of 67 08/04/2023

Page 25: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Block Diagram :

Description:The DS1307 is a low-power clock/calendar with 56 bytes of battery-backed SRAM. The

clock/calendar provides seconds, minutes, hours, day, date, month, and year information. The date at

the end of the month is automatically adjusted for months with fewer than 31 days, including

corrections for leap year.

The DS1307 operates as a slave device on the I2C bus. Access is obtained by implementing a

START condition and providing a device identification code followed by a register address.

Subsequent registers can be accessed sequentially until a STOP condition is executed. When VCC

falls below 1.25 x VBAT, the device terminates an access in progress and resets the device address

counter. Inputs to the device will not be recognized at this time to prevent erroneous data from being

written to the device from an out-oftolerance system. When VCC falls below VBAT, the device

switches into a low-current battery-backup mode. Upon power-up, the device switches from battery

to VCC when VCC is greater than VBAT +0.2V and recognizes inputs when VCC is greater than

1.25 x VBAT. The block diagram in Figure 1 shows the main elements of the serial RTC.

CDAC-DESD Page 25 of 67 08/04/2023

Page 26: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Time keeper registers:

5.4 LCD (HD44780U)The HD44780U dot-matrix liquid crystal display controller and driver LSI displays alphanumerics,

Japanese kana characters, and symbols. It can be configured to drive a dot-matrix liquid crystal

display under the control of a 4- or 8-bit microprocessor. Since all the functions such as display

RAM, character generator, and liquid crystal driver, required for driving a dot-matrix liquid crystal

display are internally provided on one chip, a minimal system can be interfaced with this

controller/driver.

A single HD44780U can display up to one 8-character line or two 8-character lines. The HD44780U

has pin function compatibility with the HD44780S which allows the user to easily replace an LCD-

II with an HD44780U. The HD44780U character generator ROM is extended to generate 208 5 8

dot character fonts and 32 5 10 dot character fonts for a total of 240 different character fonts. The

low power supply (2.7V to 5.5V) of the HD44780U is suitable for any portable battery-driven

product.

Features 5 .8 and 5 .10 dot matrix possible Low power operation support:

o 2.7 to 5.5V Wide range of liquid crystal display driver power

o 3.0 to 11V Liquid crystal drive waveform

o A (One line frequency AC waveform) Correspond to high speed MPU bus interface

o 2 MHz (when VCC = 5V) 4-bit or 8-bit MPU interface enabled

CDAC-DESD Page 26 of 67 08/04/2023

Page 27: Remote AC controlling through embedded web server

AC Controlling through embedded web server

80 8-bit display RAM (80 characters max.)

Block Diagram:

CDAC-DESD Page 27 of 67 08/04/2023

Page 28: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Pin Diagram:

Function Description:RegistersThe HD44780U has two 8-bit registers, an instruction register (IR) and a data register (DR). The IR

stores instruction codes, such as display clear and cursor shift, and address information for display

data RAM (DDRAM) and character generator RAM (CGRAM). The IR can only be written from

the MPU.

CDAC-DESD Page 28 of 67 08/04/2023

Page 29: Remote AC controlling through embedded web server

AC Controlling through embedded web server

The DR temporarily stores data to be written into DDRAM or CGRAM and temporarily stores data

to be read from DDRAM or CGRAM. Data written into the DR from the MPU is automatically

written into DDRAM or CGRAM by an internal operation. The DR is also used for data storage

when reading data from DDRAM or CGRAM. When address information is written into the IR, data

is read and then stored into the DR from DDRAM or CGRAM by an internal operation. Data

transfer between the MPU is then completed when the MPU reads the DR. After the read, data in

DDRAM or CGRAM at the next address is sent to the DR for the next read from the MPU. By the

register selector (RS) signal, these two registers can be selected.

Register Selection

RS R/W Operation0 0 IR write as an internal operation (display clear, etc.)

0 1 Read busy flag (DB7) and address counter (DB0 to DB6)

1 0 write as an internal operation (DR to DDRAM or CGRAM)

1 1 DR read as an internal operation (DDRAM or CGRAM to DR)

Liquid Crystal Display Driver CircuitThe liquid crystal display driver circuit consists of 16 common signal drivers and 40 segment signal

drivers. When the character font and number of lines are selected by a program, the required

common signal drivers automatically output drive waveforms, while the other common signal

drivers continue to output non-selection waveforms.

Sending serial data always starts at the display data character pattern corresponding to the last

address of the display data RAM (DDRAM). Since serial data is latched when the display data

character pattern corresponding to the starting address enters the internal shift register, the

HD44780U drives from the head display.

HOW LCD WORKS?

It turns out that liquid crystals are closer to a liquid state than a solid. It takes a fair amount of heat

to change a suitable substance from a solid into a liquid crystal, and it only takes a little more heat to

turn that same liquid crystal into a real liquid. This explains why liquid crystals are very sensitive to

temperature and why they are used to make thermometers and mood rings. It also explains why a

laptop computer display may act funny in cold weather or during a hot day at the beach.

PICTURE:

CDAC-DESD Page 29 of 67 08/04/2023

Page 30: Remote AC controlling through embedded web server

AC Controlling through embedded web server

5.5 LED

A light-emitting diode (LED) is a semiconductor device that emits visible light when an electric

current passes through it. The light is not particularly bright, but in most LEDs it is monochromatic,

occurring at a single wavelength. The output from an LED can range from red (at a wavelength of

approximately 700 nanometers) to blue-violet (about 400 nanometers). Some LEDs emit infrared

(IR) energy (830 nanometers or longer); such a device is known as an infrared-emitting diode

(IRED).

An LED or IRED consists of two elements of processed material called P-type semiconductors and

N-type semiconductors. These two elements are placed in direct contact, forming a region called the

P-N junction. In this respect, the LED or IRED resembles most other diode types, but there are

important differences. The LED or IRED has a transparent package, allowing visible or IR energy to

pass through. Also, the LED or IRED has a large PN-junction area whose shape is tailored to the

application.

Basically, LEDs are just tiny light bulbs that fit easily into an electrical circuit. But unlike ordinary

incandescent bulbs, they don't have a filament that will burn out, and they don't get especially hot.

They are illuminated solely by the movement of electrons in a semiconductor material, and they last

just as long as a standard transistor.

BENEFITS OF LED:

Low power requirement: Most types can be operated with battery power supplies.

CDAC-DESD Page 30 of 67 08/04/2023

Page 31: Remote AC controlling through embedded web server

AC Controlling through embedded web server

High efficiency: Most of the power supplied to an LED or IRED is converted into radiation

in the desired form, with minimal heat production.

Long life: When properly installed, an LED or IRED can function for decades.

TYPICAL APPLICATIONS:

Indicator lights: These can be two-state (i.e., on/off), bar-graph, or alphabetic-numeric

readouts.

LCD panel backlighting: Specialized white LEDs are used in flat-panel computer displays.

Fiber optic data transmission: Ease of modulation allows wide communications bandwidth

with minimal noise, resulting in high speed and accuracy.

Remote control: Most home-entertainment "remotes" use IREDs to transmit data to the

main unit.

optoisolator: Stages in an electronic system can be connected together without unwanted

interaction.

DIAGRAM:

CDAC-DESD Page 31 of 67 08/04/2023

Page 32: Remote AC controlling through embedded web server

AC Controlling through embedded web server

While all diodes release light, most don't do it very effectively. In an ordinary diode, the semiconductor material itself ends up absorbing a lot of the light energy. LEDs are specially constructed to release a large number of photons outward. Additionally, they are housed in a plastic bulb that concentrates the light in a particular direction. As you can see in the diagram, most of the light from the diode bounces off the sides of the bulb, traveling on through the rounded end.

5.6 Motor Driver(L293D)The Device is a monolithic integrated high voltage, high current four channel driver

designed to accept standard DTL or TTL logic levels and drive inductive loads (such as relays solenoides, DCand stepping motors) and switching power transistors.

To simplify use as two bridges each pair of channels is equipped with an enable input. A separate supply input is provided for the logic, allowing operation at a lower voltage and internal clamp diodes are included.

This device is suitable for use in switching applications at frequencies up to 5 kHz. The L293D is assembled in a 16 lead plastic packaage which has 4 center pins connected togetherand used for heatsinking.

The L293D is a quadruple push-pull 4 channel driver capable of delivering 600 mA (1.2 A peak surge) per channel. The L293D is ideal for controlling the forward/reverse/brake motions of small

DC motors controlled by a microcontroller such as a PIC or BASIC Stamp.

CDAC-DESD Page 32 of 67 08/04/2023

Page 33: Remote AC controlling through embedded web server

AC Controlling through embedded web server

The L293D is a high voltage, high current four channel driver designed to accept standard TTL logic levels and drive inductive loads (such as relays solenoids, DC and stepping motors) and switching power transistors. The L293D is suitable for use in switching applications at frequencies up to 5 KHz.

Features: 600 mA Output Current Capability Per Driver Pulsed Current 1.2 A / Driver

Wide Supply Voltage Range: 4.5 V to 36 V

Separate Input-Logic Supply

NE Package Designed for Heat Sinking

Thermal Shutdown & Internal ESD Protection

High-Noise-Immunity Inputs

ABSOLUTE MAXIMUM RATINGS

Symbol Parameter Value UnitVs Supply Voltage 36 VVss Logic Supply 36 VVi Input Voltage 7 VVen Enable Voltage 7 VIo Peak Output Current (100 s non repetitive) 1.2 APtot Total Power Dissipation at Tpins= 90 C 4 WTstg, Ti Storage & Junction Temperature -40 to 150 CPIN DIAGRAM:

APPLICATIONS: DC and stepper motor drives Position and velocity servomechanisms

CDAC-DESD Page 33 of 67 08/04/2023

Page 34: Remote AC controlling through embedded web server

AC Controlling through embedded web server

5.7 ENC28J60 Ethernet interface cardEthernet is a local area technology, which is used for reliable and efficient transfer and access of

information across the devices connected to the network. Once a device is attached to the network, it

will have the ability to communicate with any other attached device. This allows the network to

expand to accommodate new devices without requiring any modification to those devices already on

the network.

Ethernet controller ENC28J60 from Microchip forms the building block for our Ethernet Interface

add-on Board. It’s an SPI based add-on chip which has Ethernet PHY and MAC to equip any

embedded controller with SPI interface with network capability. Through this interface our

controller can communicate with other devices connected on the network including PCs.

Any development board using a controller with SPI (Serial Peripheral Interface) interface can be

interconnected with Ethernet Interface Board.

CDAC-DESD Page 34 of 67 08/04/2023

Page 35: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Description:

Ethernet Interface board contains the Ethernet Controller ENC28J60 with SPI support and Ethernet

Jack – MAG Jack (RJ45).

The Ethernet Interface Board can be connected to the uNiBoard (which will be the heart of that

particular device) and by using SPI pins of the Ethernet controller (ENC28J60) the Ethernet Interface Board

communicates with the uNiBoard. This Ethernet Interface can be used to develop different applications like

embedded web server, Ethernet based Data acquisition system, internet controlled robot etc.

Ethernet Buffer:

It is the memory area inside ENC28J60 and it contains transmit and receive memory used by

the Ethernet controller in a single memory space, means receive and transmit share the same buffer

(memory). The sizes of the memory areas are programmable by the host controller using the SPI

interface. It is of 8-Kbyte transmit/receive packet dual port SRAM. The Ethernet buffer memory can

only be accessed via the read buffer memory and write buffer memory SPI commands.

CDAC-DESD Page 35 of 67 08/04/2023

Page 36: Remote AC controlling through embedded web server

AC Controlling through embedded web server

In ENC28J60 Network Interface(Link) Layer is present, that means Physical layer + MAC

layer (comes inside Link layer), with this we can achieve physical connection and link detection for

application layer protocols like FTP, HTTP etc. TCP/IP stack should be ported to the embedded

device.

Features:

Ethernet Controller – Microchip’s ENC28J60 with SPI interface.

Supports Data Transfer up to 10 Mb/s.

LINK/STATUS LEDs for indication/debugging.

Ethernet Controller Features:

• IEEE 802.3 compatible Ethernet controller.

• Integrated MAC and Receiver and Supports Full and Half-Duplex modes.

• Programmable padding and CRC generation.

• SPI Interface with speeds up to 10 Mb/s.

Buffer:

CDAC-DESD Page 36 of 67 08/04/2023

Page 37: Remote AC controlling through embedded web server

AC Controlling through embedded web server

• 8-Kbyte transmit/receive packet dual port SRAM.

• Configurable transmit/receive buffer size.

• Internal DMA for fast data movement.

• Hardware assisted IP checksum calculation.

Physical Layer (PHY) Features:

• Wave shaping output filter.

• Loopback mode.

Medium Access Controller (MAC) Features:

• Supports Unicast, Multicast and Broadcast packets.

• Loopback mode.

• Programmable receive packet filtering and following:

1. Unicast destination address.2. Multicast address.3. Broadcast address.4. Magic Packet TM.5. Group destination addresses as defined by 64-bit hash table.

Setting up the Connection:

Connect the pins of the Ethernet Interface board with the Development Board (uNiBoard) accordingly.

1. MOSI < - > MOSI2. MISO < - > MISO3. SCK < - > SCK4. CS < - > SS5. WOL < - > NC for current configuration (LAN interrupt o/p pin)6. INT < - > NC for current configuration (Interrupt o/p pin)7. CLK0 < - > NC for current configuration (Programmable clock o/p pin)8. RST < - > PB7 (in case of uNiBoard)9. GND < - > GND10. 3V3 < - > VCC (in case of uNiBoard)

CDAC-DESD Page 37 of 67 08/04/2023

Page 38: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Working Of Ethernet Interface Board:

Reception: Data coming from the network through the cable will be stored in the Ethernet Buffer,

this will be done by the firmware written on the ENC28J60. From the Ethernet Buffer we can read

the data through the SPI pins of the ENC28J60 to the uNiBoard. The following are API's used in the

Source code:

enc28j60PacketReceive() - to receive packets

enc28j60Write() - to write register values

enc28j60SetBank() - to set the address bank

enc28j60WriteOp() - to do the write operation

enc28j60ReadOp() - to read the data from the buffer

PacketReceive function would be called first and in that Write function will take the value and

address to which the write operation to be performed. SetBank will set the address bank and the

WriteOp will actually do the write. These two function calls are done within Write function as can

be seen above. In ReadOp we will provide address of the buffer as argument and it will return with

buffer values, so using this function the actual read is done from the buffer.

Transmission: For sending the data packets through the interface, the data should be written on

Ethernet Buffer which is done by using the SPI. Then that data will be transmitted from the buffer

through the network cable to the network, which is done by the firmware written on the ENC28J60

controller. The following are API's used in the Source code:

enc28j60PacketSend() - to send packets

enc28j60Write() - to write register values

CDAC-DESD Page 38 of 67 08/04/2023

Page 39: Remote AC controlling through embedded web server

AC Controlling through embedded web server

enc28j60SetBank() - to set the address bank

enc28j60WriteOp() - to do the write

enc28j60WriteBuffer() - to write into the buffer

PacketSend function will be called first and in that Write function will take the value and address to

which the write operation to be performed. SetBank will set the address bank and the WriteOp will

actually do the write. These two function calls are invoked in Write function. WriteBuffer will write

the data to be sent into the buffer.

Ethernet Interface Board interfaced with uNiBoard:

5.8 ExtraThings which needed other than the above components are

5.8.1 SPI Bus

SPI is a serial bus standard established by Motorola and supported in silicon products from various manufacturers. SPI interfaces are available on popular communication processors such as the MPC8260 and microcontrollers such as the M68HC11. It is a synchronous serial data link that operates in full duplex (signals carrying data go in both directions simultaneously).

DESCRIPTION:

SPI stands for Serial Peripheral Interface. SPI is a synchronous protocol that allows a master device to initiate communication with a slave device. Data is exchanged between these devices.

CDAC-DESD Page 39 of 67 08/04/2023

Page 40: Remote AC controlling through embedded web server

AC Controlling through embedded web server

SPI is implemented in the PICmicro MCU by a hardware module called the Synchronous Serial Port or the Master Synchronous Serial Port. This module is built into many different PICmicro devices. It allows serial communication between two or more devices at a high speed and is reasonably easy to implement.

SPI AS SYNCHRONOUS PROTOCOL:SPI is a Synchronous protocol.The clock signal is provided by the master to provide synchronization. The clock signal controls when data can change and when it is valid for reading. Since SPI is synchronous, it has a clock pulse along with the data. RS-232 and other asynchronous protocols do not use a clock pulse, but the data must be timed very accurately.

Since SPI has a clock signal, the clock can vary without disrupting the data. The data rate will simply change along with the changes in the clock rate. This makes SPI ideal when the microcontroller is being clocked imprecisely, such as by a RC oscillator.

SPI AS MASTER-SLAVE PROTOCOL:SPI is a Master-Slave protocol.

Only the master device can control the clock line, SCK. No data will be transferred unless the clock

is manipulated. All slaves are controlled by the clock which is manipulated by the master device.

The slaves may not manipulate the clock. The SSP configuration registers will control how a device

will respond to the clock input.

OPERATIONIn SPI, data typically changes during the rising or falling edge of SCK. This is how the data is

synchronized with the clock signal.

Logically, the point at which data is read is opposite from when it changes. The data is valid at the

point of reading.

The SPI bus specifies four logic signals.

SCLK — Serial Clock (output from master)

MOSI/SIMO — Master Output, Slave Input (output from master)

MISO/SOMI — Master Input, Slave Output (output from slave)

SS — Slave Select (active low; output from master)

SIGNALS USED BY SPI:SPI is a Serial Interface and uses the following signals to serially exchange data with another device:

CDAC-DESD Page 40 of 67 08/04/2023

Page 41: Remote AC controlling through embedded web server

AC Controlling through embedded web server

SS - This signal is known as Slave Select. When it goes low, the slave device will listen for

SPI clock and data signals.

SCK - This is the serial clock signal. It is generated by the master device and controls when

data is sent and when it is read.

SDO - This is the Serial Data Output signal. SDO carries data out of a device.

SDI - SDI is the Serial Data Input line. It carries data into a device.

DATA TRANSFER:

SPI creates a data loop between two devices. Data leaving the master exits on the SDO (serial data

output) line. Data entering the master enters on the serial data input, SDI line.

A clock (SCK), is generated by the master device. It controls when and how quickly data is

exchanged between the two devices.

SS allows a master device to control when a particular slave is being addressed. This allows the

possibility of having more than one slave and simplifies the communications. When the SS signal

goes low at a slave device, only that slave is accessed by SPI.

SPI WORKING:

CDAC-DESD Page 41 of 67 08/04/2023

Page 42: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Devices communicate using a master/slave relationship, in which the master initiates the data frame.

When the master generates a clock and selects a slave device, data may be transferred in either or

both directions simultaneously. In fact, as far as SPI is concerned, data are always transferred in

both directions. It is up to the master and slave devices to know whether a received byte is

meaningful or not. So a device must discard the received byte in a "transmit only" frame or generate

a dummy byte for a "receive only" frame.

SPI specifies four signals: clock (SCLK); master data output, slave data input (MOSI); master data

input, slave data output (MISO); and slave select (ÇSS). Figure 1 shows these signals in a single-

slave configuration. SCLK is generated by the master and input to all slaves. MOSI carries data

from master to slave. MISO carries data from slave back to master. A slave device is selected when

the master asserts its ÇSS signal.

Advantages

Full duplex communication

Higher throughput than I²C or SMBus

Complete protocol flexibility for the bits transferred

o Arbitrary choice of message size, content, and purpose

Uses many fewer pins on IC packages, and wires in board layouts or connectors, than

parallel interfaces

At most one "unique" bus signal per device (chip select); all others are shared

Disadvantages

Requires more pins on IC packages than I²C, even in the "3-Wire" variant

No in-band addressing; out-of-band chip select signals are required on shared buses

No hardware flow control

No hardware slave acknowledgment

CDAC-DESD Page 42 of 67 08/04/2023

Page 43: Remote AC controlling through embedded web server

AC Controlling through embedded web server

APPLICATIONS:

SPI is used to talk to a variety of peripherals, such as:

Sensors: temperature, pressure, ADC, touch screens

Control devices: audio codec’s, digital potentiometers, DAC

Camera lenses: Canon EF lens mount

Communications: Ethernet, USB, USART, CAN, IEEE 802.15.4, IEEE 802.11

5.8.2 I2C Bus

The name I2C translates into "Inter IC". Sometimes the bus is called IIC or I²C bus. The original

communication speed was defined with a maximum of 100 kbit per second and many applications

don't require faster transmissions. For those that do there is a 400 kbit fastmode and - since 1998 - a

high speed 3.4 Mbit option available. Recently, fast mode plus a transfer rate between this has been

specified.

I2C is not only used on single boards, but also to connect components which are linked via cable.

Simplicity and flexibility are key characteristics that make this bus attractive to many applications.

FEATURES:

Only two bus lines are required.

No strict baud rate requirements like for instance with RS232, the master generates a bus

clock.

Simple master/slave relationships exist between all components.

Each device connected to the bus is software-addressable by a unique address.

CONCEPT:

CDAC-DESD Page 43 of 67 08/04/2023

Page 44: Remote AC controlling through embedded web server

AC Controlling through embedded web server

The I2C-bus supports any IC fabrication process (NMOS, CMOS, bipolar). Two wires, serial data

(SDA) and serial clock (SCL), carry information between the devices connected to the bus. Each

device is recognized by a unique address (whether it’s a microcontroller, LCD driver, memory or

keyboard interface) and can operate as either a transmitter or receiver, depending on the function of

the device. Obviously an LCD driver is only a receiver, whereas a memory can both receive and

transmit data. In addition to transmitters and receivers, devices can also be considered as masters or

slaves when performing data transfers.

A master is the device which initiates a data transfer on the bus and generates the clock signals to

permit that transfer. At that time, any device addressed is considered a slave.

The I2C-bus is a multi-master bus. This means that more than one device capable of controlling the

bus can be connected to it.

The possibility of connecting more than one microcontroller to the I2C-bus means that more than

one master could try to initiate a data transfer at the same time. To avoid the chaos that might ensue

from such an event - an arbitration procedure has been developed. This procedure relies on the

wired-AND connection of all I2C interfaces to the I2C-bus. If two or more masters try to put

information onto the bus, the first to produce a ‘one’ when the other produces a ‘zero’ will lose the

arbitration. The clock signals during arbitration are a synchronized combination of the clocks

generated by the masters using the wired-AND connection to the SCL line.

GENERAL CHARACTERISTICS

Both SDA and SCL are bi-directional lines, connected to a positive supply voltage via a current-

source or pull-up resistor (see Fig.3). When the bus is free, both lines are HIGH. The output stages

of devices connected to the bus must have an open-drain or open-collector to perform the wired-

AND function. Data on the I2C-bus can be transferred at rates of up to 100 kbit/s in the Standard-

mode, up to 400 kbit/s in the Fast-mode, or up to 3.4 Mbit/s in the High-speed mode. The number of

interfaces connected to the bus is solely dependent on the bus capacitance limit of 400 pF.

STANDARD MODES:

CDAC-DESD Page 44 of 67 08/04/2023

Page 45: Remote AC controlling through embedded web server

AC Controlling through embedded web server

The Standard-mode I2C-bus specification, with its data transfer rate of up to 100 kbit/s and 7-bit

addressing, has been in existence since the beginning of the 1980’s. This concept rapidly grew in

popularity and is today accepted worldwide as a de facto standard with several hundred different

compatible ICs on offer from Philips Semiconductors and other suppliers. To meet the demands for

higher speeds, as well as make available more slave address for the growing number of new devices,

the Standard-mode I2C-bus specification was upgraded over the years and today is available with

the following extensions:

· Fast-mode: with a bit rate up to 400 kbit/s.

· High-speed mode (Hs-mode): with a bit rate up to 3.4 Mbit/s.

· 10-bit addressing: this allows the use of up to 1024 additional slave addresses.

There are two main reasons for extending the regular I2C-bus specification:

Many of today’s applications need to transfer large amounts of serial data and require bit

rates far in excess of 100 kbit/s (Standard-mode), or even 400 kbit/s (Fast-mode). As a result

of continuing improvements in semiconductor technologies, I2C-bus devices are now

available with bit rates of up to 3.4 Mbit/s (Hs-mode) without any noticeable increases in the

manufacturing cost of the interface circuitry.

As most of the 112 addresses available with the 7-bit addressing scheme were soon

allocated; it became apparent that more address combinations were required to prevent

problems with the allocation of slave addresses for new devices. This problem was resolved

with the new 10-bit addressing scheme, which allowed about a tenfold increase in available

addresses.

The I2C Bus Protocol

The I2C bus physically consists of 2 active wires and a ground connection. The active wires, called

SDA and SCL, are both bi-directional. SDA is the Serial DAta line, and SCL is the Serial CLock

line.

CDAC-DESD Page 45 of 67 08/04/2023

Page 46: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Every device hooked up to the bus has its own unique address, no matter whether it is an MCU,

LCD driver, memory, or ASIC. Each of these chips can act as a receiver and/or transmitter,

depending on the functionality. Obviously, an LCD driver is only a receiver, while a memory or I/O

chip can be both transmitter and receiver.

The I2C bus is a multi-master bus. This means that more than one IC capable of initiating a data

transfer can be connected to it. The I2C protocol specification states that the IC that initiates a data

transfer on the bus is considered the Bus Master. Consequently, at that time, all the other ICs are

regarded to be Bus Slaves.

As bus masters are generally microcontrollers, let's take a look at a general 'inter-IC chat' on the bus.

Lets consider the following setup and assume the MCU wants to send data to one of its slaves.

First, the MCU will issue a START condition. This acts as an 'Attention' signal to all of the

connected devices. All ICs on the bus will listen to the bus for incoming data.

Then the MCU sends the ADDRESS of the device it wants to access, along with an indication

whether the access is a Read or Write operation (Write in our example). Having received the

address, all IC's will compare it with their own address. If it doesn't match, they simply wait until

the bus is released by the stop condition (see below). If the address matches, however, the chip will

produce a response called the ACKNOWLEDGE signal.

Once the MCU receives the acknowledge, it can start transmitting or receiving DATA. In our case,

the MCU will transmit data. When all is done, the MCU will issue the STOP condition. This is a

signal that the bus has been released and that the connected ICs may expect another transmission to

start any moment.

CDAC-DESD Page 46 of 67 08/04/2023

Page 47: Remote AC controlling through embedded web server

AC Controlling through embedded web server

We have had several states on the bus in our example: START, ADDRESS, ACKNOWLEDGE,

DATA, STOP. These are all unique conditions on the bus. Before we take a closer look at these bus

conditions we need to understand a bit about the physical structure and hardware of the bus.

5.8.3 Rj45 Network cable

RJ45 is a standard type of connector for network cables. RJ45 connectors are most commonly seen

with Ethernet cables and networks.

RJ45 connectors feature eight pins to which the wire strands of a cable interface electrically.

Standard RJ-45 pin outs define the arrangement of the individual wires needed when attaching

connectors to a cable.

Several other kinds of connectors closely resemble RJ45 and can be easily confused for each other.

The RJ-11 connectors used with telephone cables, for example, are only slightly smaller (narrower)

than RJ-45 connectors.

CONNECTION:

UTP consists of 4 twisted pairs. The standard colors are:

1. white/blue – blue

2. white/orange – orange

3. white/green – green

4. white/brown – brown

Connection Types:

1. Hub to Hub or Computer to Computer Connection : end T568A, other end T568B

2. Hub to Computer connection: T568B on each end.

CDAC-DESD Page 47 of 67 08/04/2023

Page 48: Remote AC controlling through embedded web server

AC Controlling through embedded web server

PIN DESCRIPTION:

Pin No. Wire Colour Function1 WHITE/Orange Transmit Data+2 ORANGE/White Transmit Data-3 WHITE/Green Recieve Data+4 BLUE/White None5 WHITE/Blue None6 GREEN/White Recieve Data-7 WHITE/Brown None8 BROWN/White None

6 Components Involved (software)

6.1 WINAVR(avr-gcc)

CDAC-DESD Page 48 of 67 08/04/2023

Page 49: Remote AC controlling through embedded web server

AC Controlling through embedded web server

WinAVR (pronounced "whenever") is a suite of executable, open source software development

tools for the Atmel AVR series of RISC microprocessors hosted on the Windows platform. It

includes the GNU GCC compiler for C and C++.

New features in winavr 4.11:

Major version change for GCC. Now at version 4.1.1.

Support for the ATmega128, and ATmega2561 devices.

Change the DWARF2 debug information from 16-bit addresses to 32-bit addresses. This

now allows debugging of code above 64K, including boot loaders for the ATmega128 and

ATmega1281, and debugging of the ATmega2560 and ATmega2561 devices. This requires a

version of AVR Studio that has a new ELF/DWARF2 parser (> 4.12).

New avr-libc version with new examples, updated examples, many bugs fixed, and new

APIs for Power Reduction and Clock Prescaler.

WinAVR is a collection of executable software development tools for the Atmel AVR processor

hosted on Windows.

These software development tools include:

Compilers

Assembler

Linker

Librarian

C Library

Debugger

In-Circuit Emulator software

Editor / IDE

CDAC-DESD Page 49 of 67 08/04/2023

Page 50: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Many support utilities

6.2 AVR STUDIO 4.14

AVR Studio is an Integrated Development Environment (IDE) for writing and debugging AVR applications in Windows 9x/ME/NT/2000/XP/VISTA environments.  AVR Studio provides a project management tool, source file editor, simulator, assembler and front-end for C/C++, programming, emulation and on-chip debugging.

AVR Studio supports the complete range of ATMEL AVR tools and each release will always

contain the latest updates for both the tools and support of new AVR devices.

AVR Studio 4 has a modular architecture which allows even more interaction with 3rd party

software vendors.  GUI plug-ins and other modules can be written and hooked to the system.

CDAC-DESD Page 50 of 67 08/04/2023

Page 51: Remote AC controlling through embedded web server

AC Controlling through embedded web server

The AVR Simulator is a software simulator for the AVR architecture and devices. It simulates the

CPU, including all instructions, interrupts and most of the on-chip I/O modules.

The AVR Simulator operates within the AVR Studio application as a debug target. This enables the

user to use the normal debug commands such as Run, Break, Reset, Single step, set breakpoints and

watch variables. The I/O, memory and register views are fully functional using the AVR Simulator.

6.3 Micro IP(µIP) TCP/IP Protocol suit

With the success of the Internet, the TCP/IP protocol suite has become a global standard for

communication. TCP/IP is the underlying protocol used for web page transfers, e-mail

transmissions, file transfers, and peer-to-peer networking over the Internet. For embedded systems,

being able to run native TCP/IP makes it possible to connect the system directly to an intranet or

even the global Internet. Embedded devices with full TCP/IP support will be first-class network

citizens, thus being able to fully communicate with other hosts in the network.

Traditional TCP/IP implementations have required far too much resources both in terms of code size

and memory usage to be useful in small 8 or 16-bit systems. Code size of a few hundred kilobytes

and RAM requirements of several hundreds of kilobytes have made it impossible to fit the full

TCP/IP stack into systems with a few tens of kilobytes of RAM and room for less than 100 kilobytes

of code.

The uIP implementation is designed to have only the absolute minimal set of features needed for a

full TCP/IP stack. It can only handle a single network interface and contains the IP, ICMP, UDP and

TCP protocols. uIP is written in the C programming language.

Many other TCP/IP implementations for small systems assume that the embedded device always

will communicate with a full-scale TCP/IP implementation running on a workstation-class machine.

Under this assumption, it is possible to remove certain TCP/IP mechanisms that are very rarely used

in such situations. Many of those mechanisms are essential, however, if the embedded device is to

communicate with another equally limited device, e.g., when running distributed peer-to-peer

services and protocols. uIP is designed to be RFC compliant in order to let the embedded devices to

CDAC-DESD Page 51 of 67 08/04/2023

Page 52: Remote AC controlling through embedded web server

AC Controlling through embedded web server

act as first-class network citizens. The uIP TCP/IP implementation that is not tailored for any

specific application.

6.3.1 TCP/IP CommunicationThe full TCP/IP suite consists of numerous protocols, ranging from low level protocols such as ARP

which translates IP addresses to MAC addresses, to application level protocols such as SMTP that is

used to transfer e-mail. The uIP is mostly concerned with the TCP and IP protocols and upper layer

protocols will be referred to as "the application". Lower layer protocols are often implemented in

hardware or firmware and will be referred to as "the network device" that are controlled by the

network device driver.

TCP provides a reliable byte stream to the upper layer protocols. It breaks the byte stream into

appropriately sized segments and each segment is sent in its own IP packet. The IP packets are sent

out on the network by the network device driver. If the destination is not on the physically

connected network, the IP packet is forwarded onto another network by a router that is situated

between the two networks. If the maximum packet size of the other network is smaller than the size

of the IP packet, the packet is fragmented into smaller packets by the router. If possible, the size of

the TCP segments are chosen so that fragmentation is minimized. The final recipient of the packet

will have to reassemble any fragmented IP packets before they can be passed to higher layers.

The formal requirements for the protocols in the TCP/IP stack is specified in a number of RFC

documents published by the Internet Engineering Task Force, IETF. Each of the protocols in the

stack is defined in one more RFC documents and RFC1122 collects all requirements and updates the

previous RFCs.

The RFC1122 requirements can be divided into two categories; those that deal with the host to host

communication and those that deal with communication between the application and the networking

stack. An example of the first kind is "A TCP MUST be able to receive a TCP option in any

segment" and an example of the second kind is "There MUST be a mechanism for reporting soft

TCP error conditions to the application." A TCP/IP implementation that violates requirements of the

first kind may not be able to communicate with other TCP/IP implementations and may even lead to

CDAC-DESD Page 52 of 67 08/04/2023

Page 53: Remote AC controlling through embedded web server

AC Controlling through embedded web server

network failures. Violation of the second kind of requirements will only affect the communication

within the system and will not affect host-to-host communication.

In uIP, all RFC requirements that affect host-to-host communication are implemented. However, in

order to reduce code size, we have removed certain mechanisms in the interface between the

application and the stack, such as the soft error reporting mechanism and dynamically configurable

type-of-service bits for TCP connections. Since there are only very few applications that make use

of those features they can be removed without loss of generality.

6.3.2 Main Control LoopThe uIP stack can be run either as a task in a multitasking system, or as the main program in a

singletasking system. In both cases, the main control loop does two things repeatedly:

Check if a packet has arrived from the network.

Check if a periodic timeout has occurred.

If a packet has arrived, the input handler function, uip_input(), should be invoked by the main

control loop. The input handler function will never block, but will return at once. When it returns,

the stack or the application for which the incoming packet was intended may have produced one or

more reply packets which should be sent out. If so, the network device driver should be called to

send out these packets.

Periodic timeouts are used to drive TCP mechanisms that depend on timers, such as delayed

acknowledgments, retransmissions and round-trip time estimations. When the main control loop

infers that the periodic timer should fire, it should invoke the timer handler function uip_periodic().

Because the TCP/IP stack may perform retransmissions when dealing with a timer event, the

network device driver should called to send out the packets that may have been produced.

6.3.3 Architecture Specific FunctionsuIP requires a few functions to be implemented specifically for the architecture on which uIP is intended to run. These functions should be hand-tuned for the particular architecture, but generic C implementations are given as part of the uIP distribution.

CDAC-DESD Page 53 of 67 08/04/2023

Page 54: Remote AC controlling through embedded web server

AC Controlling through embedded web server

6.3.4 Application Program Interface (API)The Application Program Interface (API) defines the way the application program interacts with the

TCP/IP stack. The most commonly used API for TCP/IP is the BSD socket API which is used in

most Unix systems and has heavily influenced the Microsoft Windows WinSock API. Because the

socket API uses stop-and-wait semantics, it requires support from an underlying multitasking

operating system. Since the overhead of task management, context switching and allocation of stack

space for the tasks might be too high in the intended uIP target architectures, the BSD socket

interface is not suitable for our purposes.

uIP provides two APIs to programmers: protosockets, a BSD socket-like API without the overhead

of full multi-threading, and a "raw" event-based API that is nore low-level than protosockets but

uses less memory.

The uIP raw API:

The "raw" uIP API uses an event driven interface where the application is invoked in response to

certain events. An application running on top of uIP is implemented as a C function that is called by

uIP in response to certain events. uIP calls the application when data is received, when data has been

successfully delivered to the other end of the connection, when a new connection has been set up, or

when data has to be retransmitted. The application is also periodically polled for new data. The

application program provides only one callback function; it is up to the application to deal with

mapping different network services to different ports and connections. Because the application is

able to act on incoming data and connection requests as soon as the TCP/IP stack receives the

packet, low response times can be achieved even in low-end systems.

uIP is different from other TCP/IP stacks in that it requires help from the application when doing

retransmissions. Other TCP/IP stacks buffer the transmitted data in memory until the data is known

to be successfully delivered to the remote end of the connection. If the data needs to be

retransmitted, the stack takes care of the retransmission without notifying the application. With this

approach, the data has to be buffered in memory while waiting for an acknowledgment even if the

application might be able to quickly regenerate the data if a retransmission has to be made.

CDAC-DESD Page 54 of 67 08/04/2023

Page 55: Remote AC controlling through embedded web server

AC Controlling through embedded web server

In order to reduce memory usage, uIP utilizes the fact that the application may be able to regenerate

sent data and lets the application take part in retransmissions. uIP does not keep track of packet

contents after they have been sent by the device driver, and uIP requires that the application takes an

active part in performing the retransmission. When uIP decides that a segment should be

retransmitted, it calls the application with a flag set indicating that a retransmission is required. The

application checks the retransmission flag and produces the same data that was previously sent.

From the application's standpoint, performing a retransmission is not different from how the data

originally was sent. Therefore the application can be written in such a way that the same code is

used both for sending data and retransmitting data. Also, it is important to note that even though the

actual retransmission operation is carried out by the application, it is the responsibility of the stack

to know when the retransmission should be made. Thus the complexity of the application does not

necessarily increase because it takes an active part in doing retransmissions.

6.3.4.1 Application EventsThe application must be implemented as a C function, UIP_APPCALL(), that uIP calls whenever an

event occurs. Each event has a corresponding test function that is used to distinguish between

different events. The functions are implemented as C macros that will evaluate to either zero or non-

zero. Note that certain events can happen in conjunction with each other (i.e., new data can arrive at

the same time as data is acknowledged).

6.3.4.2 The Connection PointerWhen the application is called by uIP, the global variable uip_conn is set to point to the uip_conn

structure for the connection that currently is handled, and is called the "current connection". The

fields in the uip_conn structure for the current connection can be used, e.g., to distinguish between

different services, or to check to which IP address the connection is connected. One typical use

would be to inspect the uip_conn->lport (the local TCP port number) to decide which service the

connection should provide. For instance, an application might decide to act as an HTTP server if the

value of uip_conn->lport is equal to 80 and act as a TELNET server if the value is 23.

CDAC-DESD Page 55 of 67 08/04/2023

Page 56: Remote AC controlling through embedded web server

AC Controlling through embedded web server

6.3.4.3 Receiving DataIf the uIP test function uip_newdata() is non-zero, the remote host of the connection has sent new

data. The uip_appdata pointer point to the actual data. The size of the data is obtained through the

uIP function uip_datalen().The data is not buffered by uIP, but will be overwritten after the

application function returns, and the application will therefor have to either act directly on the

incoming data, or by itself copy the incoming data into a buffer for later processing.

6.3.4.4 Sending DataWhen sending data, uIP adjusts the length of the data sent by the application according to the

available buffer space and the current TCP window advertised by the receiver. The amount of buffer

space is dictated by the memory configuration. It is therefore possible that all data sent from the

application does not arrive at the receiver, and the application may use the uip_mss() function to see

how much data that actually will be sent by the stack.

The application sends data by using the uIP function uip_send(). The uip_send() function takes two

arguments; a pointer to the data to be sent and the length of the data. If the application needs RAM

space for producing the actual data that should be sent, the packet buffer (pointed to by the

uip_appdata pointer) can be used for this purpose.

6.3.4.5 Retransmitting DataRetransmissions are driven by the periodic TCP timer. Every time the periodic timer is invoked, the

retransmission timer for each connection is decremented. If the timer reaches zero, a retransmission

should be made. As uIP does not keep track of packet contents after they have been sent by the

device driver, uIP requires that the application takes an active part in performing the retransmission.

When uIP decides that a segment should be retransmitted, the application function is called with the

uip_rexmit() flag set, indicating that a retransmission is required.

The application must check the uip_rexmit() flag and produce the same data that was previously

sent. From the application's standpoint, performing a retransmission is not different from how the

data originally was sent. Therefor, the application can be written in such a way that the same code is

used both for sending data and retransmitting data. Also, it is important to note that even though the

CDAC-DESD Page 56 of 67 08/04/2023

Page 57: Remote AC controlling through embedded web server

AC Controlling through embedded web server

actual retransmission operation is carried out by the application, it is the responsibility of the stack

to know when the retransmission should be made.

6.3.4.6 Closing ConnectionsThe application closes the current connection by calling the uip_close() during an application call.

This will cause the connection to be cleanly closed. In order to indicate a fatal error, the application

might want to abort the connection and does so by calling the uip_abort() function.

If the connection has been closed by the remote end, the test function uip_closed() is true. The

application may then do any necessary cleanups.

6.3.4.7 Reporting ErrorsThere are two fatal errors that can happen to a connection, either that the connection was aborted by

the remote host, or that the connection retransmitted the last data too many times and has been

aborted. uIP reports this by calling the application function. The application can use the two test

functions uip_aborted() and uip_timedout() to test for those error conditions.

6.3.4.8 PollingWhen a connection is idle, uIP polls the application every time the periodic timer fires. The

application uses the test function uip_poll() to check if it is being polled by uIP.

6.3.4.9 Listening PortsuIP maintains a list of listening TCP ports. A new port is opened for listening with the uip_listen()

function. When a connection request arrives on a listening port, uIP creates a new connection and

calls the application function. The test function uip_connected() is true if the application was

invoked because a new connection was created.

6.3.4.10 Opening ConnectionsNew connections can be opened from within uIP by the function uip_connect(). This function

allocates a new connection and sets a flag in the connection state which will open a TCP connection

to the specified IP address and port the next time the connection is polled by uIP. The uip_connect()

function returns a pointer to the uip_conn structure for the new connection. If there are no free

connection slots, the function returns NULL.

CDAC-DESD Page 57 of 67 08/04/2023

Page 58: Remote AC controlling through embedded web server

AC Controlling through embedded web server

The function uip_ipaddr() may be used to pack an IP address into the two element 16-bit array used

by uIP to represent IP addresses.

Two examples of usage are shown below. The first example shows how to open a connection to

TCP port 8080 of the remote end of the current connection. If there are not enough TCP connection

slots to allow a new connection to be opened, the uip_connect() function returns NULL and the

current connection is aborted by uip_abort().

6.3.5 Protocol ImplementationsThe protocols in the TCP/IP protocol suite are designed in a layered fashion where each protocol

performs a specific function and the interactions between the protocol layers are strictly defined.

While the layered approach is a good way to design protocols, it is not always the best way to

implement them. In uIP, the protocol implementations are tightly coupled in order to save code

space.

6.3.5.1 IP --- Internet ProtocolWhen incoming packets are processed by uIP, the IP layer is the first protocol that examines the

packet. The IP layer does a few simple checks such as if the destination IP address of the incoming

packet matches any of the local IP address and verifies the IP header checksum. Since there are no

IP options that are strictly required and because they are very uncommon, any IP options in received

packets are dropped.

IP Fragment Reassembly:IP fragment reassembly is implemented using a separate buffer that holds the packet to be

reassembled. An incoming fragment is copied into the right place in the buffer and a bit map is used

to keep track of which fragments have been received. Because the first byte of an IP fragment is

aligned on an 8-byte boundary, the bit map requires a small amount of memory. When all fragments

have been reassembled, the resulting IP packet is passed to the transport layer. If all fragments have

not been received within a specified time frame, the packet is dropped.

6.3.5.2 ICMP --- Internet Control Message ProtocolThe ICMP protocol is used for reporting soft error conditions and for querying host parameters. Its

main use is, however, the echo mechanism which is used by the "ping" program.

CDAC-DESD Page 58 of 67 08/04/2023

Page 59: Remote AC controlling through embedded web server

AC Controlling through embedded web server

The ICMP implementation in uIP is very simple as itis restricted to only implement ICMP echo

messages. Replies to echo messages are constructed by simply swapping the source and destination

IP addresses of incoming echo requests and rewriting the ICMP header with the Echo-Reply

message type. The ICMP checksum is adjusted using standard techniques (see RFC1624).

Since only the ICMP echo message is implemented, there is no support for Path MTU discovery or

ICMP redirect messages. Neither of these is strictly required for interoperability; they are

performance enhancement mechanisms.

6.3.5.3 TCP --- Transmission Control ProtocolThe TCP implementation in uIP is driven by incoming packets and timer events. Incoming packets

are parsed by TCP and if the packet contains data that is to be delivered to the application, the

application is invoked by the means of the application function call. If the incoming packet

acknowledges previously sent data, the connection state is updated and the application is informed,

allowing it to send out new data.

Listening ConnectionsTCP allows a connection to listen for incoming connection requests. In uIP, a listening connection is

identified by the 16-bit port number and incoming connection requests are checked against the list of

listening connections. This list of listening connections is dynamic and can be altered by the

applications in the system.

Round-Trip Time Estimation

TCP continuously estimates the current Round-Trip Time (RTT) of every active connection in order

to find a suitable value for the retransmission time-out.

The RTT estimation in uIP is implemented using TCP's periodic timer. Each time the periodic timer

fires, it increments a counter for each connection that has unacknowledged data in the network.

When an acknowledgment is received, the current value of the counter is used as a sample of the

RTT. The sample is used together with Van Jacobson's standard TCP RTT estimation function to

calculate an estimate of the RTT. Karn's algorithm is used to ensure that retransmissions do not

skew the estimates.

CDAC-DESD Page 59 of 67 08/04/2023

Page 60: Remote AC controlling through embedded web server

AC Controlling through embedded web server

Retransmissions

Retransmissions are driven by the periodic TCP timer. Every time the periodic timer is invoked, the

retransmission timer for each connection is decremented. If the timer reaches zero, a retransmission

should be made.

Flow Control

The purpose of TCP's flow control mechanisms is to allow communication between hosts with

wildly varying memory dimensions. In each TCP segment, the sender of the segment indicates its

available buffer space. A TCP sender must not send more data than the buffer space indicated by the

receiver.

In uIP, the application cannot send more data than the receiving host can buffer. And application

cannot send more data than the amount of bytes it is allowed to send by the receiving host. If the

remote host cannot accept any data at all, the stack initiates the zero window probing mechanism.

Congestion Control

The congestion control mechanisms limit the number of simultaneous TCP segments in the network.

The algorithms used for congestion control are designed to be simple to implement and require only

a few lines of code.

Since uIP only handles one in-flight TCP segment per connection, the amount of simultaneous

segments cannot be further limited, thus the congestion control mechanisms are not needed.

Urgent Data

TCP's urgent data mechanism provides an application-to-application notification mechanism, which

can be used by an application to mark parts of the data stream as being more urgent than the normal

stream. It is up to the receiving application to interpret the meaning of the urgent data.

In many TCP implementations, including the BSD implementation, the urgent data feature increases

the complexity of the implementation because it requires an asynchronous notification mechanism in

an otherwise synchronous API. As uIP already use an asynchronous event based API, the

implementation of the urgent data feature does not lead to increased complexity.

CDAC-DESD Page 60 of 67 08/04/2023

Page 61: Remote AC controlling through embedded web server

AC Controlling through embedded web server

6.3.6 Application Layer (HTTP Layer)

HTTP is the protocol behind the World Wide Web. With every web transaction, HTTP is invoked.

HTTP is behind every request for a web document or graphic, every click of a hypertext link, and

every submission of a form. The Web is about distributing information over the Internet, and HTTP

is the protocol used to do so.

HTTP is useful because it provides a standardized way for computers to communicate with each

other. HTTP specifies how clients request data, and how servers respond to these requests. By

understanding how HTTP works, you'll be able to:

Manually query web servers and receive low-level information that typical web browsers

hide from the user. With this information, you can better understand the configuration and

capabilities of a particular server, and debug configuration errors with the server or

programming errors in programs invoked by the web server.

Understand the interaction between web clients (browsers, robots, search engines, etc.) and

web servers.

Streamline web services to make better use of the protocol.

HTTP Transactions:

This section presents an example of a common web transaction, showing the HTTP exchanged between the client and server program.

Requests:

Given the following URL:

http://hypothetical.ora.com:80/

The browser interprets the URL as follows: http://

Contact a computer over the network with the hostname of hypothetical.ora.com.:80

Connect to the computer at port 80. The port number can be any legitimate IP port number: 1

through 65535, inclusively. If the colon and port number are omitted, the port number is assumed to

be HTTP's default port number, which is 80.Anything after the hostname and optional port number

CDAC-DESD Page 61 of 67 08/04/2023

Page 62: Remote AC controlling through embedded web server

AC Controlling through embedded web server

is regarded as a document path. In this example, the document path is /.So the browser connects to

hypothetical.ora.com on port 80 using the HTTP protocol. The message that the browser sends to

the server is:

GET / HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/

jpeg, image/pjpeg, */*

Accept-Language: en-us

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE

5.01; Windows NT)

Host: hypothetical.ora.com

Connection: Keep-Alive

Responses:

Given a request like the one previously shown, the server looks for the server resource associated

with "/" and returns it to the browser, preceding it with header information in its response. The

resource associated with the URL depends on how the server is implemented. It could be a static file

or it could be dynamically generated. In this case, the server returns:

HTTP/1.1 200 OK

Date: Mon, 06 Dec 1999 20:54:26 GMT

Server: Apache/1.3.6 (Unix)

Last-Modified: Fri, 04 Oct 1996 14:06:11 GMT

ETag: "2f5cd-964-381e1bd6"

Accept-Ranges: bytes

Content-length: 327

Connection: closeContent-type: text/html

<title>Sample Homepage</title>

<img src="/images/oreilly_mast.gif">

<h1>Welcome</h1>

CDAC-DESD Page 62 of 67 08/04/2023

Page 63: Remote AC controlling through embedded web server

AC Controlling through embedded web server

6.4 HTML HTML, which stands for Hypertext Markup Language, is the predominant markup language for

web pages. It provides a means to create structured documents by denoting structural semantics for

text such as headings, paragraphs, lists etc as well as for links, quotes, and other items. It allows

images and objects to be embedded and can be used to create interactive forms. It is written in the

form of HTML elements consisting of "tags" surrounded by angle brackets within the web page

content. It can include or can load scripts in languages such as JavaScript, which affect the behavior

of HTML processors like Web browsers, and Cascading Style Sheets (CSS) to define the appearance

and layout of text and other material. The use of CSS is encouraged over explicit presentational

markup.

The document Structure should be like this:

<html>...</html>

The Root element of an HTML document; all other elements are contained in this.

Standardised in HTML 2.0; still current.

<head>...</head>

Container for processing information and metadata for an HTML document.

Standardised in HTML 2.0; still current.

(See Document head elements for child elements.)

<body>...</body>

Container for the displayable content of an HTML document.

Standardised in HTML 2.0; still current.

(See Document body elements for child elements.)

CDAC-DESD Page 63 of 67 08/04/2023

Page 64: Remote AC controlling through embedded web server

AC Controlling through embedded web server

7 Future Enhancements

This project can enhanced to remote AC controller for group of buildings or remote buildings just

by adding an zigbee technology in it. The approach for this is shown in the figure.

Here all the floors having zigbee end module having temperature sensor, which is always sending

the current temperature to the zigbee coordinator, which is mounted on the AVR board, and the

ATMega128 uc will control the ac system according to the program and the updated values from the

embedded web server.

So by this from any place in the world the administrator or the controller can control the ac system.

CDAC-DESD Page 64 of 67 08/04/2023

Page 65: Remote AC controlling through embedded web server

AC Controlling through embedded web server

8 Bibliography

8.1.1 Books and Journals: 1. TCP-IP Lean--Web Servers for Embedded Systems By Jeremy Bentham

2. The uIP Embedded TCP/IP Stack By Adam Dunkels

3. Data Communications & Networking By Forouzan

4. HTML for Dummies, 4th Edition By Ed Tittel

5. HTML: The Definitive Guide By Chuck Musciano

6. Atmel AVR Quick Start By Hubert Hogl

7. Embedded C Programing & Atmel AVR By Barnett

8.

8.1.2 Reference links:1. http://www.sics.se/~adam/uip/ (uip protocol suit)

2. http://www.fh-augsburg.de/~hhoegl (AVR Quick start)

3. http://www.avrfreaks.net

4. http://www.atmel.com

5. http://www.thinklabs.in/forums

6. http://www.microchip.com

CDAC-DESD Page 65 of 67 08/04/2023

Page 66: Remote AC controlling through embedded web server

AC Controlling through embedded web server

CHECKLISTChecklist of items for Award of “Diploma in Embedded System Design” at CDAC, ACTS, Pune

1. Is the report properly hard bound? Yes/No

2. Is the cover page in proper format? Yes/No

3. Is the Title page (inner cover page) in proper format? Yes/No

4. (a)Is the certificate from the supervisor in proper format?

(b)Has it been signed by the supervisor?

Yes/No

5. Is the Abstract written in the report properly written? Yes/No

6. Does the Report contain a summary of the literature survey? Yes/No

7. Is the conclusion of the report based on the discussion of the work?

1.Are the pages numbered properly?

2.Are the figures numbered properly?

3.Are the tables numbered properly?

4.Are the captions of figures and tables proper?

5.Are the Appendices numbered properly?

Yes/No

Yes/No

Yes/No

Yes/No

Yes/No

Yes/No

8. Is the conclusion of the report based on the discussion of the work? Yes/No

9. Are the References or Bibliography given in the report? Yes/No

CDAC-DESD Page 66 of 67 08/04/2023

Page 67: Remote AC controlling through embedded web server

AC Controlling through embedded web server

DECLARATION

Place:

Date:

Sign:

Name: venugopal reddy somu

Date:

Sign:

Name: Mayuri Bodhankar

Date:

Sign:

Name: Simerdeep Singh Bhatti

I have duly verified all the items in the checklist and ensured that the report is in

proper format.

Place:

Signature of the Project Guide

Date: Name:

CDAC-DESD Page 67 of 67 08/04/2023