简单物联网

到这时,我们算搭建了一个简单的REST服务了。接着我们可以简单的做一个最小的物联网系统,将我们的单片机、MCU等等连上网。

考虑到如果我们只是单一连接各个节点,那么系统的结构图,同下所示

下面的星形结构图类似于我们在接下来所要构建的系统

一个用于控制真实电器的硬件实物图

硬件通信

串口通信

Arduino与Raspberry Pi通过串口通信的方式实现通信,相互传输所需要的数据,Raspberry Pi将资源传于互联网上对应的接口,接口可以在互联网上被访问。Laravel框架构架于服务器之上,将Raspbery Pi获取过来的数据存储于MySQL数据,再以REST服务的方式共享数据,互联网上的其他设备便可以通过网络来访问这些设备。Ajax用于将后台的数据以不需要刷新的方式传递到网站前台,通过HighCharts框架显示给终端用户。

Python

1.在Windows中的串口通常是COM1,COM0等等

pythonser=serial.Serial("COM0",9600)

2.Mac OS系统中位于/dev目录下,名字类似于tty.usbmodem1451。

pythonserial.Serial("/dev/tty.usbmodem1451",9600)

3.在Linux内核的系统中虚拟串口用的节点是ttyACM,位于/dev目录下。

pythonserial.Serial("/dev/ttyACM0",9600)

串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能

的电路,我们称为串行接口电路。

便是打开这个设备,以9600的速率传输数据。

程序框架如下所示:

代码如下:

pythonimport json

import urllib2

import serial

import time

url="http://www.xianuniversity.com/athome/1"

while 1:

try:

date=urllib2.urlopen(url)

result=json.load(date)

status=result[0]["led1"]

ser=serial.Serial("/dev/ttyACM0",9600)

if status==1 :

ser.write("1")

elif status==0:

ser.write("0")

time.sleep(1)

except urllib2.URLError:

print "Bad URL or timeout"

系统还需要对上面的数据进行处理,只拿其中的结果

当改变led的状态后,便可以得到下面的结果

Ruby

如果你用的是Ruby的话,可以尝试使用serialport

安装

bashsudo gem install serialport

代码大致如下

Rubyrequire 'serialport'

sp = SerialPort.new "/dev/ACM0", 9600

sp.write "1"

注意: 根据相关的系统修改相关的代码。

硬件

Arduino

这样我们在我们的Arduino上所要做的便是,读取串口的结果并控制IO口。

cint ledPort=13;

void setup() {

Serial.begin(9600);

pinMode(ledPort,OUTPUT);

}

int serialData;

void loop() {

String inString = "";

while (Serial.available()> 0)

{

int inChar = Serial.read();

if (isDigit(inChar)) {

inString += (char)inChar;

}

serialData=inString.toInt();

Serial.print(serialData);

}

if(serialData==1){

digitalWrite(ledPort,HIGH);

}else{

digitalWrite(ledPort,LOW);

}

}

如果结果是1的话,就让13口为高电平,也就是让灯亮起来。

继电器

继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。

在这里我们可以默认为我们想要为单片机的5V电压控制220V的电器。

最后我们便可以通过些来控制灯的开和关。

