搭建一个物联网服务器,可以让你掌控自己的设备数据,实现智能化管理和控制
本文将详细介绍如何自己搭建一个物联网服务器,涵盖从系统环境准备、虚拟机安装、数据库配置到网络服务实现的全过程
一、系统环境准备 在开始搭建物联网服务器之前,我们需要准备一些必要的硬件和软件环境
1.硬件环境 -通用服务器:至少需要4个vCPU、8GB内存、64GB存储空间和一个1Gbps网络接口,用于服务部署
-存储服务器:至少10TB存储空间,用于对象存储、文件存储和图片存储
-数据库服务器:至少需要8个vCPU、32GB内存、128GB存储空间和一个1Gbps网络接口,用于数据库部署
-网络环境:下行带宽10Mbps,上行带宽30Mbps,至少两个公网IP地址
2.软件环境 -操作系统:推荐使用CentOS 7,因其稳定性和良好的社区支持
-虚拟机软件:VMware Workstation,用于安装和管理虚拟机
-数据库:MySQL,用于存储和管理物联网设备的数据
-开发工具:Sublime Text或其他代码编辑器,用于编写和调试代码
二、安装虚拟机与CentOS 7 1.安装VMware Workstation - 下载并安装VMware Workstation
- 打开VMware,选择“创建新的虚拟机”
- 选择“典型(推荐)”,然后点击“下一步”
- 选择“稍后安装操作系统”,点击“下一步”
- 选择“Linux”和“CentOS 7 64位”,点击“下一步”
- 设置虚拟机名称和存储位置,点击“下一步”
- 分配处理器、内存和硬盘空间,建议至少分配2个处理器核心、4GB内存和40GB硬盘空间
- 点击“完成”创建虚拟机
2.安装CentOS 7 - 挂载CentOS 7的安装ISO文件
- 启动虚拟机,进入CentOS 7的安装界面
- 按照提示完成系统安装,设置root密码和创建用户账户
3.配置虚拟机网络 - 将虚拟机的网络模式设置为NAT模式
- 在虚拟机的网络设置中,手动配置IP地址、子网掩码、默认网关和DNS服务器
- 例如,可以设置IP地址为192.168.1.88,子网掩码为255.255.255.0,默认网关为192.168.1.254,DNS服务器为192.168.1.1
三、配置CentOS 7系统 1.安装必要软件 - 更新系统补丁:`sudo yum update -y` - 安装wget:`sudo yum -y install wget` - 安装gcc编译器:`sudo yum install -ygcc` 2.配置防火墙 - 启动防火墙:`systemctl start firewalld` - 开放必要的端口,如16732、16733、10215、3000、1883、18083、80和3306: ```bash firewall-cmd --zone=public --add-port=16732/tcp --permanent firewall-cmd --zone=public --add-port=16733/tcp --permanent firewall-cmd --zone=public --add-port=10215/tcp --permanent firewall-cmd --zone=public --add-port=3000/tcp --permanent firewall-cmd --zone=public --add-port=1883/tcp --permanent firewall-cmd --zone=public --add-port=18083/tcp --permanent firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload ``` - 查询端口是否开放:`firewall-cmd --query-port=3306/tcp` - 设置防火墙开机自启动:`systemctl enable firewalld.service` 四、安装和配置MySQL数据库 1.下载并安装MySQL - 下载MySQL的RPM包: ```bash wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm rpm -ivh mysql80-community-release-el7-3.noarch.rpm ``` - 安装MySQL服务器: ```bash sudo yum install -y mysql-community-server ``` - 如果遇到GPG密钥问题,可以导入密钥或跳过GPG检查: ```bash sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 或者 yum install -y mysql-community-server.x86_64 --nogpgcheck ``` 2.启动并配置MySQL - 启动MySQL服务:`systemctl start mysqld` - 查看MySQL服务状态:`systemctl status mysqld` - 获取MySQL的临时密码:`grep temporary password /var/log/mysqld.log` - 使用临时密码登录MySQL:`mysql -u root -p` - 修改root密码: ```sql ALTER USER root@localhost IDENTIFIED BY 新的密码; ``` - 允许root用户远程登录: ```sql GRANT ALL PRIVILEGES- ON . TO root@% IDENTIFIED BY 密码 WITH GRANT OPTION; ``` 五、安装和配置FinalShell与Navicat 1.安装FinalShell - FinalShell是一款用于远程连接和管理服务器的软件,可以在Windows上安装
- 打开FinalShell,使用root账户和密码连接到CentOS 7服务器
2.使用Navicat连接MySQL数据库 - Navicat是一款数据库管理工具,支持多种数据库类型
- 打开Navicat,创建一个新的MySQL连接,输入服务器的IP地址、用户名(root)和密码
- 测试连接,如果成功,即可使用Navicat管理MySQL数据库
六、实现物联网网络服务 1.安装NodeMCU开发环境 - NodeMCU是一款基于ESP8266的物联网开发板,支持Wi-Fi和多种外设
- 安装Arduino IDE,并添加NodeMCU的开发板支持
- 编写并上传简单的Web服务程序到NodeMCU,例如:
```cpp
#include