gasp 物联网编程语言快速入门

2021-02-01  本文已影响0人  Lupino

Gasp 是我研发出来快速构建物联网设备的动态领域语言,它可以然后用更少的代码构建出更稳定更靠谱的物联网设备。

安装 Gasp

Gasp 是使用 haskell 研发,并使用 stack 作为构建工具。因此首先要安装 stack, 命令如下

curl -sSL https://get.haskellstack.org/ | sh

安装完 stack 后,我们用 git 将代码 clone 下来

git clone https://github.com/Lupino/gasp.git

使用 stack 进行编译

cd gasp
stack build
stack install

stack 将编译后的文件安装到 ~/.local/bin/gasp, 如果 ~/.local/bin 没在可执行路径里面,我们需要手动添加

export PATH=${HOME}/.local/bin:$PATH

新建一个项目

我们可以通过 gasp new 初始化一个项目

gasp new dht

gasp 建立一个目录,内容如下

dht
├── main.gasp
├── .gitignore
└── .gasproot

main.gasp 就是我们要写代码的地方

我们可以通过 gasp compile 来编译我们的项目

cd dht
gasp compile

编译后生成内容如下:

.
├── build
│   └── app
│       ├── app.ino
│       └── doc.md
├── main.gasp
├── .gitignore
└── .gasproot

build/app 就是我们编译后的代码,我们用 arduino IDE 打开,然后点击编译,如果有开发版的话,可以上传运行看看。

如果编译失败是依赖库没有安装,到arduino的依赖库目录,然后用 git clone 依赖项目进行安装

git clone https://github.com/Lupino/givelink-sdk.git
git clone https://github.com/zserge/jsmn.git

安装后再编译就可以成功了。

DHT温湿度传感器

我们先安装 dht 的依赖库

git clone https://github.com/adafruit/DHT-sensor-library.git

打开 main.gasp 添加代码

init do
#include <DHT.h>
#define DHTPIN 9
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
done

我们通过 init 初始化 dht 传感器

setup {=code
    dht.begin();
code=}

在 setup 里面执行 dht.begin()

metric humidity {
  type: "float",
  max: 100,
  min: 0,
  threshold: 1,
  prec: 2
}

我找到 metric temperature 在下面添加如上代码,
这段代码告诉我们,湿度的参数为 humidityfloat 类型, 最大有效值 100, 最小有效值 0, 变化上传阈值为 1, 保留两位小数。

func read_dht do
    metric_humidity = dht.readHumidity();
    metric_temperature = dht.readTemperature();
done

找到 func read_dht 片段,改成上面代码。

上传到设备

Giveyun 上申请一个设备,并复制 keytoken

然后修改 app dht, 如下:

app dht {
  key: "product_key",
  token: "device_token"
}

最后用 gasp compile, 并用 Arduino IDE 编译后上传到 arduino 板子上面,然后将 dht 传感器接到 pin 9 上。

到这一步已经开发完一个 温湿度传感器。

上一篇 下一篇

猜你喜欢

热点阅读