设为首页 收藏本站
查看: 816|回复: 0

[经验分享] 基于RaspberryPi和Python的智能远程控制原型

[复制链接]

尚未签到

发表于 2015-4-21 10:08:27 | 显示全部楼层 |阅读模式
  所用工具:

  树莓派+python+django+pyserial+STC89C52单片机

  树莓派通过串口与单片机通讯,网页与后台使用django驱动,然后通过django调用pyserial库向单片机发送命令。
  很多童鞋选择用web.py来做前端,但是考虑到以后开发的便捷性和健壮性,我还是坚持选择用django来做。
基于这种原型,可以很方便的利用手机浏览器控制各种外围电器,好好利用django的账户安全功能,又可以做到远程控制需要的安全保密性!
树莓派+python+django+pyserial这个方案,是我认为在学习成本、搭建速度、开发速度、安全性、易用度、客户端无关性方面比较完美的集合。






  

视频里使用的手机QQ浏览器,由于手机网络不给力,并且又通过qq服务器压缩转发,所以能看出延迟,如果用电脑操作效果更好。
1、这个方案其实完全可以拿掉单片机,直接将python+django+rpi.gpio结合可以做同样的事,一个树莓派结合继电器就可以做远程网页控制了。然而单片机有很多现成外设驱动可用,如果用Python来实现驱动,可能会降低可靠性,同时也会提高外围扩展的复杂性。
  2、但是直接通过单片机利用蓝牙芯片进行串口连接,可以降低无线控制系统的成本。
  3、由于网页使用python语言编写,所以可以十分方便的进行本地操作,更有超多的现成库,可实现的功能远远比网页脚本语言强大得多。
  4、估计没几个能有比django的admin模块更简单的健全的账户安全系统了。
  5、其实整个系统的核心就在django上,所以这个系统运行在任何一个linux终端上上均可以,不单单是树莓派。
  6、但是树莓派最大的优势就是低功耗,高度优化的系统和rpi.gpio,作为一个日常低负载的服务器没有人会不喜欢——如果CPU能再给力点的话。
  
  1、django教程:http://djangobook.py3k.cn/2.0/ 如果碰到无法理解的问题,别急,去https://docs.djangoproject.com/en/1.4/找找答案。
2、51单片机的串口例程:http://www.elecfans.com/emb/danpianji/20110509197678.html
3、PySerial方面完全可以用这里的代码:http://www.shumeipai.net/read.php?tid=1118&ds=1#11689
  4、下面贴一下django里的部分app代码:



#!/usr/bin/env python
import serial
class Control():
def __init__(self,device='/dev/ttyUSB0',BAUD=4800):
self.client = serial.Serial(device,BAUD,timeout=1)
def command(self,CMD):
try:
self.client.write(CMD)
self.client.close()
except:
pass

views.py:
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponse,HttpResponseRedirect, Http404
from control import Control
def control(request):
DEMO=None
if request.method == 'POST':
if 'CMD' in request.POST:
CON = Control()
CMD = request.POST['CMD']
CON.command(CMD)
return render_to_response('controller.html',{'demo':DEMO},context_instance=RequestContext(request))

  
  再贴上有点偏离主题的视频里示范网页的html模板代码:



{% csrf_token %}





  
  单片机代码,如果有兴趣的童鞋可以自己去写,写这篇文章的主要目的是帮助大家给现成的单片机控制系统添加网页控制功能。对于单片机不太了解的人,抱歉,代码这里欠奉了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59138-1-1.html 上篇帖子: python学习笔记之四:条件,循环和其他语句 下篇帖子: Python学习 Part3:数据结构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表