从零开始开发物联网项目(8)——云服务器初体验
距离上一篇教程已经过去半年了,最近又完成了一个项目,将淘宝上买来的刷二维码的共享雨伞架改成了可以刷校园卡的公益雨伞架,仅仅使用了原来的伞架(主要是自己做的架子真的要使用还需要做很多的改进,所以索性就买现成的来改了),伞架的智能硬件使用了Arduino 2560,然后使用了esp8266模块(因为学校里到处都是wifi,就懒得做nb-iot了),通讯方式使用了mqtt,数据库选用了mysql,然后买了个腾讯云,三年才288,真的很便宜。
这一节我们就来说说云服务器,记得之前教程中我曾说过要用一个树莓派来作为服务器,后来想想三年的云服务器使用费才288,比一个树莓派都要便宜了,而且使用起来比树莓派方便多了,尤其是网络连接方面,树莓派要连上公网真的是很麻烦的。我现在觉得应该把家里的那些可以远程控制的智能终端都连到自己的云服务器上,这样安全性会高很多啊,而且也不怕那些公司倒闭而无法使用(之前学校实验室安装了整套的智能控制,包括门锁、所有的灯、插座、窗帘、摄像头…结果一年前那家公司倒闭了,之后服务器也关闭了…所有的这些终端都成了摆设…心痛啊…),如果做一款可以连自己服务器的智能终端,说不定会很好卖…
一、云服务器的采购
网上的云服务器很多,什么阿里云、华为云、腾讯云、百度云…还有国外的一些,我最早免费申请了一个月的华为云,后来看到腾讯云正在搞活动,三年288,赶紧买了一个,大家如果刚开始学,可以随便挑一个国内的免费试用(每个云都有免费试用的),具体的购买这里就不提了,和上网购物差不多。买好后,就可以进入控制台看到自己买的云服务器了:
上图是我的1核2G1M的云服务器,我选的是ubuntu server 18.04.1 LTS64位系统,购买的时候可以自己选择的,因为以前玩过ubuntu,所以就装了这个。
二、登录云服务器
登录云服务器可以直接点控制台网页上的“登录“,输入密码就可以进入:
就跟远程登陆linux系统一样的界面,不过个人不太建议用这种方式,我们还是安装一个putty软件来登录。putty软件自行去百度下载吧。
双击putty.exe就可以进入:
然后在主机名称里输入你自己的云服务器公网ip,然后打开:
腾讯云用户名默认的是ubuntu,华为云默认的是root,你的具体是什么自己查阅自己的云介绍。
输入密码,就可以进入了:
三、软件的安装1——Mysql安装
在云服务器安装软件就和在本地机上安装差不多的,我们因为要使用mqtt服务和mysql服务,所以要安装emqx软件和mysql软件,首先先来安装mysql服务器,这部分比较简单,依次输入下列指令就可以了:
1、更新高级软件包工具
sudo apt-get update
2、安装MySQL服务器
sudo apt-get install mysql-server
3、安装MySQL客户端
sudo apt-get install mysql-client
4、安装MySQL依赖库
sudo apt-get install libmysqlclient-dev
5、查询MySQL状态
sudo netstat -tap | grep mysql
6、看MySQL版本
sudo mysql -V
7、登录MySQL
sudo mysql
就进入了
mysql>
为了能够远程访问数据库,我们还需要下面的设置:
1、编辑mysql配置文件,把其中bind-address = 127.0.0.1注释掉
输入:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
然后按上下键找到bind-address = 127.0.0.1,并在前面加#:
然后按Crtl+X退出并键入Y保存并退出。
2、登陆 mysql:输入密码进行登陆
sudo mysql -uroot -p
3、进入数据库后,使用 mysql库 :
use mysql;
4、修改权限
grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
库名:要远程访问的数据库名称,所有的数据库使用“*”
表名:要远程访问的数据库下的表的名称,所有的表使用“*”
用户名:要赋给远程访问权限的用户名称
IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%”
密码:要赋给远程访问权限的用户对应使用的密码
上图中我的远程登录名为makemaker,密码为arduino2020。
5.刷新权限 ,最后一定要输入下面语句进行刷新,不然不执行的:
flush privileges;
6、退出mysql:
exit或者quit
7、重启mysql数据库
service mysql restart
至此mysql安装完毕,但是现在还没法从外网登陆的,因为系统的端口还没有打开,mysql使用的端口是3306,首先在ubuntu系统中打开端口:
输入:
sudo ufw allow 3306
然后再回到云控制台,点击更多,选择安全组里的配置安全组。
点击你自己的id/名称:
然后点击添加规则:
然后选择MySQL(3306),点击完成即可。至此,云服务器mysql安装完毕,并且也配置好了远程访问,接下去就通过远程访问一下自己的云数据库。
我们使用Navicat软件来远程访问云数据库,这个软件请自己百度去下载了。
连接名随便取,主机名就是你自己的云服务器公网ip,用户名密码就用刚才你自己设置的,然后点击连接测试。之后可以双击进入了
可以在这里进行云数据库的各种操作,包括建立表,查看,修改等等。
四、软件的安装2——mqtt服务器emqx安装
接下去开始安装mqtt服务器emqx,首先从emqx官网去下载对应的软件
下载自己的系统对应的版本,当然这个是下载在自己的电脑里的。下载完后,要将这个软件传输到自己的云服务器里,这时我们要使用另一个软件:FileZilla
左边是自己电脑的文件,右边是云服务器上的,当然首先要连接上,在主站里输入sftp://你服务器的IP地址,用户名和密码就是你服务器的,输完后就可以点击快速连接:
然后右侧就会出现你云服务器里的文件了,将左侧你自己电脑里的文件拖入右边就可以上传到服务器了。将我们之前下载到的emqx安装文件emqx-ee-ubuntu18.04-4.1.1_x86_64.deb上传到云服务器上,我这里新建了一个文件夹tools,我就把文件拷贝在了这个文件夹里。好了,现在再返回putty控制台,开始安装文件。
进入tools文件夹,然后输安装命令:
sudo dpkg -i emqx-ee-ubuntu18.04-4.1.1_x86_64.deb
等安装完后,开启emqx服务:
sudo emqx start
至此,emqx服务器已经安装完了,不过现在还无法使用,因为emqx的端口还未打开,同样输入:
sudo ufw allow 18083
sudo ufw allow 1883
再在ubuntu中开启端口,当然别忘记还需要在云控制台界面上的安全组里添加入站规则:
接下去在你电脑的浏览器里输入: 你的ip地址:18083,就可以进入emqx的控制界面了,第一次进入是需要输入用户名(admin)和密码(public).
好了,终于安装好物联网必备的两个软件了,不要觉得云服务器很神秘的样子,其实用过后你就会觉得它和一台本地linux电脑没什么区别,反而更简单了,例如要重装系统只要在云控制台简单的点击几下就完成了。相比自己弄个树莓派或者计算机来做服务器,还能省很多电费呢!有兴趣的同学赶紧先去申请个免费的来玩玩吧!