给师弟做了个物联网的大实验,感觉还挺有用的。下面是详细教程
思想:Arduino板通过DHT11传感器采集温湿度通过串口(也可以通过网卡)发给树莓派,后端发给前端html网页(猛男专用粉色)。
实验叙述:1. 查看树莓派手册按照手册下载系统并制作sd卡(有视频),打开sd卡(读卡器)在root文件夹下建立文件,名字为ssh,无后缀,随后SD卡插入树莓派。
2.SSH连接树莓派,并使用VNC远程操控
(1):树莓派ip查询
a:自身电脑共享网络查询(实验推荐)
首先网线将树莓派和电脑连接,然后进行配置,必须联网。右键点击左下角网络。
插上树莓派之后注意看是以太网1或者2。随后右键点击以太网属性,选择第五个协议版本点属性,配置ip
下载安装Advanced IP Scanner
搜索栏输入以太网的ip,搜到的就是树莓派的ip
SSH连接,配置VNC连接及分辨率(看资料视频)
SSH连接过一次,不必在连接第二次
- 进入树莓派后nodejs安装教程:
有些同学拿到的板子如果有nodejs和npm不必在安装,查看办法:点击命令窗口,输入node -v 回车查看node版本;输入npm -v 回车查看npm版本。
没有node与npm的小伙伴,打开树莓派自带浏览器,自行下载,下载后解压到/home/pi/中。
下载:https://nodejs.org/en/download/
安装serialport通信包(串口)。按照实验指导书进行,去网站下载,然后解压,安装与node一样,在树莓派浏览器中打开网站,进行下载后解压到/home/pi中(会自动保存到/node-serialport-master文件夹中)。https://github.com/EmergingTechnologyAdvisors/node-serialport GitHub - serialport/node-serialport: Access serial ports with JavaScript. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!
接下来写arduino端 !!
- 使用电脑的arduino编程软件对arduino开发板烧写程序,程序在文件夹里名为:TempHumid.ino (下图因为版本问题写的是one.ino 但是在程序里写的是TempHumid.ino)
- 对树莓派编写程序。
首先树莓派程序创建也是在node-serialport-master通信包安装路径下。
Port是串口实验,大家也建立Port文件夹,即在node-serialport-master路径下。在Port文件夹创建以下三个程序,la.js(抱歉因版本问题图中的la.js,程序里应该是TH.js) package.json serial.html
程序在下面链接里面,将代码复制在上述对应文件里,注意改后缀。
la.js(实则是TH.js)的代码如下:
其中html
- 将树莓派与Arduino连接起来
- 用命令ls -l ttyS*或者ls -l tty*或ls -l /dev/tty*或者ls -l /dev/ttyUSB* 查询树莓派使用的串口号,将其信息填写到la.js程序里。
- 在树莓派命令窗口运行实验TH.js程序,命令为node TH.js,再打开浏览器输入 ip:3000(这里的ip是实验最开始查到的树莓派的ip,我的是192.168.137.156,每台电脑都不一样,必须自己查!),3000为默认端口号,弹出界面后实现功能。
(1)在命令窗口中切换到目标路径用:cd+空格+目标文件路径 回车。
(2)取消node进程,使用ctrl+c键。
可能会报错,缺少serialport模块,使用npm install serialport命令在node-serialport-master通信包路径下进行安装。
可能会报错,缺少express模块,使用npm install express命令在node-serialport-master通信包路径下进行安装。
然后继续使用node TH.js,再打开浏览器输入ip:3000 (ip同上),实现功能。
最终结果为: