# MIVMS **Repository Path**: workfile/MIVMS ## Basic Information - **Project Name**: MIVMS - **Description**: 鼹鼠智能售货机系统(Mole intelligent vending machine system)是一套物联网控制系统性的解决方案。 主要涉及到的语言和库有c,c++,js,nodejs,vue.js,thinkphp。 整套系统主要作用是打通网站后台,网站前端,手机前端,单片机和微型电脑之间的通信和系统的构建。 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 92 - **Created**: 2022-03-13 - **Last Updated**: 2022-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MIVMS
#### 介绍 鼹鼠智能售货机系统(Mole intelligent vending machine system)是一套物联网控制系统性的解决方案。 主要涉及到的语言和库有c,c++,js,nodejs,vue.js,thinkphp,rt-thread。 整套系统主要作用是打通网站后台,网站前端,手机前端,单片机和微型电脑之间的通信和系统的构建。 #### 设计理念 首先,我们是一个小团队,没有阿里那么多人。因此我们每个人都将是多面手,我们需要处理从服务器到单片机等等各种东西。因此我们在选择我们需要的 工具的时候,学习简单,开发效率高等等是我们要首先考虑到的因素,而性能并不需要太强,足够就可以。 因此我们没有选择java这种大部头的东西,而为什么有c和c++,是因为基本上现在你能见到的东西底层基本都是c或者c++开发的,但我们希望未来能让所有东西 都脚步化。 因此在深入这套系统之前你需要有c,php,js这三方面的东西,我们大部分的东西都是基于nodejs开发而成的,而选择nodejs就是因为nodejs足够简单。 我们这套系统是一个非常全面的东西,涉及到物联网的方方面面,但又足够简单。系统提供了你要操作物联网的基本上所有的例子,有些东西你只需要明白它怎么 工作的就可以直接拷贝代码到你的项目中,让它跑起来。 另外,这套系统不是为大公司和大团队准备的,在这套系统中,性能不是我们要考虑的关键因素,快速和稳定是我们要的东西。 如果你只有2,3个人,或者是一个创业公司,那么这套系统很适合你。 最后,不要忘记提供你的智慧和意见,帮我们完善这套系统。 有物联网的未来将是很美好的!^_^ 现阶段已经实现下面功能: 1. 网站后台部分,采用YZNCMS作为后台管理部分,已经实现各种支付场景,语音识别和合成功能,和MQTT服务器的通信功能; 2. 网站前端和手机前端部分,采用vue.js作为前端开发,已经实现和网站后台的跨域通信,和MQTT服务器的通信功能; 3. 单片机部分,已经实现ESP8266,ESP32,f1c100s,stm32配网功能,ESP8266,ESP32,f1c100s,stm32和MQTT服务器的通信功能; 4. 微信电脑部分,主要基于树莓派加linux系统,编程语言主要是node.js,已经实现和网站后台服务器基于http协议的通信功能,基于MQTT协议的和服务器通信功能,与单片机通信的串口功能; 官方网站: http://akinggw.gitee.io/moleserver/ #### 系列教程 - [如何正确的使用开源物联网系统 - MIVMS](https://blog.csdn.net/akinggw/article/details/106765072) #### 文件目录 1. cms - 后台管理系统,主要基于开源项目YZNCMS开发,由于YZNCMS开发的快捷性,试我们在后台管理系统上事半功倍,YZNCMS开源地址:https://gitee.com/ken678/YZNCMS 2. database - 主要存储系统要用到的数据库,数据库使用开源软件mysql,这个就不多介绍了 3. doc - 安装和其它需要介绍的文档,整个系统东西比较多,因此有些安装过程需要文档记录一下 4. esp8266-arduino - esp32和esp8266的一些测试程序,主要基于arduino开发,当然现在esp主流开发已经基于freertos,但arduino在测试原型开发上依然非常的方便和快捷 5. f1c100s-rtt - 全志f1c100s系列芯片简直是性价比之王的存在,如果你的需求有带屏幕或者带触摸的应用,但又需要廉价的芯片,全志将是你可以考虑的选择。这里是f1c100s芯片系列rt-thread系统的实现,gpio,pwm,uart,otg等等基本功能都已经实现。 6. f1c100s-xboot - 全志f1c100s系列芯片的xboot系统实现,总的来说这个系统编译比较大,但驱动很多,代码很全,对于学习单片机驱动开发和系统整个架构还是有好处的 7. mobile - 手机管理系统实现,主要基于vue.js开发,实现了跨域操作数据,mqtt的通信等东西 8. mosquitto - mqtt开源服务器,对于不算大型或者巨型的项目,mosquitto足够好 9. raspberrypi-nodejs - nodejs版的树莓派实现,主要实现了nodejs在树莓派上操作gpio,mqtt,摄像头,自动系统更新等等东西,如果你想做一些有视频,有动画,足够炫的东西,那你需要这个,当然还有其它派可以选择,比如荔枝派,香蕉派,香橙派等等。 10. screen - 一些项目截图 11. server - 基于nodejs实现各种服务器操作,mqtt服务器,websockets服务器,tcp服务器,mysql,redis等等,nodejs让服务器开发如此快捷简单 12. stm32f103-rtt - stm32f103最低版本的rt-thread实现,已经实现了gpio,pwm,watchdog,uart等等功能,如果你只是搞单片机,这个价格足够低,功能足够够用。 13. tools - 一些单片机烧录工具和其它一些需要到的工具 整套系统主要分为4个部分: 1. MQTT服务器 - 主要采用开源项目Eclipse Mosquitto™作为整个系统的通信系统; 2. 后台管理 - 主要基于开源系统YZNCMS开发; 3. 手机监控和管理端 - 主要基于开源前端框架vue.js开发; 4. websocket和其它服务相关 - 主要基于开源软件node.js开发; 5. 单片机部分主要基于ESP8266,ESP32,f1c100s,stm32 6. 微型电脑部分主要基于树莓派,编程语言为node.js #### 软件架构 Mosquitto在整个系统中处于最中心的作用,它将连接我们在线的所有设备,包括售货机,手机,后台管理,服务器等等。 售货机通过Mosquitto发送系统到手机或者后台服务器用于储存数据库或者在手机上监控。 #### 未来计划 1. 接入百度AI系统,实现和小度音响的交互; 2. 接入rt-thread物联网操作系统 3. 基于神经网络的机器学习部分 #### 截图预览 ![单片机运行截图1](https://gitee.com/akinggw/MIVMS/raw/master/doc/f1c100s-rtt/IMG_20200615_142309_437.jpg) ![单片机运行截图2](https://gitee.com/akinggw/MIVMS/raw/master/doc/f1c100s-rtt/IMG_20200615_142449_145.jpg) ![单片机运行截图3](https://gitee.com/akinggw/MIVMS/raw/master/doc/f1c100s-rtt/IMG_20200615_172956_226.jpg) ![单片机运行截图4](https://gitee.com/akinggw/MIVMS/raw/master/doc/f1c100s-rtt/IMG_20200615_172842_902.jpg) ![单片机运行截图5](https://gitee.com/akinggw/MIVMS/raw/master/doc/f1c100s-rtt/IMG_20200615_172959_510.jpg) ![机器实时在线监控](https://gitee.com/akinggw/MIVMS/raw/master/doc/IMG_20200615_142309_437.jpg) ![机器购买界面](https://gitee.com/akinggw/MIVMS/raw/master/screen/screen3.jpg) ![扫码付款界面](https://gitee.com/akinggw/MIVMS/raw/master/screen/screen4.jpg) ![实时监控机器温度和订单情况](https://gitee.com/akinggw/MIVMS/raw/master/screen/screen5.jpg) ![后台管理系统](https://gitee.com/akinggw/MIVMS/raw/master/screen/screen6.jpg)