在如今越来越内卷的互联网行业无论是PC端还是移动端方向的需求已经越来越少,这也是为什么互联网行业的程序员发现找工作会越来越难的原因,很多互联网行业的程序员发现失去工作或收入出现断崖式的下降,想通过副业弥补在主业收入上的锐减发现也非常困难。人到中年想要转行做自己完全没有基础的行业也没那么容易,常言道转行要做好穷三年的准备。即便要转行,我们也尽可能在我们熟悉又有一定基础的行业里转型。
今天这篇文章笔者推荐一个刚兴起还没那么内卷又和互联网紧密联系的行业,那就是物联网行业。这个行业的门槛要比互联网的门槛高,因为涉及到与硬件打交道,而互联网行业之所以非常内卷那就是门槛比较低。前几年互联网行情好的时候很多非计算机专业的同学通过报个培训班半年之后包装一下自己的简历就能找份PC端或移动端程序员的工作。但现在因为行情差明显不行了,著名的IT培训机构黑马和传智播客去年的营业收入大幅锐减了80%就说明了问题。
但是物联网这一块因为涉及到程序要和芯片开发板还有硬件设备进行联调,很多培训机构也没开设这门课,懂物联网开发的同学还不是很多,所以物联网行业也没那么内卷。而且从Boss直聘上看到招聘物联网开发工程师的岗位还真不少,而且大多是甲方公司,待遇也比普通 Java 程序员好不少,对于有兴趣转到物联网开发工程师的同学当前也是一个不错的转型机会。
物联网(IoT)是当前最热门的信息技术之一。该技术使用传感器分析数据并与不同的机器连接,以便在网络上共享信息。从制造、物流到零售、医疗保健等,物联网在各个行业都有大量应用。
物联网主要是凭借约定好的协议将原来独立存在的各个设备进行彼此的相互连接,并最终成功实现智能识别、定位、跟踪、监测、控制和管理的一种网络,不需要人与人、或人与设备之间进行互动。物联网简单来讲可以理解为“物物相连的网”,主要在一些领域中进行运用,例如智能交通、智能医疗、智能家居、智能物流、智能电力等领域。
目前物联网产业的发展正在飞速进行,从智能电视、智能家居、智能汽车、医疗健康、智能玩具、机器人等向可穿戴设备领域进行延伸。物联网将通过发展智能硬件不断渗透多元的消费场景,从而营造出更加美好的生活环境,也就是生活变得更加便利、舒适、安全、节能。
物联网行业的快速发展对于物联网开发工程师的需求也是越来越多,很多职业生涯遇到瓶颈的IT程序员已经开始转到物联网这一与互联网同宗的行业来了,程序员的编程基础也能给我们转到物联网开发带来了很大的便利。如果大家和我一样没有物联网项目开发经验,那么不妨一起来了解和学习下面这个入门门槛并不是很高的物联网项目,它就是笔者在Gitee
上找到的FastBee开源物联网平台项目。
FastBee开源物联网平台又名蜂信物联,简单易用,更适合中小企业和个人学习使用。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。
系统后端采用Spring Boot
;前端采用Vue
;消息服务器采用EMQX
;移动端支持微信小程序、安卓、苹果和H5
采用Uniapp
;数据库采用Mysql
、TDengine
和Redis
;设备端支持ESP32
、ESP8266
、树莓派、合宙等。
对于我们学习用,开源版本提供的功能已经足够,需要商业授权的用户可参考商用授权文档链接:https://fastbee.cn/doc/pages/sponsor/#一、项目说明)
服务端
Web端
移动端(微信小程序 / Android / Ios / H5)
1)源码仓库地址:https://gitee.com/kerwincui/fastbee.git
2)项目目录:
app -------------------- 移动端(微信小程序 / Android / Ios / H5) 商业版开源
docker ---------------- docker部署文件
sdk -------------------- 硬件SDK,已集成多种设备
spring-boot ---------- 后端
vue -------------------- 前端
JDK = 1.8
Mysql = 5.7.0
Redis >= 3.0
Maven >= 3.3
Node >= 12
TDengine = 2.6 (可选)
Emqx >= 5.0 (可选)
注意:运行环境很重要,低于该版本运行不了。JDK版本高于1.8缺少部分依赖,要单独安装
springboot/sql/fastbee.sql
数据库脚本。(Linux中安装mysql,配置大小写敏感,在 /etc/my.cnf
添加 lower_case_table_names=1
重启MYSQL服务。)2. 开发工具IDEA打开springboot文件夹,会自动安装Maven依赖,等待安装完成,速度取决于网络
3. 修改数据库连接,文件位置:springboot/fastbee-admin/src/main/resources/application-druid.yml
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: 数据库地址
username: 数据库账号
password: 数据库密码
4. 服务配置,主要是mqtt和redis配置,注意配置文件的格式,缩进一定要对齐。文件位于:springboot/fastbee-admin/src/main/resources/application.yml
## 文件上传路径必须以uploadPath结尾,示例(Windows配置D:/uploadPath,Linux配置 /uploadPath)
profile: /uploadPath
## redis 配置
redis:
# 地址
host: localhost
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
# 密码
password: fastbee
# mqtt 配置
mqtt:
host-url: tcp://localhost:1883 # mqtt连接tcp地址
client-id: ${random.int} # 客户端Id,不能相同,采用随机数 ${random.value}
username: fastbee # 账号,服务端Mqtt客户端自认证使用
password: fastbee # 密码,服务端Mqtt客户端自认证使用
default-topic: test # 默认主题
timeout: 30 # 超时时间
keepalive: 30 # 保持连接
clearSession: true # 清除会话(设置为false,断开连接,重连后使用原来的会话 保留订阅的主题,能接收离线期间的消息)
task:
execution:
pool:
core-size: 10 # 最小连接数
max-size: 30 # 最大连接数
queue-capacity: 3000 # 最大容量
5. 日志路径配置,文件位置:springboot/fastbee-admin/src/main/resources/logback.xml
# 示例( Windows配置D:/logs,Linux配置 /var/data/java/logs)
<property name="log.path" value="/var/data/java/logs" />
5. 运行项目 `FastBeeApplication.java` ,出现下图表示启动成功。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* _⚲_⚲_ ______ _ ____ *
* | / \ | | ____| | | | _ \ *
* | | | ● | | | | |__ __ _ ___| |_ | |_) | ___ ___ *
* | \ / | | __/ _` / __| __| | _ < / _ \/ _ \ *
* \ / | | | (_| \__ \ |_ | |_) | __/ __/ *
* V |_| \__,_|___/\__| |____/ \___|\___| *
* *
* * * * * * * * * * * * FastBee物联网平台[✔启动成功] * * * * * * * * * * *
使用开发工具Visual Studio Code 打开项目中vue目录
1. 修改根目录的 .env.development
文件,后端接口默认8080端口,EMQX接口默认8081端口,EMQX消息服务器地址使用ws协议对应8083端口,使用wss协议建议配置代理访问8083端口。
# 后端接口地址
VUE_APP_SERVER_API_URL = 'http://localhost:8080'
# Mqtt消息服务器连接地址
VUE_APP_MQTT_SERVER_URL = 'ws://localhost:8083/mqtt'
# 百度地图AK
VUE_APP_BAI_DU_AK = 'nAtaBg9FYzav6c8P9rF9qzsWZfT8O0PD'
提示:百度地图AK请到[百度地图开发平台](https://lbsyun.baidu.com/) 申请
2. 修改完成后,开始安装依赖,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
# 安装依赖
npm install
npm install --registry=https://registry.npmmirror.com
# 本地开发 启动项目
npm run dev
提示 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug NodeJs是V16以上版本导致运行报错,在安装后使用 `$env:NODE_OPTIONS="--openssl-legacy-provider"`命令,然后重新运行
3. 打开浏览器,输入:http://localhost:80
默认账户/密码 admin/admin123
。若 能正确展示登录页面,并能成功登录,菜单及页 面展示正常,则表明环境搭建成功。
1. 监控设备
注意 1)摄像头需要支持国标GB28181协议 2)2016年之前的监控设备基本都不支持,可以在配置-> 基本配置->基本信息中 查看软件编译时间,找最新的固件进行升级,例如:"V5.7.4 build 220706" ,2022年7月6号的版本升级
视频监控中,海康设备较为稳定,大部分也支持国标GB28181协议,推荐设备如下:
2. 相关物联
【1】【行业动态】物联网的现状和发展,值得关注的四大趋势(https://mp.weixin.qq.com/s?__biz=MzAwMDgwMzA3Nw==&mid=2247506734&idx=6&sn=12b6b003d216f9bed48bf54048a0bb8e&chksm=9ae1f344ad967a52dca88113b1c43074efa5f7ddb19c4c091909004d6950879c8c4c321ee7bf&scene=27)
【2】Fastbee文档(https://fastbee.cn/doc/pages/system/))