本帖最后由 hanpanpan 于 2021-9-26 16:54 编辑
环境 硬件:树莓派 软件:点灯科技的NodejsSDK
实现功能 以前用esp8266时情况是这样: IDE中编写程序,然后烧录到esp8266,通电后esp8266里的程序通过连接点灯科技服务器使设备在线,这时手机app Blinker中的设备就在线,并可以通过app中的按钮发送数据到esp8266,从而控制esp8266的针脚 现在用树莓派也类似: 喜欢的IDE(推荐vscode)中编写程序,然后以服务的方式运行,这时树莓派中的node服务会连接点灯科技的服务器,手机app Blinker中的设备上线,通过app中的按钮发送数据到树莓派,从而控制树莓派的针脚
源码下载:
https://github.com/hanpanapn/blinker-js-demo
接下来开发程序了
项目目录: - ---src 程序代码
- |--main.js 主程序
- ---lib NodeJsSDK
- ---tsconfig.json ts配置,不可删除
- ---readme.md 帮助文档
- ---package.json npm包
- ---pm2.yml 服务启动配置
复制代码
基本主要代码: - import { BlinkerDevice } from '../lib/blinker';
- import { ButtonWidget, NumberWidget } from '../lib/widget';
- let device = new BlinkerDevice('秘钥');
- // 注册组件
- //在手机端app中的组件类型和名称要和这里的一致
- let button1: ButtonWidget = device.addWidget(new ButtonWidget('btn-123'));
- let button2: ButtonWidget = device.addWidget(new ButtonWidget('btn-abc'));
- let number1: NumberWidget = device.addWidget(new NumberWidget('num-abc'));
- let num = 0;
- device.ready().then(() => {
- device.dataRead.subscribe(message => {
- console.log('-----start');
- console.log('otherData:', message);
- console.log('-----end');
- })
- button1.listen().subscribe(message => {
- console.log('-----start');
- console.log('button1:', message.data);
- console.log('-----end');
- num++;
- number1.value(num).update();
- })
- button2.listen().subscribe(message => {
- console.log('-----start');
- console.log('button2:', message.data);
- console.log('-----end');
- // 其他控制代码
- })
- })
复制代码
开发环境运行:
生产环境运行:
总结: 本次代码上没什么,基本都是官方给的,主要是优化了项目目录,明确开发环境于生产环境的部署方式,生产环境的部署是用pm2,熟悉前端开发的朋友肯定会用,不熟悉的朋友可以先自学一下,有什么问题大家一起讨论
待解决的问题:
|