在使用wemos的过程中,发现对于DS18B20的文章很少,大多数都是Arduino板的文章,虽然代码通用。但是还是有一些坑的。在这里就不讨论代码了,主要记录一下那几点坑及和Arduino板的一些区别。
1、如果你一直显示-127度,那么排除你物理接线有问题,可能有以下原因:
1)你的io口不对,wemos 板io口和通过DallasTemperature包代码添加的口差异很大,而且写D*也是不生效的,你需要写和Arduino板一样的纯数字,但是这里也是坑的开始,这里写出数字和wemos板的io口是不对应的,就拿2为例,你如果插入D2就会读到-127度,因为没有读到硬件。如果你写的2,需要插入到 D9 中。其他的话需要一 一测试。
wemos在DS18B20时和Arduino板的区别:
·1、他们所对应的io口差异很大,Arduino板和代码输入的io口一直,但是wemos板差异很大。而且在用DallasTemperature包读取过程中,weoms的插口和gpio口值也没有关系,比如D2对应GPIO16,但是你代码写16,插在D2口你也是拿不到数据的。
2、Arduino板载读取DS18B20时是需要绑定一个4.7k的电阻的,这个和网上说的一致。而且DS18B20可以接在5V或者3.3V都可以正常工作。
3、wemos板读取DS18B20不需要特意绑定一个电阻。而且5V和3.3V都可以读到数据。但是在5V的时候数据不稳定,所以必须使用3.3V输入。