5086|6

429

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

【测评SGP40】快速部署实现的人工智能环境空气质量跟踪模型 #2 上电测试的arduino篇 [复制链接]

1、在开箱之后,现在获得的资料之后,用arduino代码开始测试。

具体连接参见上贴子,可以连接UART,如下图,其中UART选择SEL为悬空。

 

2、 不过从代码分析看,只是支持I2C读取。

  • #include "sgp40_voc_index.h"
  • void setup() {
  • int16_t err;
  • Serial.begin(115200); // start serial for output
  • // wait for serial connection from PC
  • // comment the following line if you'd like the output
  • // without waiting for the interface being ready
  • while(!Serial);
  • /* Initialize I2C bus, SHT, SGP and VOC Engine */
  • while ((err = sensirion_init_sensors())) {
  • Serial.print("initialization failed: ");
  • Serial.println(err);
  • sensirion_sleep_usec(1000000); /* wait one second */
  • }
  • Serial.println("initialization successful");
  • }
  • /* Run one measurement per second */
  • void loop() {
  • int16_t err;
  • int32_t voc_index;
  • int32_t temperature_celsius;
  • int32_t relative_humidity_percent;
  • err = sensirion_measure_voc_index_with_rh_t(
  • &voc_index, &relative_humidity_percent, &temperature_celsius );
  • if (err == STATUS_OK) {
  • Serial.print("VOCindex:");
  • Serial.print(voc_index);
  • Serial.print("\t");
  • Serial.print("Humidity[%RH]:");
  • Serial.print(relative_humidity_percent * 0.001f);
  • Serial.print("\t");
  • Serial.print("Temperature[degC]:");
  • Serial.println(temperature_celsius * 0.001f);
  • } else {
  • Serial.print("error reading signal: ");
  • Serial.println(err);
  • }
  • sensirion_sleep_usec(1000000); /* wait one second */
  • }

头文件如下,

  • #include "sgp40_voc_index.h"
  • #include "sensirion_arch_config.h"
  • #include "sensirion_voc_algorithm.h"
  • #include "sgp40.h"
  • #include "shtc1.h"
  • #ifdef __cplusplus
  • extern "C" {
  • #endif
  • static VocAlgorithmParams voc_algorithm_params;
  • int16_t sensirion_init_sensors() {
  • int16_t ret;
  • sensirion_i2c_init();
  • ret = shtc1_probe();
  • if (ret)
  • return SENSIRION_SHT_PROBE_FAILED;
  • ret = sgp40_probe();
  • if (ret)
  • return SENSIRION_SGP_PROBE_FAILED;
  • VocAlgorithm_init(&voc_algorithm_params);
  • return 0;
  • }
  • int16_t sensirion_measure_voc_index(int32_t* voc_index) {
  • return sensirion_measure_voc_index_with_rh_t(voc_index, NULL, NULL);
  • }
  • int16_t sensirion_measure_voc_index_with_rh_t(int32_t* voc_index,
  • int32_t* relative_humidity,
  • int32_t* temperature) {
  • int32_t int_temperature, int_humidity;
  • int16_t ret;
  • uint16_t sraw;
  • ret = shtc1_measure_blocking_read(&int_temperature, &int_humidity);
  • if (ret)
  • return SENSIRION_GET_RHT_SIGNAL_FAILED;
  • if (temperature) {
  • *temperature = int_temperature;
  • }
  • if (relative_humidity) {
  • *relative_humidity = int_humidity;
  • }
  • ret = sgp40_measure_raw_with_rht_blocking_read(int_humidity,
  • int_temperature, &sraw);
  • if (ret) {
  • return SENSIRION_GET_SGP_SIGNAL_FAILED;
  • }
  • VocAlgorithm_process(&voc_algorithm_params, sraw, voc_index);
  • return 0;
  • }
  • #ifdef __cplusplus
  • }
  • #endif

不过下载代码后没有正确启动数据,读取失败。就是如下指令返回的是读取错误。

err = sensirion_init_sensors()

这下进度就受阻了,需要分析看为什么这样的情况出现。

 

此帖出自传感器论坛

最新回复

不错,感谢楼主分享,有时间试试看。加油!!!!!!!!!!   详情 回复 发表于 2024-9-28 12:03
点赞 关注
 
 

回复
举报

1249

帖子

69

TA的资源

纯净的硅(中级)

沙发
 

这个有点坑爹,i2c需要外接上拉电阻,板子上没有。。。我测试也是这种情况。。。不能开箱即用,串口呢,没有Arduino驱动,也没有其它微控制器的串口驱动,坑爹。好在协议简单,我自己写了,啥时候空了发出来。

此帖出自传感器论坛

点评

手册里提到I2C需要外部上拉电阻。一般单片机如果配置内部上拉应该也可以使用。  详情 回复 发表于 2021-3-1 11:22
nmg
是板子设计的问题吗?  详情 回复 发表于 2021-2-26 11:33

赞赏

1

查看全部赞赏

 
 
 

回复

5278

帖子

236

TA的资源

管理员

板凳
 
dql2016 发表于 2021-2-1 13:25 这个有点坑爹,i2c需要外接上拉电阻,板子上没有。。。我测试也是这种情况。。。不能开箱即用,串口呢,没 ...

是板子设计的问题吗?

此帖出自传感器论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

是的  详情 回复 发表于 2021-2-28 12:25
 
 
 

回复

1249

帖子

69

TA的资源

纯净的硅(中级)

4
 
nmg 发表于 2021-2-26 11:33 是板子设计的问题吗?

是的

此帖出自传感器论坛
 
 
 

回复

9857

帖子

24

TA的资源

版主

5
 
dql2016 发表于 2021-2-1 13:25 这个有点坑爹,i2c需要外接上拉电阻,板子上没有。。。我测试也是这种情况。。。不能开箱即用,串口呢,没 ...

手册里提到I2C需要外部上拉电阻。一般单片机如果配置内部上拉应该也可以使用。

此帖出自传感器论坛

点评

有时间试试看  详情 回复 发表于 2021-3-1 12:36
 
 
 

回复

1249

帖子

69

TA的资源

纯净的硅(中级)

6
 
littleshrimp 发表于 2021-3-1 11:22 手册里提到I2C需要外部上拉电阻。一般单片机如果配置内部上拉应该也可以使用。

有时间试试看

此帖出自传感器论坛
 
 
 

回复

419

帖子

0

TA的资源

纯净的硅(中级)

7
 

不错,感谢楼主分享,有时间试试看。加油!!!!!!!!!!

此帖出自传感器论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
报名最后一周!2025 英飞凌消费、计算与通讯创新大会-北京站
会议时间:3月18日(周二)09:30签到
参会奖励:电动螺丝刀套装、户外登山包、京东卡

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表