python做物联网控制_一步步搭建物联网系统——简单物联网相关推荐

  1. python训练模型函数参数_一步步亲手用python实现Logistic Regression

    前面的[DL笔记1]Logistic回归:最基础的神经网络和[DL笔记2]神经网络编程原则&Logistic Regression的算法解析讲解了Logistic regression的基本原 ...

  2. python手机屏幕控制_用Python控制墨水屏

    按照基础教程墨水屏用了起来,但是,教程是用C写的,以后是想用python做开发的,这之间可咋切换? 万能的github上已经有人这么做了 https://github.com/GregDMeyer/I ...

  3. 用python做自我介绍_用python做个自我介绍(python入门教程)_逻辑教育

    原标题:用python做个自我介绍(python入门教程)_逻辑教育 本文涉及的python基础语法为:数据类型等 数字类型 1. 字符串的拼接 我们在上一章中已经简单介绍了一下字符串的创建方式,这里 ...

  4. python做数学计算器_从零开始学习PYTHON3讲义(二)把Python当做计算器

    <从零开始PYTHON3>第二讲 上一讲我们说过了如何启动Python IDLE集成开发学习环境,macOS/Linux都可以在命令行执行idle3.Windows则从开始菜单中去寻找ID ...

  5. 一步一步教你如何用python做词云_一步一步教你如何用Python做词云

    前言 在大数据时代,你竟然会在网上看到的词云,例如这样的. 看到之后你是什么感觉?想不想自己做一个? 如果你的答案是正确的,那就不要拖延了,现在我们就开始,做一个词云分析图,Python是一个当下很流 ...

  6. 如何用python做词云图_科学网—如何用Python做词云?(基础篇视频教程) - 王树义的博文...

    只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了. <如何用Python做词云?>图文版发布于2017年6月,是我数据科学系列教程中的第一篇. 目前仅简书一个平台 ...

  7. python做excel麻烦_高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定!

    原标题:高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定! 最近经常听到周围的人抱怨:"工作忙,在加班--" 不知不觉,当代职场人早就被"996&qu ...

  8. python做图片浏览器_保护隐私,用Python打造自己的照片浏览器

    现代操作系统比如Win10, Mac都自带了很好用的照片浏览器,采用人像识别技术自动识别家庭成员,还有简单的画面增强功能.然而这些功能都是需要连接云端服务器来实现的.虽然说很难说这些大公司会对你的那些 ...

  9. python做淘宝_用python做个淘宝双十一满减攻略,再也不用算算算了

    双十一还有不到10天,购物车已经快加满了,但是钱包里就这么多钱,如何用现有的钱买到更多喜欢的东西,成为我比较头疼的事,因为我已经被各种组合加法搞晕了 于是我决定用python做个双十一购物攻略,把复杂 ...

  10. python做淘宝_我用 python 做了款可开淘宝店赚钱的工具!

    摘要:撩了淘宝店家后,用 Python 做了这个. 批量更换证件照背景色工具 私信小编01 获取本项目源代码哦! 之前给大家介绍了一款 AI 抠图神器:Remove.bg ,使用 Python 调用 ...

最新文章

  1. python输入字符串转换为公式_将python字符串转化成长表达式的函数eval实例
  2. delphi调用选择目录对话框
  3. C++ Lists(链表)
  4. 实验详解——parted单磁盘分区并进行配额
  5. 前端学习(2018)vue之电商管理系统电商系统把good_cat转换为字符串
  6. Oracle表连接方式总结
  7. 关于ILRunTime + FGUI 组合使用的补充
  8. UiPath Excel 向下填充
  9. django官方文档3.0学习笔记 03
  10. [附源码]计算机毕业设计Node.js老薛男生服装网(程序+LW)
  11. 第一台超高速巨型电子计算机,1997年,( )巨型机的研制成功,使我国在这个领域跨入了世界先进行列。...
  12. 第三方代付入帐是什么意思
  13. JAVA线程状态的10种转换
  14. JPG和TIFF图像转换
  15. odbc sqlstate:IM004
  16. 阿松嘚嘚嘚-数据库篇1-数据库市场有学问
  17. 腾讯测试儿童锁模式:13周岁以下玩游戏须家长开锁
  18. oracle sql developer的简单使用
  19. 米斯特WEB安全攻防白帽子培训视频教程 网站安全检测培训教程 第二期
  20. java新人培训_Java新人学习必要的步骤以及全套学习路线!

热门文章

  1. Android——GSON解析JSON
  2. js如何实现扫描身份证识别_基于javascript实现根据身份证号码识别性别和年龄
  3. 常用连接服务器的ssh工具
  4. abaqus土木结构视频教程
  5. 纬地道路纵断面设计教程_市政道路从识图算量到施工,一篇全搞定
  6. WEB前端工具推荐丨分享6个热门颜色选择器组件
  7. 《C语言运算符100例》优先级面试错题
  8. 安卓版teamview15.5.3
  9. 关于“UDP转发被禁用”的解决办法
  10. 软件项目管理第二章笔记---软件项目整体管理