Всем привет.
Получил недавно почтой ESP-01, пытаюсь разобраться с датчиком температуры.
Что дано:
- ESP-01.
Подключен через TTL-адаптер 3.3V, залита прошивка nodemcu, поставлен ESPlorer (спасибо автору за полезную программу). Скрипты корректно запускаются, таймер, веб-сервер, мигание светодиодом, все ок.
- DS1820 подключен по 3х-проводной схеме к GPIO0
http://vaasa.hacklab.fi/wordpress/wp-content/uploads/2015/03/esp_ds_bb.png
(вместо батарейки питание от TTL-адаптера)
- залит стандартный скрипт из примеров к прошивке:
Результат: сообщение "Total DS18B20 sensors: 0"
- стал разбираться как работает код с 1Wire, загружаю следующий скрипт:
Результат вывода очевиден:
a: nil
В общем, эта библиотека ow нефига не видит датчик.
Вопрос: что я делаю не так?
DS1820 китайский с ебея, возможно неоригинальный, но с Arduino работает нормально, выдает адрес 0x10. Конденсатор на питание вешал, от батарейки запитывал, пробовал GPIO2 вместо GPIO0, результат тот же.
Может ow как-то отдельно инициализировать надо? Может DS1820 надо 5В? Сталкивался ли кто-нибудь с "левыми" 1820?
Tnx
Получил недавно почтой ESP-01, пытаюсь разобраться с датчиком температуры.
Что дано:
- ESP-01.
Подключен через TTL-адаптер 3.3V, залита прошивка nodemcu, поставлен ESPlorer (спасибо автору за полезную программу). Скрипты корректно запускаются, таймер, веб-сервер, мигание светодиодом, все ок.
- DS1820 подключен по 3х-проводной схеме к GPIO0
http://vaasa.hacklab.fi/wordpress/wp-content/uploads/2015/03/esp_ds_bb.png
(вместо батарейки питание от TTL-адаптера)
- залит стандартный скрипт из примеров к прошивке:
Код:
t = require("ds18b20")
-- ESP-01 GPIO Mapping
gpio0 = 3
t.setup(gpio0)
addrs = t.addrs()
if (addrs ~= nil) then
print("Total DS18B20 sensors: "..table.getn(addrs))
end
print("Temperature: "..t.read().."'C")
t = nil
ds18b20 = nil
package.loaded["ds18b20"]=nil
- стал разбираться как работает код с 1Wire, загружаю следующий скрипт:
Код:
pin = 3
local ow = require("ow")
-- get list of relevant devices
local d = { }
ow.setup(pin)
ow.reset_search(pin)
while true do
tmr.wdclr()
local a = ow.search(pin)
print('a:', a)
if not a then break end
print('*')
end
a: nil
В общем, эта библиотека ow нефига не видит датчик.
Вопрос: что я делаю не так?
DS1820 китайский с ебея, возможно неоригинальный, но с Arduino работает нормально, выдает адрес 0x10. Конденсатор на питание вешал, от батарейки запитывал, пробовал GPIO2 вместо GPIO0, результат тот же.
Может ow как-то отдельно инициализировать надо? Может DS1820 надо 5В? Сталкивался ли кто-нибудь с "левыми" 1820?
Tnx