怎么做物联网生意_物联网能做什么

后端 (69) 2023-03-24 16:25

大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。

作为程序猿大佬的你,工位也许是这样的

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第1张

也有可能是这样的

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第2张 但是不管怎么样,作为大佬的你肯定会想要有一个温度适宜,不被打搅的工位,所以就开始干起来吧!

我需要有一个适宜的环境

需求:

我要有一个温度适宜的工位

技术方案:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第3张

方案概述:通过温湿度传感器,获取工位的温湿度的信息,树莓派网关定时轮训去拉取温湿度传感器的数据,并对数据进行处理,处理完成之后将数据传输到 sls 平台进行存储。通过阿里云的定时任务,去对日志进行定时的统计分析。

所需材料:

树莓派:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第4张

温湿度传感器:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第5张

编码与干活:

// 引入温湿度传感器的库
const sensor = require("node-dht-sensor");
// 引入封装好的 sls SDK
const { SendLog } = require("./sendLog.js")
// 初始化日志库
const sls = new SendLog('sensor-show', 'sensor_log')
// 轮训的时间
const DELAY_TIME = 6 * 1000;
// 传感器类型
const SENSOR_TYPE = 11;
// 引用针脚
const GPIO_PIN = 21;

// 轮训
setInterval(() => {
  // 读取温湿度传感器数据
  sensor.read(SENSOR_TYPE, GPIO_PIN, function (err, temperature, humidity) {
    if (!err) {
      const contents = [
        // 温度数据
        { key: 'temperature', value: temperature.toString() },
        // 湿度数据
        { key: 'humidity', value: humidity.toString() },
      ]
      sls.logPush(contents)
    }
  });
}, DELAY_TIME);

最终成品:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第6张

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第7张

通过统计图,可以知道时时刻刻工位的温湿度变化,并且在温度高于 30 度,湿度低于 40% 时给我发送短信和邮件告警,赶紧调整空调或者逃离工位。如果这里再加个红外发射码,可以通过发射红外码控制空调,在温度发生一定变化时候,自动将空调调整到恒定温度。

我不想要有人打扰

需求:

我只想安心码代码,不想被产品打扰!

技术方案:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第8张

通过超声波传感器得到传感器与物体反射回来的时差,并将时差在树莓派网关中进行计算和处理,得到超声波传感器与物体的距离,并将数据上传到阿里云 sls 中,并在 sls 中针对数据进行统计和分析。如果被打扰的次数到达 10 次,工位的红色大灯亮起来了,警告产品,如果次数超过 20 次,工位的喇叭也就响起来了,礼(da)貌(sheng)的警告产品!!!

所需材料:

树莓派:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第9张

超声波传感器:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第10张

编码与干活:

// 引入 GPIO 编程依赖
const Gpio = require("pigpio").Gpio;
const { SendLog } = require("./sendLog.js")

// 针对 Gpio 针脚进行编程
const trigger = new Gpio(20, { mode: Gpio.OUTPUT });
const echo = new Gpio(16, { mode: Gpio.INPUT, alert: true });
// sls 日志依赖 SDK
const sls = new SendLog('sensor-show', 'sensor-hcsr04_log')
// 声音在 20 摄氏度下传播1厘米所需要的微秒数(343.21 m/s)
const MICROSECDONDS_PER_CM = 1e6 / 34321;

trigger.digitalWrite(0);


const watch = () => {
    // 开始计时的时间
    let startTick;
    echo.on("alert", (level, tick) => {
        if (level === 1) {
            startTick = tick;
        } else {
          	// 收到回传的数据的时间
            const endTick = tick;
            // 得到时间间隔
            const diff = endTick- startTick ;
          	// 信号发送出去并反射回去所花费的时间,所以要除以 2
            const distance = diff / 2 / MICROSECDONDS_PER_CM;
            // 上传到 sls 上
            const contents = [
                { key: 'distance', value: distance.toFixed(2).toString() },
                { key: 'isAnyBody', value: distance < 20 ? "1" : "0" },
            ]
            sls.logPush(contents)
        }
    })
}

watch();

// 每秒触发一次
setInterval(() => {
    trigger.trigger(10, 1)
}, 1000);

最终成品:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第11张

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第12张

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第13张

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第14张

通过超声波传感器,可以实时得到物体的距离,但是因为声音会受到温度、湿度、物体表面反射的弧度等问题,得到的数据并不是特别准确,如果需要准确的距离测量,需要通过雷达和红外进行测距,比如现在的智能汽车,使用的是雷达传感器,实时得到前后车的间距。

什么是物联网

一句话定义

将普通设备连接上局域网,形成一个整个网络,实现与人的交互。

使用我们熟悉的互联网来理解物联网

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第15张

互联网的应用基本上只有大前端和后端两块,而在物联网里,后端增加了固件升级、时序数据、长连接等。底部增加了设备端,设备和后端进行通过 https、websocket(MQTT)进行通信,设备端内置 WIFI、蓝牙等通信模组,与后端进行通信,设备计算环境是对各个模组进行控制和数据处理,在上面的示例中就是树莓派。传感器数据采集是对环境中的数据进行处理。

物联网的四层模型如何解释

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第16张

物联网的四层模型分为:感知 && 设备层、网络层、平台层、应用层。其中每一层的功能如下:

  • 感知 && 设备层:有的物联网有感知层,有的物联网只有设备层,有的两者都有,感知主要的作用就是采集物理世界的数据,比如通过温度传感器,获取当前的温度,通过人体传感器,获取当前是否有人经过。设备指的是物联网中的设备实体,比如智能灯泡,智能空调等,感知设备也是属于设备的一种特例。
  • 网络层:网络层主要功能是传输信息,将感知层和设备层中的数据传到指定的地方
  • 平台层:平台层可以理解成物联网的大脑,平台层主要的内容包括设备接入、设备管理、消息通知、监控运维、设备管理、安全管理等。
  • 应用层: 物联网最终的目的,将设备端收集的数据进行处理,提供给业务方,同时应用层也可以作为设备指令的接收方,并将指令往下传递;

前端怎么玩物联网

1. 用 Node 写物联网代码的几种方式

用 Node 调用 C 或 C++ 模块

Node 中使用应用二进制接口(Application Binary Interface )来实现与 C 和 C ++ 的通信的,特指应用去访问编译好的二进制程序,是 Node 与 C、C+ + 通信的桥梁。而在 ABI 上层,是使用 Native Addon 进行加载二进制的文件,让二进制文件的内容可以通过 require 的方式导入,因为他会在暴露出 module.exports 或 exports 对象。类似于如下所示:

// greet.node 是编译好的二进制文件
const addon = require('./build/Release/greet.node')

而在 C++ 代码中,实现如下:

#include <napi.h>
#include <string>
#include "greeting.h"

/** Napi 全称为:Node-API C++ 包装类,负责将 C ++ 的方法包装成一个 node 可以访问的方法, 可以理解成 Napi 就是 Native Addon 的实现 **/
// 定义一个返回类型为 Napi String 的 greetHello 函数
Napi::String greetHello(const Napi::CallbackInfo& info) {
    Napi::Env env = info.Env();
    std::string user = (std::string) info[0].ToString();
    std::string result = helloUser(user);
    return Napi::String::New(env, result);
}

// 设置类似于 exports = {key:value}的模块导出
Napi::Object Init(Napi::Env env, Napi::Object exports) {
    exports.Set(
        Napi::String::New(env, "greetHello"), // key
        Napi::Function::New(env, greetHello)  // value
        );

    return exports;
}

// 导出
NODE_API_MODULE(greet, Init)

我们在使用温湿度传感器的项目中,使用的是这种方式:

github.com/momenso/nod…

var sensor = require("../build/Release/node_dht_sensor");

var promises = {
  initialize: sensor.initialize,
  setMaxRetries: sensor.setMaxRetries,
  readSync(type, pin) {
    return sensor.read(type, pin);
  },
  read(type, pin) {
    return new Promise(function(resolve, reject) {
      sensor.read(type, pin, function(err, temperature, humidity) {
        if (err) {
          reject(err);
        } else {
          resolve({ temperature, humidity });
        }
      });
    });
  }
};

module.exports = {
  initialize: sensor.initialize,
  read: sensor.read,
  setMaxRetries: sensor.setMaxRetries,
  promises
};

用 Node 开发 GPIO 接口

GPIO (General-purpose input/output),通用型输入输出,用于电信号在模组中的输入输出,在树莓派中的 GPIO 接口如下所示:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第17张

从左到右,从上到下,左边奇数,右边偶数:1-40,GPIO 中的接口分为以下几类:

  • 供电接口:有 5v 和 3v 的电压供电接口,为模组提供电力;
  • 编程接口:有 GPIO xx 带数字的接口,用来与模组进行通信;
  • 接地接口: Ground 接口,用来给模组接地使用

我们在进行开发中,只需要将模组的电源接口、编程接口、接地接口接上,然后使用添加 pigpio 依赖, yarn add pigpio 便可以进行 GPIO 编程:

github.com/fivdi/pigpi…

const Gpio = require('pigpio').Gpio;

const led = new Gpio(17, {mode: Gpio.OUTPUT});

let dutyCycle = 0;

setInterval(() => {
  led.pwmWrite(dutyCycle);

  dutyCycle += 5;
  if (dutyCycle > 255) {
    dutyCycle = 0;
  }
}, 20);

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第18张

嵌入式内嵌 V8 引擎

github.com/jerryscript… 是三星开发一个开源的物联网运行引擎,采用了 V8 进行裁剪,并针对低内存消耗进行了优化,支持 160k 的内存,让 Node 真正的跑在嵌入式设备中。但是这个方式也有问题:

  1. 代码只支持 ECMAScript 5.1;
  2. 开发人员进行很大的裁剪,但是运行时和 C 相比性能还是比不上,导致硬件成本太高;
  3. 编译复杂;

国内也有一家厂商使用 javascript 作为设备的运行时:ruff.io/zh-cn/,由周爱民(《JavaScript 语言精髓与编程实践》作者)大佬创办,但是可能是因为硬件成本高,在商业化层面不太成功。

Node 转义成别的平台代码

国外对于 Node 转义成别的平台开源的方案较多,而且有些方案也挺成熟,比如:johnny-five.io/,从 2012 年开始深耕物联网平台,开源的仓库有 12 k start,而且该开源项目还支持机器人,实例特别丰富,对于新手来说很友好,建议从这个方面入坑。

2. 了解常见的硬件

传感器

  • 温度传感器:将环境中的温度转变成电信号

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第19张

  • 湿度传感器:将环境中的湿度转变成电信号

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第20张

  • 人体传感器:检测是否有人通过,通过与否返回不同的电信号

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第21张

  • 光传感器:将光信号转变成电信号

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第22张

微处理系统

  • MCU:英文(Microcontroller Unit),微控制单元,将 CPU 适当的裁剪,并将内存、USB、LCD 驱动电路集成到单一芯片中,形成芯片级的计算机,特别常见。

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第23张

通信

  • 蓝牙模组:支持设备进行蓝牙通信

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第24张

  • WIFI 模组:支持设备间通过 WIFI 接入和通信

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第25张

  • GPRS 模组:支持插入 SIM 卡进行联网

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第26张

总结

传感器相当于人的耳朵和皮肤,负责感知外界的数据和信息,MCU 相当于人的大脑,负责针对信息的处理,通信模组相当于人的嘴巴和手,负责对外进行通信。

古茗物联网怎么玩

古茗的主营业务是在餐饮行业做奶茶,对于餐饮行业,成本主要来自于三个方面:

  • 店租
  • 原材料
  • 人力成本

对于店租,跟位置和人流量强相关,所以如果选择店租便宜的位置,会带来人流量的减少,进而减少成单量。所以这一块可以理解成是固定成本,很难降低。

对于原材料,目前全球通货膨胀,原材料在上涨,而且即是是未来原材料成本降低,古茗通过规模优势来提高与供应商的议价能力,进一步降低成本。但是这一块的成本降低的边际效益是递减的,而且原材料的成本降低有可能会带来品质的下降。

对于人力成本,目前古茗前台加后厨,普通店大致在 6 人左右,面积大一点的店在 8 人左右,旗舰店在 12 个人左右,而且人员需要三班倒,所以人力这一块对于门店来说成本异常的高。而通过给门店配备机器,去一点一点的让机器去做人需要做的事情,进一步解放人力。而对于最终的情况,应该是门店的设备都通过门店的边缘网关,将门店的设备统一连接和调度起来,进行奶茶的制作。其整体的结构如下图所示:

怎么做物联网生意_物联网能做什么_https://bianchenghao6.com/blog_后端_第27张

最后

关注公众号「Goodme前端团队」,获取更多干货实践,欢迎交流分享~

发表回复