前言
国内比较常用的图形化编程软件就是Mind+和Mixly,之前做了Mind+的连接MQTT的第三方用户库,本想在Mixly上也实现的,但是由于Mixly的ESP32支支持Python模式,只能使用C来开发Arduino,所以就用EMW3080的芯片实现了Arduino连接阿里云的第三方库。下面说一下实现的过程。
一、硬件清单
主控Arduino uno、EMW3080
硬件连接
EMW3080 ——————————————————Arduino UNO
VIN ——————————————————————5V
GND ——————————————————————GND
RXD ——————————————————————1 (TXD)
TXD ——————————————————————0 (RXD)
二、实现过程
1、Mixly库说明
Mixly是一款图形化编程软件,即使用户不懂C语言的语法,也可以利用图形化程序编写Arduino程序。Mixly的基本原理是将图形化程序转化成C语言,再利用Arduino
IDE上传到硬件中。在我们动手编写第三方库之前,先来了解Mixly是如何将图形化程序转化成C语言的。
整个库的目录中有以下文件
xxx.xml文件
定义了图形块的基本信息,比如类别、名称,ID等。
block/xxx.js文件, 定义了每个图形块的样式,比如颜色、文字、图标等。
generator/xxx.js文件
将图形块程序转化成C语言的关键部分。
language/xxx/en.js(zh-hans.js)等文件
语言文件,en.js是英文语言文件,zh-hans.js是简体中文语言文件,zh-hant.js是繁体中文语言文件。该类文件定义了图形块程序中每一个字段显示的文字内容。
└─xxx // 项目根目录
├─ xxx.xml // 本用户库的配置文件
│
├─ block
│ xxx.js // 图形化样式文件
│
├─ generator
│ xxx.js // 图形块转C语言文件
│
└─ language
└─xxx
zh-hans.js // 简体中文语言文件
我的文件结构如下:
2、文件编写
(1)编写xxx.xml文件
block 中的 type 相当于积木块的ID,需与block/xxx.js、generator/xxx.js中 “Blockly.Blocks.XX” 的XX一致
value是积木块中的参数,name为参数的ID,后面会调用到
shadow 中 type 为输入框中类型,text 表示为文本型
<!--
type="company"
block="block/xxx.js"
generator="generator/xxx.js"
language="language/xxx"
-->
<script type="text/javascript" src="../../blocks/company/xxx.js"></script>
<script type="text/javascript" src="../../generators/arduino/company/xxx.js"></script>
<!--引用所有写好的模块-->
<category id="mixly_EMW3080" name="EMW3080" colour="20">
<category id="mixly_Aliyun" name="阿里云" colour="160">
<!--导入库文件的积木-->
<block type="include_lib">
</block>
<!--连接Wi-Fi的积木块-->
<block type="wifi_connect">
<value name="SSID"> <!---->
<shadow type="text"></shadow> <!---->
</value>
<value name

本文介绍了如何使用Mixly图形化编程软件开发Arduino UNO与EMW3080连接阿里云的第三方库。详细讲解了从硬件连接到编写xml、js语言及生成器文件的过程,并提供了测试库的方法。
最低0.47元/天 解锁文章
1353

被折叠的 条评论
为什么被折叠?



