Node.js教程之如何使用Node.js来制作一个作业检查仪
沉沙 2018-11-23 来源 : 阅读 1539 评论 0

摘要:本篇教程介绍了Node.js教程之如何使用Node.js来制作一个作业检查仪,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。

本篇教程介绍了Node.js教程之如何使用Node.js来制作一个作业检查仪,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。

<


前段时间, 花了点时间给女儿做了个数学习题的小程序

首页

做题界面(题目每次都随机生成, 加减乘除都有)
 

做题记录
 
现在问题来了, 怎么才能随时知道作业有没有完成呢? 
每次打开做题记录页面刷新太费劲了
于是做了个树莓派+小LED灯的设备, 基本功能如下:
LED闪烁 - 表示正在检查作业,且当天作业未完成
LED常亮 - 表示检测到作业已完成
每天重置一次LED状态
 
准备物料:
 - 树莓派
 - LED灯珠1个, 电阻一个(220欧姆或1K都可以)
 
接线:
第36脚(GPIO16) 经过一个电阻(220欧或1K都可以),再接到LED的正级
LED负级接到第34脚(GND)
 
程序
先准备一个package.json

{
  "name": "sl.math.raspi",
  "version": "0.0.1",
  "dependencies":{
    "rpio2":"0.4.1",
    "moment":"2.18.1"
  }
}

 
然后是index.js主程序

/**
 * 作业检测仪
 *      闪灯 - 正在检查作业中
 *      常亮 - 当天作业已完成
 */
var server = require("./curl");

const Gpio = require(__dirname+‘/node_modules/rpio2/lib/index.js‘).Gpio;
var led = new Gpio(36);                   //创建 P36 引脚
led.open(Gpio.OUTPUT, Gpio.LOW);        //设置为 OUTPUT、默认低电平

console.log("作业系统启动中...");
flashLed(10);

var url = "//116.62.192.119:3001/check";
//var url = "//116.62.192.119:3001/check?cdata=2017-8-10";
var delayt = 30000;
function checkCurDayHW() {      //check current day homework;
    server.download(url, function (data) {
        data = JSON.parse(data);
        flashLed(10);
        if (data && data.length > 0) {
            //当天作业已完成
             console.log(data.length);
             led.state = 1;

            console.log("当天作业已完成");
            delayt = 60 * 60 * 1000;                                //1小时检测一次
        } else {
            delayt = 30 * 1000;                                     //30秒检测一次
            console.log("未检测到作业..."+delayt+"秒后再检查");
        }

        setTimeout(function(){checkCurDayHW()}, delayt);
    });
}
checkCurDayHW();

/**
 * 闪灯功能
 * @param times     闪烁次数
 */
function flashLed(times){
    for(var i = 0; i < times; i++){
        led.toggle();       //切换 led 的电平状态
        led.sleep(300);     //等待 500ms
    }
    led.state = 0;
}

//led.close();
//process.exit();     //退出程序

 
还有一个组件cur.js

var http = require("http");

// Utility function that downloads a URL and invokes
// callback with the data.
function download(url, callback) {
    http.get(url, function(res) {
        var data = "";
        res.on(‘data‘, function (chunk) {
            data += chunk;
        });
        res.on("end", function() {
            callback(data);
        });
    }).on("error", function() {
        callback(null);
    });
}

exports.download = download;

 
把3个文件复制到树莓派上自建的目录
目录结构:

 
然后在目录里先执行

npm install

 
完成后启动运行

node index.js
   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注WEB前端Node.js频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved