程序汪10万接的垃圾回收小程序,开发2个月

2024-04-08 21:28

本文主要是介绍程序汪10万接的垃圾回收小程序,开发2个月,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本项目来自程序汪背后的私活小团队,开发了一个垃圾回收小程序里面涉及物联网,给粉丝分享一下解决方案,希望给想接私活的朋友一些经验参考

程序汪10万接的垃圾回收小程序,开发2个月

视频版本 在 B站【我是程序汪】

图片

图片

目录

  • 一、项目构成

  • 二、开发人员

  • 三、项目背景

  • 四、小程序端

  • 五、后端系统

  • 最后  源码资料分享

项目构成

  • 系统基本构成:原生微信小程序+ PC后台+硬件

安装命令

开发人员以及费用情况

  • 开发周期60天 

  • 开发人数 2人   

  • 整体费用是10万(不包含维护费)

  • 走的公司合同

  • 华为云服务器1台

  • 维护费用:项目总款的10% 一年

项目背景

这算一个公益类项目,鼓励大家自觉垃圾分类的,其实大点的城市都已经垃圾分类了,为了进一步鼓励居民垃圾分类,我们这个项目采用了积分奖励制,有点类似行用卡积分,赚的积分可以购买商品的。

小程序端

这类回收的项目,程序汪也在github上找了一波,没发现有合适开源的,于是就到某宝上花钱购买了一套回收的小程序系统+PC端后台,(不要问我为什么不从零开始开发这样的逗比问题啊),接外包项目二开就是比较速度

图片

图片

图片

硬件改造(难点)

这块其实是硬件兄弟出的解决方案,去某宝花40元左右买的电子秤,然后自己开发的控制板跟电子秤对接,读取它的具体数据,通过MQTT协议把数据同步到阿里云IOT上,然后通过HTTP2.0把数据同步到Java后端服务

电子秤摆摊商用小型台秤30kg公斤计价称重卖菜精准厨房电子称家用

图片

数据流

程序汪提着1公斤西瓜皮->手机二维码扫->绑定身份信息->打开垃圾桶盖丢到对应垃圾桶内->电子秤返回重量->控制板->阿里云IOT->后端服务->积分增加

图片

消息链路设计的知识

  • MQTT 消息传输协议

  • 阿里云IOT

  • http2.0

MQTT消息传输协议

MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于此:

  • 网络代价昂贵,带宽低、不可靠。

  • 在嵌入设备中运行,处理器和内存资源有限。

采用springboot实现http2.0
1、java的配置tomcat实现http2.0。
2、http2.0升级协议添加到Tomcat的连接器。您可以通过自定义嵌入式Tomcat容器来实现。

文章最下方有参考资料,大家可以具体看看用springboot怎么实现http2.0

@Bean
public EmbeddedServletContainerCustomizer tomcatCustomizer() {return (container) -> {if (container instanceof TomcatEmbeddedServletContainerFactory) {((TomcatEmbeddedServletContainerFactory) container).addConnectorCustomizers((connector) -> {connector.addUpgradeProtocol(new Http2Protocol());});}};
}

下图是测试机,电子秤已经被硬件小哥大卸八块了

图片

这是部分硬件负责通讯,太细节到原理程序汪也不会分析来

图片

后端系统

PC端后台主要是这些功能

图片

图片

图片

图片

DB的设计我分享一个订单表出

支持以下语言种类:

-- ----------------------------
-- Table structure for ims_cjdc_order
-- ----------------------------
DROP TABLE IF EXISTS `ims_cjdc_order`;
CREATE TABLE `ims_cjdc_order` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) NOT NULL COMMENT '用户id',`order_num` varchar(20) NOT NULL COMMENT '订单号',`state` int(11) NOT NULL COMMENT '1.待付款2.待结单3.等待送达4.完成5.已评价6.取消7.拒绝8.退款中9.已退款10.退款拒绝',`time` varchar(20) NOT NULL COMMENT '下单时间',`pay_time` varchar(20) NOT NULL COMMENT '支付时间',`jd_time` varchar(20) NOT NULL COMMENT '接单时间',`cancel_time` varchar(20) NOT NULL COMMENT '取消时间',`complete_time` varchar(20) NOT NULL COMMENT '完成时间',`money` decimal(10,2) NOT NULL COMMENT '付款金额',`box_money` decimal(10,2) NOT NULL COMMENT '餐盒费',`ps_money` decimal(10,2) NOT NULL COMMENT '配送费',`mj_money` decimal(10,2) NOT NULL COMMENT '满减优惠',`xyh_money` decimal(10,2) NOT NULL COMMENT '新用户立减',`tel` varchar(20) NOT NULL COMMENT '电话',`name` varchar(20) NOT NULL COMMENT '姓名',`address` varchar(200) NOT NULL COMMENT '地址',`type` int(11) NOT NULL COMMENT '1.外卖2.店内3.预定4.当面付',`store_id` int(11) NOT NULL COMMENT '商家id',`note` varchar(50) NOT NULL COMMENT '备注',`jj_note` varchar(50) NOT NULL COMMENT '拒绝理由',`area` varchar(20) NOT NULL COMMENT '区域',`lat` varchar(20) NOT NULL COMMENT '经度',`lng` varchar(20) NOT NULL COMMENT '纬度',`del` int(11) NOT NULL DEFAULT '2' COMMENT '1.删除  2.未删除',`pay_type` int(11) NOT NULL COMMENT '1.微信支付2.余额支付3.积分支付4.货到付款',`form_id` varchar(50) NOT NULL COMMENT '模板消息form_id',`form_id2` varchar(50) NOT NULL COMMENT '发货formid',`code` varchar(100) NOT NULL COMMENT '支付code',`order_type` int(11) NOT NULL COMMENT '1.配送2.到店自取',`delivery_time` varchar(20) NOT NULL COMMENT '送达时间',`sex` int(11) NOT NULL,`discount` decimal(10,2) NOT NULL,`tableware` int(11) NOT NULL COMMENT '餐具',`dd_info` text NOT NULL COMMENT '达达信息',`uniacid` int(11) NOT NULL,`yhq_money` decimal(10,2) NOT NULL,`coupon_id` int(11) NOT NULL,`yhq_money2` decimal(10,2) NOT NULL,`coupon_id2` int(11) NOT NULL,`table_id` int(11) NOT NULL,`dn_state` int(11) NOT NULL,`dm_state` int(4) NOT NULL,`yy_state` int(11) NOT NULL,`deposit` decimal(10,2) NOT NULL,`ship_id` varchar(30) NOT NULL,`zk_money` decimal(10,2) NOT NULL,`is_dd` int(11) NOT NULL DEFAULT '2',`pt_info` text NOT NULL,`kfw_info` text NOT NULL,`hb_type` int(4) NOT NULL DEFAULT '1',`original_money` decimal(10,2) NOT NULL,`oid` int(11) NOT NULL,`sss_peisong_id` varchar(32) NOT NULL,PRIMARY KEY (`id`),KEY `user_id` (`user_id`),KEY `store_id` (`store_id`),KEY `state` (`state`),KEY `order_type` (`order_type`),KEY `uniacid` (`uniacid`),KEY `user_id_2` (`user_id`),KEY `store_id_2` (`store_id`),KEY `state_2` (`state`),KEY `order_type_2` (`order_type`),KEY `uniacid_2` (`uniacid`),KEY `user_id_3` (`user_id`),KEY `store_id_3` (`store_id`),KEY `state_3` (`state`),KEY `order_type_3` (`order_type`),KEY `uniacid_3` (`uniacid`),KEY `user_id_4` (`user_id`),KEY `store_id_4` (`store_id`),KEY `state_4` (`state`),KEY `order_type_4` (`order_type`),KEY `uniacid_4` (`uniacid`),KEY `user_id_5` (`user_id`),KEY `store_id_5` (`store_id`),KEY `state_5` (`state`),KEY `order_type_5` (`order_type`),KEY `uniacid_5` (`uniacid`)
) ENGINE=InnoDB AUTO_INCREMENT=90 DEFAULT CHARSET=utf8;

如果想要更换代码主题,可在上方挑选,不支持代码主题自定义。

程序汪这里有很多私活团队,其实都是我的粉丝转换的,大家有其他私活的项目需要合作共赢的 欢迎加我微信 itwang007  备用微信 itwang008      itwang009

参考文档:

  1.  接入阿里云IoT平台

    https://www.cnblogs.com/cache-yuan/p/10291511.html

  2. MQTT入门

    https://www.runoob.com/w3cnote/mqtt-intro.html

  3. mqtt案例代码

    https://gitee.com/try-to/swoole_mqtt

  4. http2.0

    https://blog.csdn.net/qq_32447301/article/details/94299686

小程序源码和后端SQL分享给大家参考学习下

链接: https://pan.baidu.com/s/1SrHO-FyPnKHvaxFp4a_4uA  

密码: ih5t

  • 程序汪接的7个私活都在这里,经验整理

欢迎添加程序汪VX  itwang007

这篇关于程序汪10万接的垃圾回收小程序,开发2个月的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/886470

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

C#图表开发之Chart详解

《C#图表开发之Chart详解》C#中的Chart控件用于开发图表功能,具有Series和ChartArea两个重要属性,Series属性是SeriesCollection类型,包含多个Series对... 目录OverviChina编程ewSeries类总结OverviewC#中,开发图表功能的控件是Char

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE