程序汪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

相关文章

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件