软件开发人员从0到1实现物联网项目:技术调研

前言

春节返乡之际,发现老家县城竟然开了近十家棋牌室。巧的是朋友也有意涉足,便咨询我自助棋牌室的软件投入成本。作为程序员的我,在思考了自助棋牌室背后的技术需求后,嗅到了一丝丝商机:何不自己开发一个自助棋牌室系统?于是就有了这一系列文章,该系列会持续更新下去。

在此,恳请前端与物联网领域的大佬们不吝赐教,对本文中的几个问题给予指导与建议。

市场调研

作为中国传统文化的一部分,麻将已经深受广大人民群众的喜爱。既然一个小县城都有近十家棋牌室,那一定是有市场的。

去了几家自助棋牌室打探了一下消息,发现都是采用加盟模式,软件服务费加上可远程控制的硬件设备得大几万。

在网上也联系了几家服务商,报价都大差不差。我心想:“咦,这生意太可行,我定价一半就行”。

在这里插入图片描述

那就开搞吧,反正闲着也是闲着。

技术调研

在我看来,自助棋牌室需求特别简单,用户在应用上选择房间下单后给该房间自动通电,时间到了该房间自动断电即可。

相关技术涉及以下几部分:

  1. 因为用户需要在手机上下单,所以涉及到前端技术。
  2. 前端所展示的数据需要维护,所以需要一个后端维护数据并与其交互。
  3. 用户下单后需要自动控制房间电源,所以涉及到物联网技术。

前端

前端目前只考虑小程序,毕竟只有我一个人开发,如果涉及到其他终端开发成本、维护成本可就太高了。再一个小程序的受欢迎程度还是相当高的,而且支付这块小程序有天然的优势。

因为几年没有碰过前端了,所以花了一天了解了下现在比较流行的几个前端框架:vue、react、flutter、uni-app以及微信原生开发。

其中uni-app中的一篇文档《白话uni-app》对传统的前端开发和使用当前流行的前端框架开发的区别给出了非常详细的说明。比如,通过简单的案例就可以知道两者在工程结构、js、css的变化以及对应关系。
对于像我这样几年没有接触过前端的开发人员来讲可以说是非常友好了。

而且uni-app这个框架编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。看上去这个又是比较香的,但是终归存在性能和兼容问题的吧。

所以大伙基于自己的经验给个意见,uni-app这玩意用上去有官网介绍的那么好吗?

后端

后端应用就不用说了,没有其他更好的选择就基于Java开发了,毕竟市面上有很多基于Java开发的后台管理系统。

物联网

至于物联网,目前的状态是:听说过没见过。所以针对自助棋牌室系统涉及到物联网的部分需要了解一下。

目前我急需了解的是如何实现远程控制房间的电源开关或插座,当然,还有门锁、语音什么的。在网上一顿摸索后有几个方向:

  1. 使用第三方物联网平台,提供设备和开放平台,可以说不用理会物联网相关技术。
  2. 找一个开源的物联网平台进行商业授权,购买指定的设备进行绑定。
  3. 自行购买设备进行开发。

基于我目前的状态,第一种无疑是最理想的,但是贵呀,设备贵、接口对接10000+/年。而开源项目的商业授权也得10000+,加上技术支持啥的也得不少钱。如果采用这两种方案,我的商业计划还没开始呢就搭进去不少钱。而自己开发一个智能开关所需要的元器件也就10几元,所以果断选择自己开发。

自己开发就得学习相关知识了。不怕大家笑话,第一次知道插座还分10A、16A,什么是交流电、直流电。

目前了解到实现远程控制开关的知识有:

  1. 通过继电器可以控制开关闭合。
  2. 继电器结合ESP8266可以实现远程控制。
  3. 固件(软件)可以控制硬件设备运行和操作。
  4. 基于Arduino开发工具进行C/C++编写如何控制硬件的代码。
  5. 可以通过Mqtt、TCP协议和互联网进行通讯。
  6. 通过烧录器将代码写入硬件设备,从而实现远程控制开关。

还请各位佬指点一下以上步骤是否存在错误,或者我对某个环节理解有误。

问题请教

在这里请教下大佬们几个问题:

  1. uni-app在开发H5和小程序有什么坑吗?尤其是小程序备案和支付,或者有没有更好的框架可以选择。
  2. 有没有现成的、靠谱的、可支持二次开发的智能开关、插座、门禁、摄像头,如果有且价格合理的话请一定要告诉小老弟。或者各位佬推荐一个继电器的外壳制定商铺。

总结

自助棋牌室系统所依赖的硬件设备:开关、插座、摄像头、门锁、语音,皆可自助开发,或选择市面上已成熟可二次开发的硬件设备。

自助棋牌室系统所涉及的软件技术:前端可以选择微信小程序原生开发或支持各终端的uni-app。后端选择自己熟悉的Java语言。

自助棋牌室系统的技术实现具备可行性,具体需求和技术方案需进一步细化和完善。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/268630.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOV9训练集制作+Train+Val记录

一、YOLO数据集格式分布 在YOLO中,数据集的分布如图,在dataset文件夹下有imags(图片)和labels(标签)。在images和labels文件夹下又分别存放三个文件夹,分别对应测试集、训练集、验证集&#xff…

2023全球软件开发大会-上海站:探索技术前沿,共筑未来软件生态(附大会核心PPT下载)

随着信息技术的迅猛发展,全球软件开发大会(QCon)已成为软件行业最具影响力的年度盛会之一。2023年,QCon再次来到上海,汇聚了众多业界精英、技术领袖和开发者,共同探讨软件开发的最新趋势和实践。 一、大会…

Frontend - Boostrap 消息弹窗

目录 一、下载 (一)中文官网 (二)bootstrap v3 依赖 jQuery 插件 二、解压并安装 (一)解压 1. 压缩包解压 2. 简化文件 (二)安装 三、配置 (一)bas…

【重要公告】对BSV警报系统AS的释义

​​发表时间:2024年2月15日 由BSV区块链协会开发并管理的BSV警报系统(Alert System,以下简称“AS”)是BSV网络的重要组件。它是一个复杂的系统,主要职能是在BSV区块链网络内发布信息。这些信息通常与网络访问规则NAR相…

深入了解 JavaScript 混淆加密和环境检测

JavaScript混淆加密是一种通过修改代码结构和命名约定来增加代码的复杂性,使其难以被理解和逆向工程的技术。在这篇文章中,我们将深入探讨JS混淆加密的一些逻辑,并介绍如何通过环境检测来提高代码的安全性。我们将使用案例代码演示这些概念。…

osi模型,tcp/ip模型(名字由来+各层介绍+中间设备介绍)

目录 网络协议如何分层 引入 osi模型 tcp/ip模型 引入 命名由来 介绍 物理层 数据链路层 网络层 传输层 应用层 中间设备 网络协议如何分层 引入 我们已经知道了网络协议是层状结构,接下来就来了解了解下网络协议如何分层 常见的网络协议分层模型是OSI模型 和 …

C++之结构体以及通讯录管理系统

1,结构体基本概念 结构体属于自定义的数据概念,允许用户存储不同的数据类型 2,结构体的定义和使用 语法:struct 结构体名{ 结构体成员列表}; 通过结构体创建变量的方式有三种: 1,struct …

python+Django+Neo4j中医药知识图谱与智能问答平台

文章目录 项目地址基础准备正式运行 项目地址 https://github.com/ZhChessOvO/ZeLanChao_KGQA 基础准备 请确保您的电脑有以下环境:python3,neo4j 在安装目录下进入cmd,输入指令“pip install -r requirement.txt”,安装需要的python库 打…

【LeetCode】升级打怪之路 Day 12:单调队列

