愛鋒貝

 找回密碼
 立即注冊

只需一步,快速開始

扫一扫,极速登录

查看: 635|回復: 7
打印 上一主題 下一主題
收起左側

程序汪10萬接的垃圾回收小程序,開發(fā)2個月

[復制鏈接]

1368

主題

1488

帖子

6243

積分

Rank: 8Rank: 8

跳轉到指定樓層
樓主
發(fā)表于 2022-9-25 04:03:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

一鍵注冊,加入手機圈

您需要 登錄 才可以下載或查看,沒有帳號?立即注冊   

x
本項目來自程序汪背后的私活小團隊,開發(fā)了一個垃圾回收小程序里面涉及物聯網,給粉絲分享一下解決方案,希望給想接私活的朋友一些經驗參考

視頻版本 在 B站【我是程序汪】





目錄


  • 一、項目構成
  • 二、開發(fā)人員
  • 三、項目背景
  • 四、小程序端
  • 五、后端系統(tǒng)
  • 最后  源碼資料分享

項目構成

  • 系統(tǒng)基本構成:原生微信小程序+ PC后臺+硬件

安裝命令
開發(fā)人員以及費用情況


  • 開發(fā)周期60天
  • 開發(fā)人數 2人
  • 整體費用是10萬(不包含維護費)
  • 走的公司合同
  • 華為云服務器1臺
  • 維護費用:項目總款的10% 一年


項目背景

這算一個公益類項目,鼓勵大家自覺垃圾分類的,其實大點的城市都已經垃圾分類了,為了進一步鼓勵居民垃圾分類,我們這個項目采用了積分獎勵制,有點類似行用卡積分,賺的積分可以購買商品的。

小程序端

這類回收的項目,程序汪也在github上找了一波,沒發(fā)現有合適開源的,于是就到某寶上花錢購買了一套回收的小程序系統(tǒng)+PC端后臺,(不要問我為什么不從零開始開發(fā)這樣的逗比問題?。油獍椖慷_就是比較速度








硬件改造(難點)


這塊其實是硬件兄弟出的解決方案,去某寶花40元左右買的電子秤,然后自己開發(fā)的控制板跟電子秤對接,讀取它的具體數據,通過MQTT協(xié)議把數據同步到阿里云IOT上,然后通過HTTP2.0把數據同步到Java后端服務





電子秤擺攤商用小型臺秤30kg公斤計價稱重賣菜精準廚房電子稱家用





數據流
程序汪提著1公斤西瓜皮->手機二維碼掃->綁定身份信息->打開垃圾桶蓋丟到對應垃圾桶內->電子秤返回重量->控制板->阿里云IOT->后端服務->積分增加



消息鏈路設計的知識


  • MQTT 消息傳輸協(xié)議
  • 阿里云IOT
  • http2.0




MQTT消息傳輸協(xié)議

MQ 遙測傳輸 (MQTT) 是輕量級基于代理的發(fā)布/訂閱的消息傳輸協(xié)議,設計思想是開放、簡單、輕量、易于實現。這些特點使它適用于受限環(huán)境。例如,但不僅限于此:

  • 網絡代價昂貴,帶寬低、不可靠。
  • 在嵌入設備中運行,處理器和內存資源有限。


采用springboot實現http2.0
1、java的配置tomcat實現http2.0。
2、http2.0升級協(xié)議添加到Tomcat的連接器。您可以通過自定義嵌入式Tomcat容器來實現。

文章最下方有參考資料,大家可以具體看看用springboot怎么實現http2.0

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




下圖是測試機,電子秤已經被硬件小哥大卸八塊了




這是部分硬件負責通訊,太細節(jié)到原理程序汪也不會分析來



后端系統(tǒng)

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 '滿減優(yōu)惠',
  `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 '區(qū)域',
  `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 '發(fā)貨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

參考文檔:

  • 接入阿里云IoT平臺
    https://www.cnblogs.com/cache-yuan/p/10291511.html
  • MQTT入門
    https://www.runoob.com/w3cnote/mqtt-intro.html
  • mqtt案例代碼

    https://gitee.com/try-to/swoole_mqtt
  • http2.0

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


小程序源碼和后端SQL分享給大家參考學習下
鏈接: https://pan.baidu.com/s/1SrHO-FyPnKHvaxFp4a_4uA  密碼: ih5t


  • 程序汪接的7個私活都在這里,經驗整理

點下方原文鏈接觀看B站視頻版本

-----------------------------
精選高品質二手iPhone,上愛鋒貝APP

0

主題

54

帖子

3

積分

Rank: 1

沙發(fā)
發(fā)表于 2022-9-25 05:58:08 | 只看該作者
我隨便把礦泉水瓶裝點水,是不是就更重了
精選高品質二手iPhone,上愛鋒貝APP

0

主題

33

帖子

2

積分

Rank: 1

板凳
發(fā)表于 2022-9-25 07:47:25 | 只看該作者
分類還是要依靠使用者的自覺來具體進行投放咯。建議直接加入垃圾識別功能,丟錯了扣積分哈哈哈。
精選高品質二手iPhone,上愛鋒貝APP

0

主題

53

帖子

3

積分

Rank: 1

地板
發(fā)表于 2022-9-25 09:45:56 | 只看該作者
二期項目的內容,干嘛一期就開發(fā)哦
精選高品質二手iPhone,上愛鋒貝APP

0

主題

46

帖子

-4

積分

5
發(fā)表于 2022-9-25 10:46:10 | 只看該作者
我就尋思目前產品不太完整,還有后面的完善那也挺好的嘞!
精選高品質二手iPhone,上愛鋒貝APP

0

主題

51

帖子

3

積分

Rank: 1

6
發(fā)表于 2022-9-25 12:40:48 | 只看該作者
微擎后臺  有版權風險吧
精選高品質二手iPhone,上愛鋒貝APP

0

主題

49

帖子

3

積分

Rank: 1

7
發(fā)表于 2022-9-25 14:05:48 | 只看該作者
小程序源碼和后端SQL分享給大家參考學習下

鏈接: https://pan.baidu.com/s/1SrHO-FyPnKHvaxFp4a_4uA 密碼: ih5t

打開失敗呀
精選高品質二手iPhone,上愛鋒貝APP

0

主題

41

帖子

6

積分

Rank: 1

8
發(fā)表于 2022-9-25 15:46:46 | 只看該作者
私信我
精選高品質二手iPhone,上愛鋒貝APP
您需要登錄后才可以回帖 登錄 | 立即注冊   

本版積分規(guī)則

QQ|Archiver|手機版|小黑屋|愛鋒貝 ( 粵ICP備16041312號-5 )

GMT+8, 2025-2-13 19:26

Powered by Discuz! X3.4

© 2001-2013 Discuz Team. 技術支持 by 巔峰設計.

快速回復 返回頂部 返回列表