亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于 AWS 物联网服务的可穿戴温度监测器

发布时间:2021-10-18
分享到:

基于 AWS 物联网服务的可穿戴温度监测器

发布时间:2021-10-18
分享到:

本方案使用 AWS IoT-EduKit 的可穿戴温度测量设备,它将数据上传到 AWS 云并根据温度指示 LED 条。

背景
在大流行的情况下老年人面临许多问题,通过这个项目我将分享解决的问题之一,即使用 AWS IoT EduKit 进行温度监控。更重要的是,我们可以连接脉搏血氧仪、心率传感器,因此我们将获得患者所需的所有数据以进行监控。

covid-19 的症状之一是发烧。所以他们必须不断检查温度。该项目将帮助他们指示温度并将值上传到 AWS 云中。当温度高于正常温度时显示红色,否则显示绿色。

该项目是使用 AWS 云进行温度监控的示例模型。该项目使用 AWS IoT EduKit、LM35 和 AWS 服务器。lm35 传感器可能不准确。

命令行界面
首先,我们必须安装 AWS CLI 和一个编程 IDE(如 vscode、arduino)。安装 AWS CLI 后打开终端(我正在使用ubuntu),并通过以下方式配置 AWS

然后,它会像这样显示并提供适当的数据

要获取端点日期,请使用以下命令

然后,在您的设备中使用凭据

配置
要配置AWS IoT EduKit,请打开ide(我正在使用platform io 扩展名visual studio code),打开新窗口和新平台io终端,然后打开aws注册文件夹并使用此命令注册(在pio终端上)

现在,我们必须配置 AWS IoT EduKit,

然后选择Component config–>Amazon Web Services IoT Platform and open AWS IoT Endpoint Hostname,输入您的端点地址并保存,现在我们必须AWS IoT EduKit Configuration从菜单中设置 wifi 。设置您的WiFi SSID和WiFi Password,提供适当的数据并保存。

然后我们必须启用 AWS IoT EduKit I/O 端口。component config -> Core 2 for AWS Hardware enable并启用Expansion port A, B, C

编码
要读取传感器,请添加这一行

在这个函数中

读取模拟值

在这个函数中

static void publisher(AWS_IoT_Client *client, char *base_topic, uint16_t base_topic_len){
char cPayload[100];
int32_t i = 0;
IoT_Publish_Message_Params paramsQOS0;
IoT_Publish_Message_Params paramsQOS1;
paramsQOS0.qos = QOS0;
paramsQOS0.payload = (void *) cPayload;
paramsQOS0.isRetained = 0;

//temperature sensor
float sensor = Core2ForAWS_Port_B_ADC_ReadMilliVolts();
int temperature = sensor / 10;
if(temperature > 37){
Core2ForAWS_Sk6812_SetSideColor(SK6812_SIDE_LEFT, 0xff0000);
Core2ForAWS_Sk6812_SetSideColor(SK6812_SIDE_RIGHT, 0xff0000);
Core2ForAWS_Sk6812_Show();
}else{
Core2ForAWS_Sk6812_SetSideColor(SK6812_SIDE_LEFT, 0x00ff00);
Core2ForAWS_Sk6812_SetSideColor(SK6812_SIDE_RIGHT, 0x00ff00);
Core2ForAWS_Sk6812_Show();
}
cJSON *payload = cJSON_CreateObject();
cJSON *Temp_level = cJSON_CreateNumber(temperature);
cJSON_AddItemToObject(payload, "T-value C",Temp_level);
const char *JSONPayload = cJSON_Print(payload);
paramsQOS0.payload = (void *) JSONPayload;
paramsQOS0.payloadLen = strlen(JSONPayload);

// Publish and ignore if "ack" was received or  from AWS IoT Core
sprintf(cPayload, "%s : %d ", "Hello from AWS IoT EduKit (QOS0)", i++);
paramsQOS0.payloadLen = strlen(cPayload);
IoT_Error_t rc = aws_iot_mqtt_publish(client, base_topic, base_topic_len, &paramsQOS0);
if (rc != SUCCESS){
ESP_LOGE(TAG, "Publish QOS0 error %i", rc);
rc = SUCCESS;
}
ui_textarea_add("%s", (char *)JSONPayload, paramsQOS0.payloadLen);
cJSON_Delete(payload);
paramsQOS1.qos = QOS1;
paramsQOS1.payload = (void *) cPayload;
paramsQOS1.isRetained = 0;
// Publish and check if "ack" was sent from AWS IoT Core
sprintf(cPayload, "%s : %d ", "Hello from AWS IoT EduKit (QOS1)", i++);
//sprintf(cPayload, Temp_level);
paramsQOS1.payloadLen = strlen(cPayload);
rc = aws_iot_mqtt_publish(client, base_topic, base_topic_len, &paramsQOS1);
if (rc == MQTT_REQUEST_TIMEOUT_ERROR) {
ESP_LOGW(TAG, "QOS1 publish ack not received.");
rc = SUCCESS;
}
}

所以,我们将得到温度值。现在我们可以将代码上传到 AWS IoT EduKit

上传
要编译固件,请在平台 io 终端上使用此命令

上传固件

现在准备连接温度传感器。

连接
AWS IoT EduKit 具有 ADC 引脚,我们使用的是端口 B。

将传感器连接在其中。

通过 AWS IoT MQTT 客户端订阅
打开AWS IoT MQTT client > Test >MQTT测试客户端,然后subscribe 使用 client id。然后就可以看到AWS IoT EduKit发送的数据了

可穿戴设备

结论
我们可以添加更多的传感器,通过云端监控患者的健康状况。所以我们可以及早采取预防措施。

该方案所用到的代码

如果您对此项目有任何想法、意见或问题,请在下方留言。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论