愛鋒貝

標(biāo)題: 程序汪10萬接的垃圾回收小程序,開發(fā)2個月 [打印本頁]

作者: 劉丹    時間: 2022-9-25 04:03
標(biāo)題: 程序汪10萬接的垃圾回收小程序,開發(fā)2個月
本項目來自程序汪背后的私活小團隊,開發(fā)了一個垃圾回收小程序里面涉及物聯(lián)網(wǎng),給粉絲分享一下解決方案,希望給想接私活的朋友一些經(jīng)驗參考

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

(, 下載次數(shù): 15)

(, 下載次數(shù): 13)

目錄


項目構(gòu)成

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



項目背景

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

小程序端

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


(, 下載次數(shù): 16)

(, 下載次數(shù): 14)

(, 下載次數(shù): 13)

硬件改造(難點)


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





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





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



消息鏈路設(shè)計的知識





MQTT消息傳輸協(xié)議

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


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

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

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




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


(, 下載次數(shù): 14)

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



后端系統(tǒng)

PC端后臺主要是這些功能






(, 下載次數(shù): 13)

(, 下載次數(shù): 16)

DB的設(shè)計我分享一個訂單表出
支持以下語言種類:
-- ----------------------------
-- 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.待結(jié)單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.店內(nèi)3.預(yù)定4.當(dāng)面付',
  `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 '經(jīng)度',
  `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;
如果想要更換代碼主題,可在上方挑選,不支持代碼主題自定義。

程序汪這里有很多私活團隊,其實都是我的粉絲轉(zhuǎn)換的,大家有其他私活的項目需要合作共贏的 歡迎加我微信 itwang007  備用微信 itwang008      itwang009

參考文檔:


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


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

-----------------------------
作者: Zv4u8Z    時間: 2022-9-25 05:58
我隨便把礦泉水瓶裝點水,是不是就更重了
作者: 局辭    時間: 2022-9-25 07:47
分類還是要依靠使用者的自覺來具體進行投放咯。建議直接加入垃圾識別功能,丟錯了扣積分哈哈哈。
作者: 小憶    時間: 2022-9-25 09:45
二期項目的內(nèi)容,干嘛一期就開發(fā)哦
作者: 天辰    時間: 2022-9-25 10:46
我就尋思目前產(chǎn)品不太完整,還有后面的完善那也挺好的嘞!
作者: 駿駿    時間: 2022-9-25 12:40
微擎后臺  有版權(quán)風(fēng)險吧
作者: 余溫    時間: 2022-9-25 14:05
小程序源碼和后端SQL分享給大家參考學(xué)習(xí)下

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

打開失敗呀
作者: 春分    時間: 2022-9-25 15:46
私信我




歡迎光臨 愛鋒貝 (http://m.7gfy2te7.cn/) Powered by Discuz! X3.4