今日题目: 239. 滑动窗口最大值 | LeetCode 今天学习了单调队列这种特殊的数据结构,思路很新颖,值得学习。 Problem:单调队列 【必会】 与单调栈类似,单调队列也是一种特殊的数据结构,它相比与普通的 que…

Linux入门到入土

Linxu Linux 简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口&#xff09…

Onenote软件新建笔记本时报错:无法在以下位置新建笔记本

报错现象: 当在OneNote软件上,新建笔记本时: 然后,尝试重新登录微软账户,也不行,提示报错: 解决办法: 打开一个新的记事本,复制粘贴以下内容: C:\Users\Adm…

Windows上构建一个和Linux类似的Terminal

感谢大佬批评指正,现已更新 preview Target:致力打造最赏心悦目Window下的终端,同时能够很接近Linux的使用习惯 key word:windows终端美化 windows terminal windows powershell 类似Linux下的Window终端 Window也能用ll windows…

本地如何配置支付宝模拟支付场景并结合内网穿透实现公网环境调试开发?

文章目录 前言1. 下载当面付demo2. 修改配置文件3. 打包成web服务4. 局域网测试5. 内网穿透6. 测试公网访问7. 配置二级子域名8. 测试使用固定二级子域名访问 前言 在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地,局限性大,在沙箱环境…

【java】final、finally和finalize的区别

例题: package com.overload;public class ExceptionTest {public static void main(String[] args) {int result test();System.out.println(result); //100}public static int test(){int i 100;try {return i;} finally {i;}} }结果为:100 造成结果…

计算机专业大学四年应该如何规划(Java方向)

计算机专业的学生,如何在大学四年内提高自己的竞争力,毕业之后直接进大厂工作? 以下将从大学四年计算机专业的学习规划、课程设置、能力提升、参考书籍等方面,为同学们提供一些建议和指导。 大一: 主攻技能学习并且达…

lv20 QT事件5

1 事件模型 2 事件处理 virtual void keyPressEvent(QKeyEvent *event) virtual void keyReleaseEvent(QKeyEvent *event) virtual void mouseDoubleClickEvent(QMouseEvent *event) virtual void mouseMoveEvent(QMouseEvent *event) virtual void mousePressEvent(QMou…

NACOS在Windows和Linux下的安装教程

目录 1、Windows安装 1.1、下载安装包 1.2、解压 1.3、端口配置 1.4、启动 1.5、访问 2、Linux安装 2.1、安装JDK 2.2、上传安装包 2.3、解压 2.4、端口配置 2.5、启动 3、Nacos的依赖 1、Windows安装 开发阶段采用单机安装即可。 1.1、下载安装包 在Nacos的Git…

C++ sort排序

sort函数接受两个迭代器作为参数&#xff0c;分别表示要排序的范围的起始和结束位置。 请注意&#xff0c;sort函数默认使用小于运算符&#xff08;<&#xff09;来比较元素的顺序&#xff0c;默认从小到大排。 在这里&#xff0c;使用str.begin()和str.end()来表示整个字符…

水豚鼠标助手 强大的鼠标美化工具

水豚鼠标助手 水豚鼠标助手是一款 鼠标换肤、屏幕画笔、放大镜、聚光灯、屏幕放大、倒计时功能的强大屏幕演示工具。 软件助手获取 水豚鼠标助手1.0.0 安装教程 第一步&#xff1a;下载后&#xff0c;双击软件安装包 第二步&#xff1a;Windows可能会出现提示弹窗&#xff…

前端同时传递文件数据+非文件数据,前后端解决方案

之前录制视频《文件上传组件》的时候有位观众提了个问题&#xff0c;如果我没有理解错的话&#xff0c;应该就是前后同时传递文件数据 非文件数据&#xff0c;前后端数据该如何接收&#xff0c;这里我给出我自己的解决方案 tip:下文在编写前端代码的时候&#xff0c;用到了这篇…