语言无好坏,适合就行......

选择一种语言进行开发,其实就是选择一款趁手的工具,比如拧螺丝,套筒扳手显然要比活动扳手更方便。工具趁不趁手,使用了才知道,所以不要拒绝去学习新的语言。

一、关于Lua

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。简单而言,Lua就是简单封装后的C,用来简化C中繁琐的操作,它设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

二、导入Lua

通常,嵌入式模组厂商会将Lua脚本植入模组的固件中,开发者基于模组的固件进行开发即可,关于刷固件,不同的模组可能会有不同的工具,现以合宙的Air302模块为例进行说明:

在VScode中点击File,然后选择Open Folder (Open Folder表示打开一个文件夹,Open File表示打开一个文件)

开发包的文件结构图如下:

demo:存放示例程序,里面有阿里云示例程序、串口示例程序、IIC示例程序、GPIO示例程序等;

FlashToolCLI:存放烧录工具,其中disk文件夹下会生成.luac文件;

lib:存放示例代码中所引用的模块,其实主要引用的是sys.lua和mqtt.lua;

tools:存放编译工具,主要是luac_536_32bits.exe;

user:存放用户程序,一般将要烧录的程序放到此处;

userdoc:存放一些文档;

剩下的就是一些文件:.ec是固件、local.ini是配置文件、air302.py是Python脚本,整个下载的过程其实就是这个脚本通过调用一些exe文件来进行,Python作为脚本语言,使用起来确实还算顺手。

打开local.ini来配置一些参数:

这里面配置的是一些路径,最主要的是COM_PORT,填入USART口的端口号即可(若不确定端口号,可以打开串口助手来查看);

然后打开一个TERMINAL并运行air302.py脚本:

lfs:编译指令;

dlfs:下载脚本程序;

dlrom:仅下载固件;

dlfull:下载脚本程序及固件;

若程序无异常,将自动进行下载:

下载的速度不算快,可能和波特率低有关;

下载完成后会有提示:

需要注意的是,下载时要将串口助手关闭,不然会占用串口,此外还要确保开发板处于下载模式;

最后打开串口然后按开发版上的RESET键:

串口的调试信息将会打印出来;

三、编程开发

由于最近在使用阿里物连网,所以就顺理成章的用连接阿里物联网的程序:

程序都有注释,这一段是声明调用的部分,类似Python的import,以及C的Using

声明完成后就开始配置串口:

短短五行,就配置好了Uart,与C语言相比,lua真的减少了不少工作量。

接下来是重头戏--连云:

对于连接阿里物联网云,底层的代码已经有了,我们需要做的仅仅是填入设备的三元组(ProductKey、DeviceName、DeviceSecret),这似乎也太简单了!

程序到sys.run()就算是结束了,稍微熟悉下lua,这个程序还是无难度的。

四、调试运行

使用lua的OS来连接阿里物联网云,真的比C更快、更轻松!

不过目前还有一点小问题还没有解决,由于阿里物联网云使用了物模型,在用APP来控制时,总是要对物模型进行检测,这个有点让人想不通。

五、体验心得

尽管lua比C更方便快捷,尽管lua更适合新手入门,但C还是不应该被跳过,因为要学书法,正楷总是绕不过去的。

