大连移动电源价格社区

DIY属于你的微信飞鱼

英鹏硬创2022-08-21 08:47:58

一、方案的制定

从准备参加创客马拉松上后, 为了能快速完成原型产品的设计,我们定的原则就是尽量能够利用我们现有的硬件、软件和云端服务等作为基础,在我们熟悉的方向如传感器、电机控制、社交网络编程等做一个相对跨界和好玩的产品原型,最开始我们定的是一个能够从微信查看的 PM2.5 太阳能气球,气球也买了,后来在网上发现一个可以拿红外线遥控器控制的小鱼,我们觉得挺好玩,而且似乎可以比气球更加有趣,于是我们就把方案调整为实现一个微信控制的飞鱼,飞鱼上再带一个 PM2.5 传感器,后来了解到飞鱼没法加太多的负重,因此又把 PM2.5 传感器去掉了,于是最后就成了一条纯粹的微信飞鱼。


初步的方案


从定下要做微信飞鱼,我们初步分析了可能的实现方案有以下几种:

1,通过微信直接连接飞鱼控制器

2,通过反向 NAT 方式连接飞鱼

3,通过 3G/4G 网络来控制飞鱼

3,通过云端服务连接飞鱼

无论采用哪种方式,其目标都是需要把微信上的控制命令通过网络传输到飞鱼控制器上,由飞鱼执行指定的命令。

l 方案一

从软件开发的角度来说应该是最简单的方式,比如说微信客户端和飞鱼都是同处一个 WIFI 网络内,比如说都是在 192.168.100.NNN 的网络中,就可以给飞鱼指定一个固定的 IP(比如192.168.100.10),然后在飞鱼上提供一个迷你 WEB 服务器,就可以通过一个 URL 访问到飞鱼;这种方式有几个限制,第一就是微信客户端和飞鱼必须同处一个局域网内,否则就无法连接到飞鱼,第二对飞鱼控制器的要求比较高,需要运行一个 WEB 服务器,这对于我们这个只有 20 KB 可用内存的飞鱼控制器确实是一个挑战(54 小时的时间确实让我们觉得有点不够用,2 倍的时间应用是没有问题的),基于以上二点,我们放弃第一个方案;


l 方案二

软件开发上跟方案一其实是差不多的,需要做的是在路由器上需要做一些网络穿透方面的配置,然后需要再申请一个动态域名服务,然后就可以跟方案一类似从微信控制到飞鱼了,这个感觉太麻烦,需要动路由器的设置,我们不想麻烦活动举办方;


l 方案三

通过 3G/4G 网络来控制飞鱼,这是在办公室中想象的,如果可以通过 3G/4G 移动网络实现飞鱼的控制,在加上太阳能,那就基本上随便找个地方就可以玩这个飞鱼了,可是让我们很失望的是活动场地居然没有中国移动和中国联通的 3G 4G 信号,于是只能使用 WIFI 信号了;


l 方案四

作为一个软件攻城狮,说实话心里总是隐隐约约对以上 1 2 两个方案感觉到不太爽,总觉得缺点什么,后来经过讨论觉得如果能做一个很多用户可以同时控制,让现场用户能够参与的微信飞鱼会更有意思,这样可以为整个创客马拉松带来一些娱乐性,因此经过几次团队的讨论,方案四就浮出了水面,初步定出的功能包括:

1)在微信中有个控制界面,包括抬头、低头、左转、右转、向前、停止等功能;

2)必须是关注我们公众号的用户才能参与;

3)每个用户一次只能有一分钟的飞鱼控制权,时间一到立即将控制权返回到系统中,界面中有倒计时功能;

4)为创造悬念,用户必须通过抢控制权的方式来参与娱乐;

5)我们团队自己必须能够有绝对的控制权,可以随时将用户的控制权收回;

6)在用户控制过程中,我们也可以随时向飞鱼发送命令,以协助用户对飞鱼的姿态进行调整。

正在现场开发


功能需求出来了,就开始分析能不能在这么短的时间内实现这些功能,首先开发上从飞鱼控制器为主转移到网站开发为主了,对于我这个对 NodeJS 非常熟悉的攻城狮确实是一个福音呀,第二 需要有一个消息传递系统来实现这么多控制命令的交互,这正好是我们以前做的物联网云端服务的一个基本功能,可以有很多的客户端和设备都通过简单的接口连接到一起,只要开发一些简单的代码就可以实现设备之间和 APP 之间的互操作,这看起来也不是什么问题,第三 需要针对微信浏览器设计几个WEB端界面。


二、 软件部分的开发

