电子说
第1步:材料
在开始之前,您需要注意以下几点:
NodeMCU ESP8266蓝牙模块
跳线
面包板
Arduino开发板
第二步:下载
转到http://www.mingw.org/wiki/Getting_Started,然后下载mingw-get-setup.exe。请遵循安装说明。进入软件包选择和安装时,请确保安装msys-base,mingw32-base和mingw-developer-toolkit。
下一步,请访问https://git-scm.com/下载/赢得下载Windows版Git Bash。下载.exe文件,然后按照其上的安装说明进行操作。
转到https://curl.haxx.se/download.html并将curl-7.49.1.zip下载到您的计算机。提取.zip文件夹,您就可以开始使用!
最后,从https://en.osdn.jp/projects/ttssh2/releases/下载Tera Term并按照安装说明进行操作。
步骤3:M2X入门
转到https://m2x.att .com/并创建一个帐户。
在设备选项卡下,单击左侧面板上的“新建”按钮,然后选择创建新设备。
创建后设备上,添加新的流。创建它之后,您现在可以登录并将值保存到其中。
步骤4:创建脚本
打开Git Bash在计算机上,然后导航到要保留脚本的文件夹。 Git Bash使用Linux之类的命令(cd,vim,mkdir等)。要转到文件夹,请使用不带引号的“ cd”。例如,我想将文件保留在桌面上,因此在git bash中,我键入了“ cd desktop”。
键入“ vim script_name.sh”以创建一个新的脚本文件(并替换为您的脚本名称)。复制脚本并将其粘贴到文件中。
脚本的运行方式如下:
脚本将连续运行,直到到达文件末尾,并且每次读取一行时,脚本都会保存任何内容它读入一个名为‘line’的变量
接下来,我们获得ISO8601格式的日期(YYYY-MM-DDTHH:MM:SS.nnnZ),因为我们需要这样做才能将数据发送到M2X云使用curl
现在将读取的值(行)发送到设备并使用curl流化。确保使用您自己的设备信息替换curl命令中的“设备ID”,“流名称”和“设备API密钥”。
将curl请求的响应保存到名为“ send”的变量中。
从send变量获取状态。如果被接受,则继续该文件。否则,请退出程序。
第5步:Arduino代码
我们将使用来自的SoftwareSerial库Arduino IDE,以便Arudino可以将数据发送到HC-05蓝牙模块,该模块随后将通过蓝牙将数据发送到计算机。
将HC-05的TX连接到Arduino的数字引脚10。
将HC-05的RX连接到Arduino的数字引脚11。
将HC-05的GND连接到Arduino上的GND。
将HC-05的VCC连接到Arduino上的5V。
如果要更改发送数据的时间间隔,请确保脚本和Arduino代码中的时间间隔相同。
注意:我只是向云发送随机数,但是您总是可以获取一个传感器,并修改Arduino代码以读取传感器输入,然后将该数据发送到HC-05模块,而不仅仅是向其发送随机数。
步骤6:一切就绪
现在是时候将计算机与HC- 05模块!转到设置-》更改PC设置-》 PC和设备-》蓝牙。确保计算机上的蓝牙已打开,并确保HC-05模块已打开(模块上的红色LED指示灯将快速闪烁)。从蓝牙设备列表中选择HC-05,然后输入配对代码。如果您的HC-05具有默认设置,则配对代码应为 1234 。
打开Tera Term并连接到HC-05。与它配对后,应该会显示两个COM端口。选择编号较低的一个。如果成功连接HC-05,则其上的红色LED指示灯应大约每1或2秒快速闪烁两次。
我们现在需要记录HC-05发送的所有数据。转到文件-》日志。..,然后选择保存日志的位置。
步骤7:运行程序
现在您已经有了Tera Term的日志,可以将所有传入数据保存到文件中,您可以将Arduino程序上传到Arduino。一旦上传,您的数据值应该开始以固定的时间间隔出现在Tera Term窗口中。该数据将保存在文件中,因为我们选择了记录会话。
通过打开Git Bash并转到脚本的位置来运行脚本。要运行该脚本,请键入“ 。/script_name.sh file_name”,并将您的脚本名称和Tera Term日志作为文件名。
现在,您可以登录M2X并看到其中的数据值您的设备流!
步骤8:AT&T流程
使用M2X,我们可以看到已发布的值的列表或图形。此步骤将向您展示如何在AT&T Flow中检索这些值,以便您可以对数据进行某些操作(发送电子邮件或文本通知等)。
在flow.att.com上创建一个帐户。然后单击左下角附近的(+)图标以创建新流程。
从“注入”节点开始。将其设置为在开始时注入,并将时间间隔设置为与Arduino代码和脚本设置为相同的时间间隔。
添加一个Function节点(我称为mine Get M2X Value)以从M2X获取数据值,并将Inject节点的输出连接到Function节点的输入。功能节点的代码在上图中。
添加一个M2X节点,并将其连接到功能节点。
将M2X节点的输出连接到JSON节点,以便将M2X数据转换为javascript对象。
将JSON节点的输出连接到另一个函数节点(我称为mine Parse Output)。上图中是第二个功能的代码。此函数从msg.payload中查找并获取值,并将其转换为数字。如果您的流发送非数字数据,则需要更改函数以不将值转换为数字。另外,您可能需要根据每个值的大小来更改从中获取值的索引。
全部0条评论
快来发表一下你的评论吧 !