lua打开是二进制代码_物联网的构建:使用Lua高级语言进行嵌入式开发相关推荐

  1. 合宙新一代物联网开源操作系统LuatOS,开启行业嵌入式开发新生态!

    合宙新一代物联网开源操作系统LuatOS,开启行业嵌入式开发新生态! 开源开放,创新突破,让万物互联更简单! LuatOS是什么? LuatOS特色及应用 LuatOS资料下载及技术支持 开源开放,创 ...

  2. python嵌入式开发实战_嵌入式Qt实战教程 PDF 高清版

    给大家带来的一篇关于嵌入式相关的电子书资源,介绍了关于嵌入式.Qt实战方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小43.4 MB,陈志发,王苑增编写,目前豆瓣.亚马逊.当当.京东等电 ...

  3. lua打开浏览器并加载网页_使用Lua做Web开发

    Lua应用程序与框架 WSAPI 从Lua Web应用程序抽象Web主机服务器的API Xavante 提供WSAPI接口的Lua Web服务器 Orbit Orbit是Lua的MVC Web框架,完 ...

  4. pico8 掌机_使用Pico-8构建自己的复古游戏

    pico8 掌机 An example of the kinds of pixel animations people make in Pico-8. 人们在Pico-8中制作的各种像素动画的示例. ...

  5. 立可得_第1章_物联网亿万级通信一站式解决方案EMQ

    立可得_第1章_物联网亿万级通信一站式解决方案EMQ 文章目录 立可得_第1章_物联网亿万级通信一站式解决方案EMQ 物联网亿万级通信一站式解决方案EMQ 1. MQTT 1.1 MQTT简介 1.1 ...

  6. lua菜鸟教程_初学者必看:Lua入门学习教程

    Lua入门学习教程是本文要介绍的内容,主要是来对Lua入门的一个学习,Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言.不幸的是,网上很少有关于这个语言的在线教程.我主要通过阅读其源代码来了 ...

  7. 物联网mqtt前端怎么开发_物联网世界中的前端开发

    物联网mqtt前端怎么开发 It's IoT Week at SitePoint! All week we're publishing articles focused on the intersec ...

  8. lua运行外部程序_二、C++调用Lua函数

    上一篇文章中我们已经把测试环境搭建完毕了,接下来就用上次的项目工程进行代码测试和分析. 这篇文章主要讲在C++中怎么调用Lua中的函数add,并且把lua中函数计算结果返回给C++,然后在打印出来计算 ...

  9. 密码学实验题_03.3_AES实验_利用Sage构建AES的S盒和逆S盒(基于阅读Sage数学库的Python代码)

    密码学实验题_03.3_AES实验_利用Sage构建AES的S盒和逆S盒(基于阅读Sage数学库的Python代码) 3.    AES实验 3)    (思考题)利用Sage构建AES的S盒和逆S盒 ...

最新文章

  1. simple css 汉化,Simple CSS(CSS文档生成器)
  2. linux 软链接_面试 | Linux 下软链接和硬链接的区别
  3. 今年双 11,阿里业务 100% 上云,云原生有哪些技术亮点?
  4. dbEntry.net CK.K的高级应用
  5. Linux基金会六大项目合并成LF Networking Fund
  6. php array colum,php5.5新数组函数array_column使用
  7. 某安全服务商发布会总结.md
  8. docker搭建nginx+php+mysql环境
  9. 社区活动 | Apache RocketMQ × Apache Flink Meetup · 上海站
  10. Java奖学金评定系统设计与实现
  11. 虾皮物流好不好SLS 异常件怎么处理?
  12. XDOJ最长单词的长度
  13. 外设驱动步骤和K66SDK库与龙邱库TPM模块整合过程
  14. 构思编辑器教你如何不用代码排版出好看的微信公众号文章
  15. SAP PS常用事务代码T-CODE
  16. 秒杀各种Pay?Samsung Pay支付宝功能率先体验
  17. 我用 Python 爬了点你们喜欢的电影,这些电影真的很不错
  18. SSL连接dh key too small
  19. HALCON学习笔记(四)——图像增强
  20. [技术讨论]运放的共模输入/输出电压设置不对怎么办?

热门文章

  1. 改:今天看到的一个有趣面试题:return *this和return this有什么区别?
  2. 【Linux】44.设置ubuntu电脑为简单的密码
  3. 5个让你充满健身动力的方法
  4. 八成Java开发者解答不了的问题
  5. CS231n课程笔记翻译:图像分类笔记(上)
  6. 为什么C++(感谢waterwalk翻译)
  7. CMSampleBufferRef 转换为UIImage
  8. 探索Elasticsearch集群API
  9. INTERSPEECH 2017系列 | 语音识别之语言模型技术
  10. js获取上传文件内容