Raspberry Pi-web Control Appliance

Source: Internet
Author: User

For students to do a smart home tutorial: The use of Raspberry Pi as a server, we through the method of accessing the server, control the high and low level of the I/O port of the Raspberry Pi, I/O port connected on the relay (to achieve low voltage control high voltage), relay you can be arbitrarily connected to the household appliances you want to control!

Click the button on the page directly to control the appliance!

Here is the page:

Tutorial
    1. Installing Flask
      Use Flask (http://flask.pocoo.org/), the Python web framework, to turn raspberry Pi into a Dynamic Web server. On the command line, enter the following command to install:
   pi@raspberrypi~@sudo pip install flask

2. writing a python program
Create a file named weblight.py and write the following code:

ImportRpi.gpio asGPIO fromFlaskImportFlask, render_template, Requestapp = Flask (__name__) Gpio.setmode (GPIO. BCM) pins = { -: {' name ':' TV ',' state ': GPIO. Low}, -: {' name ':' Light ',' state ': GPIO. Low}} forPininchPins:GPIO.setup (PIN, GPIO.) Out) Gpio.output (PIN, GPIO. Low)@app. Route ("/") def main():      forPininchpins:pins[pin][' state '] = Gpio.input (pin) TemplateData = {' pins ': pins}returnRender_template (' main.html ', **templatedata)@app. Route ("/<changepin>/<action>") def action(Changepin, action):Changepin = Int (changepin) devicename = pins[changepin][' name ']ifAction = ="on": Gpio.output (Changepin, GPIO. High) message ="turned"+ DeviceName +"on."     ifAction = ="Off": Gpio.output (Changepin, GPIO. Low) message ="turned"+ DeviceName +"off."     ifAction = ="Toggle": Gpio.output (Changepin, notGpio.input (changepin)) message ="toggled"+ DeviceName +"."      forPininchpins:pins[pin][' state '] = Gpio.input (pin) TemplateData = {' message ': Message,' pins ': pins}returnRender_template (' main.html ', **templatedata)if__name__ = ="__main__": App.run (host=' 0.0.0.0 ', port= the, debug=True)

If we want to add one more port control appliance, it's simple we can do this:
Put

pins = {     24 : {‘name‘‘TV‘‘state‘ : GPIO.LOW},     25 : {‘name‘‘Light‘‘state‘ : GPIO.LOW}    }

Switch

pins = {     24 : {‘name‘‘TV‘‘state‘ : GPIO.LOW},     25 : {‘name‘‘Light‘‘state‘ : GPIO.LOW}     26 : {‘name‘‘Coffee Maker‘‘state‘ : GPIO.LOW}    }

3. Writing HTML files
Under the directory where weblight.py is located, create a subdirectory named templates. In the Templates subdirectory, create a directory named
main.html the file and enter the following code:
All of the brackets in this HTML page template are parsed into variable names, which are replaced by actual data when the Python script calls the Render_template function.

<! DOCTYPE html><head><title>Home Intelligent Control</title></head><body><H1>Home automation Project</H1><img src="http://www.5qdd.com/files/all/121207/6-12120G43028.jpg" border ="0" widgth= "" " height=" > "</a><h2>Student Name:<font size ="6" color="Red" >Tom</font> </H2>{%  for pin  in pins%} <p> the{{Pins[pin].name}}{% if pins[pin].state = = true%}(<a href="/  {{pin}}  /off "> close </a>){% else %}(<a href="/  {{pin}}  /on "> open </a>){% endif %}</P>{% endfor %}{% if message%}<h3>{{message}}</h3>{% endif %} </body></html> 

Analytical:
Home Intelligent Control
"Home Intelligent Control" is the title of the page, you can change to the title you like

4. start the server

pion http://0.0.0.0:80/with reloader

Finally: The relay is connected to the control of the I/O, in the LAN landing the IP address of the Raspberry Pi, the realization of the network control home appliances!

Raspberry Pi-web Control Appliance

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.