最近在做大棚物联网的小项目,其中各个节点上都挂有多个传感器,包括空气温湿度传感器SHT1X,土壤温度DS18B20,光照传感器BH1750等。现在要对各个传感器的在线状态做一个判断,确定各个传感器是否都在线,以便于后台及时维修和管理。
之前用的方式较为简单,就是不插上传感器,单片机会读到一个异常的值(看起来就很不正常的值),但是这种方式还是有些缺陷的,根本的做法是根据芯片时序来判断,即利用芯片将单片机IO口拉低这个动作来确定传感器芯片是否存在。
在SHT1X的手册中,有这么一段:
SHT1x 会以下述方式表示已正确地接收到指令:在第8 个SCK 时钟的下降沿之后,将DATA下拉为低电平(ACK位)。在第9 个SCK时钟的下降沿之后,释放