Arduino上传数据至贝壳物联并与FPGA进行交互

         本篇实现Arduino与FPGA交互,固然也没有什么新的协议,仍是基于串口通信,如今学一个串口通讯基本上能够驱动大多数模块了,并且和各类单片机无缝数据交互,Arduino因为其强大的库函数支持,在实现不少事情上会方便不少,好比串口通信,Arduino就两行的代码,Verilog至少也得上百行,可是从学习知识的角度上来讲,学Arduino也只不过是学了一门软件操控硬件的方法罢了,并且不少东西都简化了,跟在电脑上编程没什么两样,还不如学学单片机。最起码还能了解其内部各类寄存器的使用。我用Arduino也就是玩玩,固然仍是有了不少不同的体验,都知道Arduino是开源项目,咱们能够无偿使用别人的代码,固然也要分享出来本身的代码,将开源进行到底。html

         Arduino的编程语言没啥说的,使用一种简易版的C语言编程,通常有C语言基础的朋友应该两天就上手了,而后就是利用各类函数了,我在作实验的时候,学到了一个函数,map函数。如今来讲说吧!下面张图实际上是很形象的。编程

         再看一下官方给的解释,即把一个数从一个范围变换到另外一个范围。微信

map(value, fromLow, fromHigh, toLow, toHigh)
Description网络

Re-maps a number from one range to another. That is, a value of fromLow would get mapped to toLow, a value of fromHigh to toHigh, values in-between to values in-between, etc.
         我使用Arduino采集到土壤湿度模块的数据,200-100不等,Arduino读取模拟量的最大数值为1023,而这么大的数据,也并非咱们须要的,咱们须要的是一个百分数,因此使用map函数,把0-1023这个区间投影到0-100这个区间,那么得出来的数据就能够近似的认为是土壤湿度百分比了。app

Arduino本来的串口只有一个,那么若是必需要用两个或以上串口来收发数据怎么办,这个时候使用软件模拟串口就能够了。官方给的配置历程,调用SoftwareSerial库函数,编程语言

初始化配置波特率函数

输出的时候使用Serial.write()函数,这里要注意的是Serial.print输给串口的是ASCII码值,Serial.write输入给串口的是真实数值,我这里须要的是arduino采集到的土壤湿度,固然但愿直接是十六进制的代码了。学习

         实现数据上传至贝壳物联,最终要的是须要ESP8266 WIFI模块了,模块配置以下。ui

ESP8266模块支持STA/AP/STA+AP 三种工做模式。
*STA 模式:ESP8266模块经过路由器链接互联网,手机或电脑经过互联网实现对设备的远程控制。
*AP 模式:ESP8266模块做为热点,实现手机或电脑直接与模块通讯,实现局域网无线控制。
*STA+AP 模式:两种模式的共存模式,便可以经过互联网控制可实现无缝切换,方便操做。.net

咱们这里为了方便直接设置成两种模式共存的状态。

ESP8266的接口以下图所示:

其中须要用的端口是TX,RX,CH_PD,VCC,GND

TX,RX分别接USB转TTL接口的RX,TX,

CH_PD,VCC接3.3v(切记必须为3.3v)

GND接地

联接物联网

打开串口调试助手,搜索串口,将波特率设置为115200,而后将ESP8266的VCC引脚拔下在插上,会返回一串乱码和ready,表示链接正常,若是没有返回值,检查引脚是否链接正确。

 

发送AT命令:+++,返回CLOSED,表示关闭以前设定的模式。

 

发送AT+CWMODE=3+回车,设置WiFi模块为AT/AP模式,(WiFi模块的知识须要看手册),返回OK,表示设置成功

 

发送AT+CWJAP=”WIFI name”,”WIFI 密码”+回车,链接WiFi。返回OK表示链接正确。

 

而后发送AT+CIPSTART="TCP","www.bigiot.net",8181+回车,返回如图所示,表示链接到贝壳网。

 

这样WiFi模块就配置好了,而后将WiFi模块链接到开发板上,通电后,就会自动链接到贝壳网上了。

WiFi模块配置好了以后。咱们这里用第一个WiFi模块配置链接到贝壳网,贝壳网是一个物联网,能够实现与硬件进行远程交互。

注册一个贝壳网帐号www.bigiot.net

点击添加一个设备

添加一个数据接口,这里能够修改借口类型

添加完成后,每个设备都有本身专属的ID,APIKEY,

每一个设备有对应的数据接口,也有对应的ID

须要几个数据接口你就添加几个,我这里添加了四个。而后根据代码将全部模块链接,链接设备,上传程序,注意,上传Arduino程序的时候必定要将0、1引脚拔下,不然确定上传失败。上传成功后,打开数据接口,能够看到数据实时上传了,贝壳物联还有相关的APP和微信公众号,只要设备能连上网络,即可以对设备进行操控,因此远程操控也毫无压力。

经过软串口发送数据给FPGA,FPGA经过处理后,发送数据到上位机,这样便实现了FPGA和Arduino的数据交互,这样便实现了物联网。

         固然Arduino还有不少方便又好玩的玩法,有兴趣的朋友也能够继续玩下去。若是你想要我这个实验的源代码,请在微信订阅号后台回复“Arduino”便可获的源代码和库文件哦!须要本设计FPGA部分代码后台发消息,联系订阅号主,便可得到!

 

转载请注明出处:NingHeChuan(宁河川)

我的微信订阅号:开源FPGA

若是你想及时收到我的撰写的博文推送,能够扫描左边二维码(或者长按识别二维码)关注我的微信订阅号

知乎ID:NingHeChuan

微博ID:NingHeChuan

原文地址:http://www.cnblogs.com/ninghechuan/p/7751382.html 

相关文章
相关标签/搜索