当前位置: 首页 > news >正文

程序汪8万接的共享口罩项目,开发周期1个月

本文章来自程序汪背后的私活小团队,开发的共享口罩售卖机的小程序,希望把这些真实案例分享出来,大家能学到点东西,比如硬件怎么通过手机蓝牙操控,商业项目怎么推广,软件怎么和硬件配合,自动售卖机技术方案是什么样的等等。

B站【我是程序汪】有具体视频说明

下面是测试机器设备

程序汪10万接的无线共享充电宝项目,开发周期3个月

人员及技术选型情况

  • 前端   技术栈  vue   小程序及PC端页面

  • 后端   TPshop(二开商城)

  • 硬件部分用 C 修改的协议   控制板

  • 硬件周期20天(研发+硬件制作)

  • 软件开发周期30天  

  • 开发人数 2人   

  • 数据库Mysql

  • 整体费用是8万

  • 小程序蓝牙接口

  • 走的公司合同

  • 阿里云服务器1台

项目背景

疫情当下口罩需求已经是刚需了,去医院去银行等等公共场所都需要带口罩进去,有时候大家也经常忘记带口罩,这个时候如果有一个自动口罩售卖机就非常方便了,程序汪这个项目就是在这个背景下诞生

小程序(蓝牙API)

蓝牙控制,这跟程序汪以前接的共享充电宝项目类似

小程序本身功能比较简单,核心就是一个扫码下单购买口罩的功能

注意支付成功和调用蓝牙接口通知吐口罩是找一个事物里,口罩吐成功会上行反馈结果然后更新订单的状态。

PC端

目前主要功能

PC端基本功能如下列菜单,其实就是一个电商的项目拿过来改吧改吧,反正核心流程就是下单购买口罩,目前商品很单一就是口罩而已

下面就是一个商城的后台管理系统拿过来二开下就行

这是PC管理后台的源码,二开商城可以参考下

PC后端源码 点击下方公众号

后台回复「338」即可获取项目地址

蓝牙通信协议修改

硬件厂家会把蓝牙通信协议文档提供给我们的,我们肯定需要修改的,就是加点字段什么的 (时间戳或标示什么的,具体的就不泄露了)

文档里就修改3.1 和 3.9 这两个协议

获取令牌用来鉴权是不是我们的小程序发生的连接

开锁就是小程序支付成功后吐口罩的动作

消息根据接口文档转成16进制,然后进行蓝牙传输

AES-128 密钥

 

加密解密DEMO

参考以下 AES-128 数据加密的 JAVA 实现:


 public static byte[] Encrypt(byte[] sSrc, byte[] sKey){
  try{
   SecretKeySpec skeySpec = new SecretKeySpec(sKey, "AES");
   Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
   cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
   byte[] encrypted = cipher.doFinal(sSrc);
   return encrypted; }catch(Exception ex){
   return null; } 
      }

参考以下 AES-128 数据解密的 JAVA 实现:

 public static byte[] Decrypt(byte[] sSrc, byte[] sKey){
  try{
   SecretKeySpec skeySpec = new SecretKeySpec(sKey, "AES");
   Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
   cipher.init(Cipher.DECRYPT_MODE, skeySpec);
   byte[] dncrypted = cipher.doFinal(sSrc);
   return dncrypted; }catch(Exception ex){
   return null; 
   } 

硬件部分

这块不是程序汪弄的,就简单描述下啊

根据上面那个蓝牙通信接口文档开发出来的(蓝牙接口文档定义好了会丢给硬件小哥)

研发花了10天左右样子,然后送到工厂烧控制板花了10天左右

下图这玩意成本价不贵就几十元,弄好了安装到口罩售卖机里面


调用微信支付

参考资料

https://developers.weixin.qq.com/miniprogram/dev/framework/device/bluetooth.html  微信小程序蓝牙接口

点下方原文链接观看B站视频版本

相关文章:

  • 全家为什么只有我读到了博士
  • 阿里年薪60w程序员珍藏实战经验,刚刚泄露!速来
  • 在 Win11 上打开 C 盘后:界面全变了
  • 微信,搞事情啦!!!
  • 腾讯低调上架的良心APP,永久免费真心好用!
  • 最强代码生成器平台,杀疯了~
  • Linux 能替代 Windows 吗?
  • 90 岁程序员:他的压缩算法改变了世界!
  • 再见,Win 10 自动更新!
  • 考上北大了!
  • 卧槽,上热门了!
  • 3060显卡,真香!!!
  • 去银行写代码是什么体验?
  • 拿下 ACM 金牌!
  • 2021下半年,我只想用Python搞钱!
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Angular数据绑定机制
  • CODING 缺陷管理功能正式开始公测
  • css布局,左右固定中间自适应实现
  • css系列之关于字体的事
  • eclipse(luna)创建web工程
  • ES6系列(二)变量的解构赋值
  • Flannel解读
  • IDEA 插件开发入门教程
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Leetcode 27 Remove Element
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Python语法速览与机器学习开发环境搭建
  • windows-nginx-https-本地配置
  • 后端_MYSQL
  • 算法-插入排序
  • 微信开放平台全网发布【失败】的几点排查方法
  • scrapy中间件源码分析及常用中间件大全
  • ​secrets --- 生成管理密码的安全随机数​
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #HarmonyOS:基础语法
  • #微信小程序:微信小程序常见的配置传旨
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (笔试题)合法字符串
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)创业家杂志:UCWEB天使第一步
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • ::什么意思
  • :中兴通讯为何成功
  • @EnableWebMvc介绍和使用详细demo
  • @拔赤:Web前端开发十日谈