前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建简易的物联网服务端和客户端-移动家庭能力平台【2】(二十四)

搭建简易的物联网服务端和客户端-移动家庭能力平台【2】(二十四)

作者头像
治电小白菜
发布2020-08-25 14:35:08
4440
发布2020-08-25 14:35:08
举报
文章被收录于专栏:技术综合技术综合

**这平台报废了?反正没看到他审核过了。有需求去云片网吧,后面有时间我写个云片网的接入 ---2017/10/27

上一篇,对于试验项目对接移动家庭能力平台进行了介绍。这次我们来连接数据库,进行定时请求接口的操作。 代码地址:https://github.com/ZZES-ZVD/Nodejs_openHomeAPI 2017.8.6

搭建简易的物联网服务端和客户端目录

移动家庭能力平台【2】

1.引入相关的nodejs模块

crypto是nodejs内置的,另外两个需要install npm install --save request npm install --save mysql

引入

代码语言:javascript
复制
var crypto = require('crypto')//加密模块
var request = require('request')//http请求模块
var mysql = require('mysql')//mysql模块

2.配置数据库

代码语言:javascript
复制
// 数据库配置
var conn = mysql.createConnection({
    host:'填入ip',
    user:'root',
    password:'root',
    database:'nodemysql',
    port:3306
});
//连接数据库
conn.connect();

3.生成Authorization

此函数用于生成请求所需要的Autoorization字符串

代码语言:javascript
复制
function getAuth(){
    var md5 = crypto.createHash('md5');//引入md5加密
    var apikey = "你的apikey";
    var secretKey = "你的secretKey ";
    var time = new Date().getTime();//获取时间戳
    var addStr = apikey + secretKey + time;//拼接字符串
    var md5Str = md5.update(addStr).digest('hex')//md5加密
    var jsonStr = '{"apiKey": "'+apikey+'","time": "'+time+'","sign":"'+md5Str+'"}'//拼接json
    var finalStr = new Buffer(jsonStr).toString('base64')//base64编码
    return finalStr;    
}

4.请求api接口

通过request模块请求api接口(以模板短信api为例) 函数接受三个参数,即为请求body里templateParameter所需要的三个参数 具体请求参数,可以查看http://open.home.komect.com/dev/developer/developerDoc.action?RestAPI_1

1.配置请求参数

代码语言:javascript
复制
function sendMsg(p2,p3,p4){
    //短信模板请求参数设置
    var options = {
        url:"http://open.home.komect.com/api/v1/sms/send",
        method: 'POST',
        headers:{
            "content-type":"application/json",
            "Authorization": getAuth()
        },
        body:{
            messageSign: '治电科技',
            mobile: '手机号',
            needReceipt: 0,
            receiptNotificationURL: '',
            templateId: 1344,
            templateParameter: { param1: 'klren', param2: p2, param3: p3, param4: p4   }
        },
        json: true 
    }

2.发送请求

代码语言:javascript
复制
    request(options, function(error, response,body){
        if (error) throw new Error(error);
        if(body.resultCode === 200){
            console.log("send success")
        }else {
            console.log("send fail")
        }
        console.log(body);
    })
}

5.获取数据库中数据

获取数据库中温湿度和位置状态,并调用上面的sendMsg()函数进行请求发送

代码语言:javascript
复制
function getData(){
    conn.query('SELECT * FROM pet', function(err,rows,fields){
        console.log(rows[rows.length-1]);
        tem = rows[rows.length-1].tem;
        hum = rows[rows.length-1].hum;
        let indoorStatus = rows[rows.length-1].indoor;
        if (indoorStatus == 1) {
            indoor = "在"
        }else{
            indoor = "不在"
        }
        sendMsg(tem,hum,indoor)
    })
}

6.定时发送请求

之前文章介绍过这个模块。我们定时到下午15点

代码语言:javascript
复制
function scheduleRecurrenceRule(){
    var rule = new schedule.RecurrenceRule();
    rule.hour = 15;
    schedule.scheduleJob(rule, function(){
        console.log('scheduleRecurrenceRule:'+new Date());
        getData();
    })
}

7.测试结果展示

1.命令行打印

命令行打印.png

2.接受到短信

接受到短信.png

@治电小白菜20170806

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • **这平台报废了?反正没看到他审核过了。有需求去云片网吧,后面有时间我写个云片网的接入 ---2017/10/27
  • 移动家庭能力平台【2】
    • 1.引入相关的nodejs模块
      • 2.配置数据库
        • 3.生成Authorization
          • 4.请求api接口
            • 5.获取数据库中数据
              • 6.定时发送请求
                • 7.测试结果展示
                相关产品与服务
                短信
                腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档