我的第一个IOT项目(一) 2019-02-24 程序之旅 暂无评论 932 次阅读 拖了一个月,终于,项目要开始了。在2018年中的工作,一直围绕着物联网展开,其中走了很多的弯路,踩过很多的雷,最后还是没有能得到一套自己感觉满意的物联网架构。现在的工作与过去的一年工作完全不一样,不是继续的维护和升级框架,而是转向的使用一套完整的架构,aliyun Iot 平台,一个完善的架构,该平台提供了设备的连接,服务业务处理和web一站式开发,也就是二次开发,在它的基础上定制修改完成业务需求。虽然提供了sdk用于云端开发,但是相比已经有封装好的架构,老板们不会冒这个风险,让我使用sdk进行开发。对于程序员来说,没有代码的程序是没有灵魂的,但老板的话还是要听的,代码还是要敲的,于是继续我未完成的物联网架构项目,在原来的基础上再进行重新搭建,完善之前的错误。也就有了这一个开始,Iot项目。 ------ 本次项目是和我的一个大学朋友兼舍友一同开发,从最底层的硬件到云端然后到前端,有必要可以弄一个app,分工合作,白天上班,晚上项目,两不误。我这边大概任务是硬件和前端,后端和数据库由友人负责。各自完善自己的模块和开发文档,及时提出项目需求,完善架构搭建。 暂且不提后台开发如何搭建,我先完成我这硬件的基本工作。 由于我们分工合作,所以云端服务器不需要我参与,我直接就可以开发硬件端。 通常,在设计嵌入式系统的时候,我们需要去考虑不同维度的系统要求。由于我们需要网络功能支持,需要有强劲的处理器,以及一个号的协议支持库。如果需要考虑更好的扩展性及软件支持,我们就会考虑使用嵌入式Linux系统。市面上有不同的基于ARM处理器的Linux系统开发板,由于种类繁多、系统不兼容等问题,在这里,我们使用树莓派来作为物联设备。 在这里我们用的是操作系统Raspbian(基于Debian的ARM hard-float(armhf)架构)。这意味着,可以用python、Ruby、java、Node.js等脚本语言来开发我们的项目。 由于第一次使用树莓派进行硬件开发,我们先做一个LED Demo。 ### 一、用Raspberry Pi来读取数据 #### 1、SSH远程登录 树莓派在官网上下载系统并烧入,具体教程网上一大把,自行搜索。在烧入的SD中盘名为boot的根目录新创一个名为ssh的文件。然后把sd卡装入树莓派中,上电,使用网线把树莓派与使用电脑连接到同一网段,打开电脑ssh连接工具Putty或SecureCRT。如图是Windows系统下Putty软件的截图。 ![Iot1.png][1] 这里192.168.8.119是Raspberry Pi的IP。具体IP可以进入你的路由器中在查看。温馨提示:Raspberry Pi的默认用户是pi,密码是raspberry。可以执行一下sudo raspi-config来执行一些相关的配置 ![Iot2.png][2] #### 2、使用Raspberry Pi控制LED灯 在软件领域,人们用的是“Hello World”实现第一个Demo,硬件领域,这个“Hello World”就是点亮LED。 首先我们先了解树莓派的GPIO引脚图。 ![rpi-pins-40-0.png](https://mufeng-blog.oss-cn-beijing.aliyuncs.com/usr/uploads/2019/03/64976332.png) 由于Raspbian自带有两个python版本(python2.7,python3.5),所以本次试验直接使用的python作为编程语言,所需要预先的准备好所需模块。目前仅仅需要使用RPi.GPIO。 ``` sudo apt-get -y install python3-rpi.gpio # 如果不是python3, 可以尝试 sudo apt-get -y install python-rpi.gpio ``` 创建一个文件demo.py ``` # demo.py LED import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(26, GPIO.OUT) # 设置为主机输出 while 1: GPIO.output(26, HIGH) # 高电位 3.0V time.sleep(2) GPIO.output(26, GPIO.LOW) # 低电位 time.sleep(2) ``` 由于GPIO库有两个不同的引脚编号方式,一种是开发板上的自然编号,另一种是对应于开发板上的Broadcom处理器的编号(又称为BCM GPIO编号)。这里使用的是BCM编号。 ![Iot3.png](https://mufeng-blog.oss-cn-beijing.aliyuncs.com/usr/uploads/2019/03/1161420210.png) 这样就完成了led的控制,如果放到互联网上,加上订阅与发布功能就能控制和发布消息。下一步就是连接感应器,获取设备信息并根据指定的格式发送到云端服务器。 [1]: https://mufeng-blog.oss-cn-beijing.aliyuncs.com/usr/uploads/2019/03/4142408689.png [2]: https://mufeng-blog.oss-cn-beijing.aliyuncs.com/usr/uploads/2019/03/1986205573.png 打赏: 微信, 支付宝 标签: iot, 树莓派 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。