分析结束后,就可以进行开发了(时间太短,没时间设计了,就凭感觉写吧),大致模块划分如下:

(一) OSBean AIR 控制模块

基于 OSBean AIR 控制器,连接 OSBean 消息服务,等待接收指令,收到指令后执行相应动作;此模块基本上就是根据收到的指令,执行相应的动作,几乎所有复杂的通讯、设置等工作都有已有的 OSBean AIR 服务来完成;

要实现的指令包括:

  • 配重后移-抬头

  • 配重前移-低头

  • 左转

  • 右转

  • 前行

  • 停止

这个在 OSBean AIR 控制器中基本上就是设置电平的高低。


(二) 微信服务模块

实现微信服务号关注、微信菜单,微信控制权相关界面的显示;此模块是一个可以与微信实

现交互的 Web 程序,是使用 NodeJS 来实现的;

正在调试微信控制


(三) 控制权调度模块

调度抢占控制权的过程,发放、回收、锁定、释放控制权等操作;这是一个用 NodeJS 实现的 OSBean 消息服务的一个简单 APP


(四) 超级控制模块

不受控制权调度模块的管理,可以直接对飞鱼发送各种指令。这是一个用网页实现的 OSBean 消息服务的一个 HTML5 APP,运行在浏览器上。

经过 2 天的开发,基本上设想的功能都实现了,从微信上控制飞鱼的运动也还比较顺畅(如果现场网络好一些应该会非常流畅),除了实现这些飞鱼控制功能外,我们也顺手把 osbean 微信公众服务也完善了一下。


三、硬件部分的开发

首先,对其原来的红外控制系统进行分析,遥控系统包括一个红外发送管,红外信号调制电路,前、后、左、右以及连续左右摆动控制按键,使用37号电池供电;鱼身上包括一个红外接收管,红外信号解调电路,升压芯片(1.5V->3.3V)以及两组由80508550组成的H桥驱动电路,被驱动的两个直流电机一个用于控制导轨丝杠前后移动,使鱼身由于重心的变化能够上仰或者下倾,另外一个控制尾鳍左右摆动使鱼转弯或游动前行,整个鱼身使用一节7号电池供电。

微信飞鱼的控制部分


使用示波器观察H桥的控制信号,只是高低电平变化,并没有使用PWM进行调速控制,这使我们的工作量减小了不少。于是接下来,就是将我们的PICO嵌入到鱼身之中,步骤如下:


社区版OSBean AIR 控制模块


1. 去掉红外接收管以及红外信号解调芯片;

2. H桥控制引脚处飞线到OSBean AirGPIO上,每组H桥需要2IO信号控制,所以需要4根飞线;

3. 使用3.7V的充电锂电池替换原有的7号电池,重量上减轻不少,而且提供的动力也增强了;

4. OSBean Air和锂电池固定在电池盒中,这样,硬件部分就基本完成了。

正在焊接电源部分

5. 引入太阳能电池。我们得到的汉能薄膜太阳能电池单条电压是0.5V,如果要获得3.3V以上的电压,就需要串接多条,这对氦气球的承重来说是不可接受的。经过与汉能工程师的交流,我们基本确认薄膜太阳能模组是并联连接的,这样我们将电池薄膜按照4U一个小单位剪成了小片,每个小片经过测量都是0.5V,这样8片串接起来得到了3.7V左右的较稳定电压。


四、界面部分

BootStrap制作的微信浏览器操控界面

界面部分相对简单,我们都知道微信浏览器是个对大多数THML5兼容的Webkit。为了加快开发速度,我们选用了Bootstrap的框架。BootStrapTwitter提出的一个开源前端样式框架,目前已经发展到了3.0,浏览器兼容性非常好,我们只有一小部分的组件及一个CSS3的动画做了特殊的定制,其他全部使用BootsTrap默认的CSS,很快完成了自适应屏幕的操控界面。

总结与体会



其实微信硬件是不需要绕弯子申请审核的


通过微信飞鱼的开发,我们感觉基于 OSBean 的物联网消息服务、云端服务和 OSBean AIR 来开发基于社交网络的智能硬件确实是非常方便的,短时间内就可以开发出比较复杂的智能硬件社交网络, 大部分智能硬件的开发基本上不再需要开发 APP,而是主要使用 HTML5 技术就可,再次就是基于我们的技术开发微信智能硬件不再需要微信智能硬件开发平台的各种复杂的审核,不需要微信对开发者的认证,让智能硬件开发的控制权回到用户和开发者手里,你的智能硬件可以根据需要自由连接微信、微博、阿里云、京东、FacebookTwitter 等,不受各公司的限制。


友情链接