30行代码实现网页端控制树莓派LED灯

Django+树莓派实现网页端控制LED灯


平台:

  1. 尽量用python 3.6,python 3.7也可以,但是会报一个小错误,直接百度就可以解决。
  2. Django版本:1.11.8

再看一下工程目录结构(别吓着你,其实很多文件是自动生成的,只有templates文件夹和views.py文件是自己创建的):
30行代码实现网页端控制树莓派LED灯_第1张图片

//创建Django工作目录,我的目录是/home/pi/django/day02
cd django/day02   # 进入工作目录
django-admin startproject mysite1   # mysite1为项目名称
# 此时工作目录就会生成上图所示(templates文件夹及views.py文件需要自己创建)

需要修改的配置如下:

在settings.py文件中加一行路径,其实就是指定templates文件夹的位置。
30行代码实现网页端控制树莓派LED灯_第2张图片
好啦,现在就可以正式开始编程了!!
urls.py文件的代码如下:30行代码实现网页端控制树莓派LED灯_第3张图片
views.py文件如下:
30行代码实现网页端控制树莓派LED灯_第4张图片
urls.py的代码:

#  urls.py
from django.conf.urls import url
from django.contrib import admin
from . import views

urlpatterns = [
      url(r'^admin/',admin.site.urls),
      url(r'^index/',views.light_view),
      url(r'^turn_on/',views.turn_on),
      url(r'^turn_off/',views.turn_off),

]

views.py的代码如下:

from django.http import HttpResponse
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.OUT)
from django.shortcuts import render

def light_view(request):

    return render(request,'led.html')

def turn_on(request):
    GPIO.output(18,GPIO.LOW)
    return render(request,'led.html')

def turn_off(request):
    GPIO.output(18,GPIO.HIGH)
    return render(request,'led.html')

led.html的代码非常简单:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>网页端控制LED</title>
</head>
<body>
    <a href="/turn_on"><button></button></a>
    <a href="/turn_off"><button></button></a>
</body>
</html>

运行:

在工作目录输入python3 manage.py runserver(看到红色警告忽略即可)
30行代码实现网页端控制树莓派LED灯_第5张图片
打开网页进行访问页面:输入127.0.0.1:8000/index/
然后就可以控制树莓派的LED灯啦!!!
30行代码实现网页端控制树莓派LED灯_第6张图片

你可能感兴趣的:(树莓派,python,django,web,树莓派)