不教学生的教师 发表于 2020-2-24 23:31:38

用手机App通过Easy Iot物联网平台控制Arduino硬件

用手机App通过Easy Iot物联网平台控制Arduino硬件
      15年在一次创客教育培训活动中,人大附中的小创客们就让我见识了Arduino开源硬件无所不能的强大功能,从那时起我的心就沦陷在了Arduino开源硬件里。可每年辅导学生参加机器人竞赛从市赛、省赛再杀入国赛,这一路下来就足足需要花费十个月的时间,在这十个月里,所有的业余时间都被学习新知识、研究方案、辅导学生所占用,因此5年来一直没有机会深入的学习Arduino开源硬件。今年科协和电教馆的机器人竞赛都取消了FLL项目,这对于我来说是坏事也是好事,正好趁这个空档好好学习一下向往已久的Arduino开源硬件。      于是在上学期入手了一套Arduino器材,器材附带有学习资料与配套的多种编程软件。本人虽接触机器人竞赛十多年了,但一直使用图形化编程软件,在编程方面纯属菜鸟一枚,因此在学习时选择了上手较快的Mixly,但在学习的过程中还是遇到了许多问题,于是就在附带的电子版资料中查找解决办法。翻来翻去没找到解决问题的方法,却一不小心打开了另一种图形化编程软件——Mind+,一打开便被它强大的兼容性吸引了,既能像Scratch一样完成纯软件编程,又支持主流的Arduino、Micro:bit、掌控板等多种主控板硬件编程,更神奇的是还支持语音识别、图像识别、物联网、语音合成、人脸识别等高级的人工智能模块,而且还有专门的论坛与社区,提供交流与学习的平台。本来还计划花大把时间去学习代码编程提高自己的编程水平,以便能制作高大上的创意作品,但Mind+真的是编程菜鸟的福音,有了它一切都变得So easy了。       19年10月份,在第五届全国青少年创意编程与智能设计大赛中,看到一些中学生的项目是用手机App控制或协助机器人来完成任务,于是就想自己要能做一个多好呀。回来后就开始在网上搜集资料、学习教程,但都是C语言或python语言,根本看不懂,只好下决心从零开始学代码编程吧。但在发现Mind+后,情况就发生了转机,在短时间内完成作品就成为了可能。    今天给大家分享的这个作品,如果用代码来编程,没有一两年的系统学习是做不出来的,但用Mind+和App Inventor来编程,在业余学习一个多月后,就能上手了。不得不敬佩一些大师,多么高端的东西也能图形化了。       项目名称:用手机App通过Easy Iot物联网平台控制Arduino硬件       项目简介:本作品要实现的主要功能是(1)通过手机APP页面上的按钮控制与Arduino主控板连接的LED灯的亮灭;(2)在手机APP上查看Arduino主控板A0端口模拟传感器的实时读数。       准备事项硬件:ArduinoUno主控板×1面包板×1DF OBLOQ物联网模块×1LED灯×1电位器传感器×1导线若干软件平台:Mind+(Arduino主控板编程)App Inventor 2(编写安卓手机APP,网址:https://app.wxbit.com)Easy iot物联网平台(手机和Arduino主控板数据交互平台)       制作过程    一、进入esayiot平台注册自己的账号,并创建设备。      中国服务器:https://iot.dfrobot.com.cn    注册完成登陆自己账号进入物联网平台,进入物联网平台后,点击顶部菜单的“工作间”,在工作间里即可新建自己的设备,命名为APP,也可以随便起个名字。这个设备就是用来发送和接收消息的。    图中标记的参数需要对应填入到mind+的MQTT初始化参数和App Inventor 2的MQTT客户端属性中。    二、编写安卓手机APP      1、用浏览器打开网页https://app.wxbit.com,用QQ账号授权登录。       2、用App Inventor 2编写APP程序。    如果你还不会使用App Inventor 2,那就不用自己编程了,App我已写好,你需要把文件iotbd.aia导入后,先修改一下MQTT客户端1属性栏中的“用户名称”和“密码”两个参数,然后再点击“逻辑设计”转到代码编辑页面,将程序中所有的消息主题修改为物联网平台上Topic栏目里的内容。         
      
             MQTT客户端1属性栏中要填写的内容,一定要填写准确,否则无法连接物联网。我在做的过程中就因为服务器地址没填对,手机老是连不是物联网。在论坛里看了一整天的教程和贴子出也没找到关于这个地址的准确内容,后来就从多个贴子的内容中找规律推测,不断的试验,才试出了正确的地址。(关键是从DFBJKmr6VoQ发的贴子“让小朋友们打造自己的手机APP,通过OBLOQ-IOT联网控制MI...”https://mc.dfrobot.com.cn/thread-276197-1-1.html中找到了蛛丝马迹。)    服务器URL填“tcp://iot.dfrobot.com.cn:1883”。为什么这样填写我也不太清楚,现在想想可能是“tcp://”类似于网址的前缀,“iot.dfrobot.com.cn”是服务器网址,1883是MQTT协议默认端口号。    用户名称填自己注册的物联网平台上Iot_id(user)中的信息,密码填物联网平台上Iot_pwd(password)中的信息。       3、将项目生成APK,并通过扫描二维码,将APK文件下载到你的安卓手机,然后安装这个APP。打开APP后,等待大约1秒在页面上就能看到“物联网连接成功”的提示,随后手机会向物联网发送“开始测试”,手机页面也会显示“物联网已收到:开始测试”。这时调试过程结束,你的手机APP就能投入使用了。
    打开刚才注册登录的Easy Iot物联网平台,点击“查看详情”,在新页面下方的“查询结果”中也能看到手机发来的测试消息内容,手机与物联网的连接就好了 。   
         三、连接Arduino硬件,给Arduino硬件编程。      1、硬件连接。LED灯的vcc接Arduino板6号引脚,gnd接面包板上的负极接口。电位器传感器的vcc、gnd分别接面包板上的正负极接口,out接Arduino板A0引脚。DF OBLOQ物联网模块vcc、gnd分别接面包板上的正负极接口,tx、rx分别接Arduino板的2、3号引脚。这里的tx、rx用的是软串口连接,如果接硬串口0、1引脚,会影响程序的上传。          2、程序编写。      首先是配置物联网模块的参数。          程序如下图           3 、将程序上传到Arduino板。    程序上传后,等待3-5秒物联网模块的指示灯,由红色变为蓝色再变为绿色,这时Arduino板与物联网就连接成功了,Arduino板的板载LED灯(接在13号引脚)也会闪烁5下,同时在手机APP页面上会看到Arduino板发送给物联网的信息“物联网收到:你好”。             
      这时在手机的输入框中输入“on”,点击“发送”按钮,连接在Arduino板的LED灯就会变亮;输入“off”,点击“发送”按钮,连接在Arduino板的LED灯就会灭掉;输入“kan”,点击“发送”按钮,手机页面上就会显示Arduino板A0端口的当前读数;如果用手扭动电位传感器,A0端口的读数波动超过20,那么Arduino板也会主动向物联网平台发送当前的读数值。
    不管是手机发送的数据还是Arduino板发送的数据都会在物联网平台上显示出来,同时物联网平台上的数据手机和Arduino板也都能读取,从而实现手机与Arduino硬件的交互控制。       附件:APP程序下载网址链接:https://pan.baidu.com/s/1-2Ur4HLn1O6fa7uRrtSzvg                            提取码:8wpa               Arduino程序下载网址链接:https://pan.baidu.com/s/11iZmcyOvOtTGJiKXbQNu6g                            提取码:fywj


汤果 发表于 2020-2-24 23:58:34

很棒的分享

rzyzzxw 发表于 2020-2-25 08:31:51

喜欢你{:6_213:}

sunkf 发表于 2020-2-25 11:01:40

不教学生的教师 发表于 2020-2-24 23:31
用手机App通过Easy Iot物联网平台控制Arduino硬件
      15年在一次创客教育培训活动中,人大附中的小创客 ...

学习了,好帖子

FOFO 发表于 2020-3-19 11:18:28

谢谢教程

lsj 发表于 2020-3-30 07:03:52

在iot.dfrobot.com.cn中再增加一设备APP编码怎么写

不教学生的教师 发表于 2020-3-31 18:01:49

再加一个消息主题就可以了

1135525136 发表于 2020-10-2 22:27:01

谢谢分享

鑫想事成 发表于 2020-12-9 20:08:12

按照您的程序,我在iot端没看到数据,怎么回事啊?

鑫想事成 发表于 2020-12-17 22:15:37

变量 ( A0值1)是怎么弄出来的,还请告知,谢谢

瞎鼓捣 发表于 2020-12-22 18:15:02

鑫想事成 发表于 2020-12-9 20:08
按照您的程序,我在iot端没看到数据,怎么回事啊?

可能是物联网模块没有连接到物联网平台,手机端能看到物联网平台返回的数据吗?

瞎鼓捣 发表于 2020-12-22 18:19:07

鑫想事成 发表于 2020-12-17 22:15
变量 ( A0值1)是怎么弄出来的,还请告知,谢谢

A0值是每一次循环程序开始时读取一下A0端口的读数,A0值1是在每一次循环程序结束时读取一下A0端口的读数,这两次的读数进行比较,如果相差大于20就主动向物联网平台发送温度值。

DFByclJNnuE 发表于 2021-6-24 13:30:07

谢谢你的分享。目前wxbit.com用不了,验证不了

ldfzwx 发表于 2021-10-21 14:22:40

感谢分享,学习了

发表于 2022-4-14 11:38:59

想问一下,Arduino UNO可以连接Blynk吗?

瞎鼓捣 发表于 2022-5-15 11:35:54

诩 发表于 2022-4-14 11:38
想问一下,Arduino UNO可以连接Blynk吗?

Arduino UNO本身不能连接Blynk,可以用Esp8266连接Blynk,然后通过串口把信息发给Arduino UNO,但是用Mind+编程软件不好实现,可以用Mixly编程软件试试。Mind+编程软件建议使用掌控板连接Blynk。

发表于 2022-5-16 07:53:03

瞎鼓捣 发表于 2022-5-15 11:35
Arduino UNO本身不能连接Blynk,可以用Esp8266连接Blynk,然后通过串口把信息发给Arduino UNO,但是用Mind ...

哦哦,好的

威威子爱捣鼓 发表于 2022-6-26 02:06:15

这篇文章很有实际意义!手机软件编写到硬件开发,这对创客项目创作帮助很大,可以自己设计相应的简单APP控制。

瞎鼓捣 发表于 2023-10-17 20:14:52

谢谢鼓励!<div class="reference"><p><a href="https://mc.dfrobot.com.cn/home.php?mod=space&uid=838339&do=profile" target="_blank">威威子爱捣鼓</a> 2022-06-26 02:06:15<p><div class="quote">这篇文章很有实际意义!手机软件编写到硬件开发,这对创客项目创作帮助很大,可以自己设计相应的简单APP控制。</div></div>

肖肖1 发表于 2023-11-5 20:30:17

你好,在mind+1.8.0中并没有这个程序块

lixy000 发表于 2024-5-14 00:21:31

这个app程序用行空板能做吗
页: [1]
查看完整版本: 用手机App通过Easy Iot物联网平台控制Arduino硬件