乐趣区

关于人工智能:Shifu基础功能数据采集

数据采集

咱们能够通过 HTTP/gRPC 与 deviceShifu 进行通信,deviceShifu会将咱们发送的申请转换成设施所反对协定的模式,并发送给设施。

当设施接管到指令之后,数据会传输到 deviceShifu 中,之后 deviceShifu 将数据作为咱们申请的返回值进行返回,从而实现数据的采集。

实现自动化数据采集

1. 首先,咱们可编写以下程序来实现主动采集数据。该程序用于对之前运行的 edgedevice-thermometer 设施进行实时数据采集,将温度数据进行解析并输入。该程序能够通过任意语言、任意模式进行编写,您能够将数据存入您的数据库中,或者存入文件中。

package main  

import (  
   "log"   
   "io/ioutil"   
   "net/http"   
   "strconv"   
   "time"
)  

func main() {  
   targetUrl := "http://edgedevice-thermometer/read_value"
   req, _ := http.NewRequest("GET", targetUrl, nil)
   for{res, _ := http.DefaultClient.Do(req)
      body, _ := ioutil.ReadAll(res.Body)
      temperature, _ := strconv.Atoi(string(body))     
      if temperature > 20 {log.Println("High temperature:", temperature)
      } else if temperature > 15 {log.Println("Normal temperature:", temperature)
      } else {log.Println("Low temperature:", temperature)
      }
      res.Body.Close()
      time.Sleep(2 * time.Second)
   }
}

2. 应用 go mod init high-temperature-detecto 生成 go.mod 文件。

3. 对于上述程序,咱们能够将其打包成 docker image 并加载到集群中,以便其能更好的与 deviceShifu 进行通信。创立以下 Dockerfile 文件:

# syntax=docker/dockerfile:1  

FROM golang:1.17-alpine  
WORKDIR /app  
COPY go.mod ./  
RUN go mod download  
COPY *.go ./  
RUN go build -o /high-temperature-detector  
EXPOSE 11111  
CMD ["/high-temperature-detector"]

4. 应用 Dockerfile 文件生成docker image,需执行以下命令:

docker build --tag high-temperature-detector:v0.0.1

5. 之后咱们将 docker image 加载到集群中,需执行以下命令:

kind load docker-image high-temperature-detector:v0.0.1

6. 运行咱们编写的数据采集程序,需执行以下命令:

kubectl run high-temperature-detector --image=high-temperature-detector:v0.0.1

7. 最初咱们查看该程序的日志信息获取数据,需执行以下命令:

kubectl logs high-temperature-detector -f

失去的数据后果如下:

2021/10/18 10:35:35 High temperature: 24  
2021/10/18 10:35:37 High temperature: 23  
2021/10/18 10:35:39 Low temperature: 15  
2021/10/18 10:35:41 Low temperature: 11  
2021/10/18 10:35:43 Low temperature: 12  
2021/10/18 10:35:45 High temperature: 28  
2021/10/18 10:35:47 Low temperature: 15  
2021/10/18 10:35:49 High temperature: 30  
2021/10/18 10:35:51 High temperature: 30  
2021/10/18 10:35:53 Low temperature: 15
退出移动版