Stránka 1 z 1
ESP8266 + ds18b20 + thingspeak+ nodemcu
Napsal: 04 říj 2015, 17:15
od markoni
Zdravím
Narazil jsem na tuto stránku
http://vaasa.hacklab.fi/2015/01/12/esp8 ... k-nodemcu/ a v ní je kód na čtení teplotního čidla ds18b20 a podle mně tam schází rutina která komunikuje přímo s ds18b20, nebo je už v modulu ESP8266 ESP-12 který mám a chodí mi v něm jednoduchý wifi server který obsluhuje dva gpio0 a gpio2 obsažen hardware modul ke komunikaci ale to se mi nezdá asi se to má řešit programově.Proto bych potřeboval v jazyku lua takovou funkci naprogramovat ale bohužel lua je poměrně nový programovací jazyk možná příbuzný s Céčkem přiznám se že v céčku jsem nebyl "vychován" k mojí smůle

a "ze strýčkem googlem nejsme velcí kamarádi" tak někoho z vás kdyby narazil na zdroják tak mi ho jsem prskněte díky
Napsal: 04 říj 2015, 17:38
od pavoucisit
Zdravím, Lua obsahuje rutinu
-- ESP-01 GPIO Mapping
gpio0 = 3
ds18b20.setup(gpio0)
t1=ds18b20.read()
print("Temp:"..t1.." C\n")
Napsal: 05 říj 2015, 17:15
od markoni
-- ESP-01 GPIO Mapping
gpio0 = 3
ds18b20.setup(gpio0)
t1=ds18b20.read()
print("Temp:"..t1.." C\n")
Kód: Vybrat vše
--------------------------------------------------------------------------------
-- DS18B20 one wire module for NODEMCU
-- NODEMCU TEAM
-- LICENCE: http://opensource.org/licenses/MIT
-- Vowstar <vowstar@nodemcu.com>
-- 2015/02/14 sza2 <sza2trash@gmail.com> Fix for negative values
--------------------------------------------------------------------------------
-- Set module name as parameter of require
local modname = ...
local M = {}
_G[modname] = M
--------------------------------------------------------------------------------
-- Local used variables
--------------------------------------------------------------------------------
-- DS18B20 dq pin
local pin = nil
-- DS18B20 default pin
local defaultPin = 9
--------------------------------------------------------------------------------
-- Local used modules
--------------------------------------------------------------------------------
-- Table module
local table = table
-- String module
local string = string
-- One wire module
local ow = ow
-- Timer module
local tmr = tmr
-- Limited to local environment
setfenv(1,M)
--------------------------------------------------------------------------------
-- Implementation
--------------------------------------------------------------------------------
C = 0
F = 1
K = 2
function setup(dq)
pin = dq
if(pin == nil) then
pin = defaultPin
end
ow.setup(pin)
end
function addrs()
setup(pin)
tbl = {}
ow.reset_search(pin)
repeat
addr = ow.search(pin)
if(addr ~= nil) then
table.insert(tbl, addr)
end
tmr.wdclr()
until (addr == nil)
ow.reset_search(pin)
return tbl
end
function readNumber(addr, unit)
result = nil
setup(pin)
flag = false
if(addr == nil) then
ow.reset_search(pin)
count = 0
repeat
count = count + 1
addr = ow.search(pin)
tmr.wdclr()
until((addr ~= nil) or (count > 100))
ow.reset_search(pin)
end
if(addr == nil) then
return result
end
crc = ow.crc8(string.sub(addr,1,7))
if (crc == addr:byte(8)) then
if ((addr:byte(1) == 0x10) or (addr:byte(1) == 0x28)) then
-- print("Device is a DS18S20 family device.")
ow.reset(pin)
ow.select(pin, addr)
ow.write(pin, 0x44, 1)
-- tmr.delay(1000000)
present = ow.reset(pin)
ow.select(pin, addr)
ow.write(pin,0xBE,1)
-- print("P="..present)
data = nil
data = string.char(ow.read(pin))
for i = 1, 8 do
data = data .. string.char(ow.read(pin))
end
-- print(data:byte(1,9))
crc = ow.crc8(string.sub(data,1,8))
-- print("CRC="..crc)
if (crc == data:byte(9)) then
t = (data:byte(1) + data:byte(2) * 256)
if (t > 32767) then
t = t - 65536
end
if(unit == nil or unit == C) then
t = t * 625
elseif(unit == F) then
t = t * 1125 + 320000
elseif(unit == K) then
t = t * 625 + 2731500
else
return nil
end
t = t / 10000
-- print("Temperature="..t1.."."..t2.." Centigrade")
-- result = t1.."."..t2
return t
end
tmr.wdclr()
else
-- print("Device family is not recognized.")
end
else
-- print("CRC is not valid!")
end
return result
end
function read(addr, unit)
t = readNumber(addr, unit)
if (t == nil) then
return nil
else
return t
end
end
-- Return module table
return
Tak to jsem postrádal to ta funkce která obhospodařuje to čidlo DS18B20
na té stránce je odkaz na ten soubor a já jsem ho přehlédl

Napsal: 11 říj 2015, 19:07
od pavoucisit
Zdravím, zbytečně zakládáš nové vlákno. Na tvůj problém ti neodpovím, ale pokusím se tě nasměrovat jiným směrem. Zde
http://www.arduinesp.com/thingspeak je odkaz, kde s pomocí Arduino IDE naprogramuješ ESP a výsledek bude stejný. Z mého hlediska je jednodušší si hrát v Arduinu než s LUA. V tomto zapojení je sice použito jiné čidlo, ale knihovna pro DS18B20 je taky a kód se jenom lehce poupraví. Mnou odzkoušené a funkční.
Napsal: 24 říj 2015, 11:19
od markoni
Tady je video co jsem pořídil
https://youtu.be/fGNYhwSlirQ nemohu s tím hnout díky za každý postřeh kde může být chyba?
Napsal: 22 úno 2018, 19:35
od passion
Ahojte. Nejdem zakladať nové vlákno skrz moju blbosť, tak sa spýtam tu skôr, ako to hodím do koša. Felšoval som EPS-01 na novšiu verziu odniekaľ stiahnutú z webu. Už som to robil x-krát a vždy úspešne. Po flešnutí som modul pripojil k arduino doske, ale omylom som prehodil napájanie +/- 3.3V medzi sebou. ESP teraz mlčí. Nedebatuje s arduinom ani s USB prevodníkom čo mám na flešovanie. Skúšal som rôzne rýchlosti. Jedine pri pripojení/odpojení napájania sa objavia nejaké nesúrodé nezmysly na serial monitore. Teraz neviem, či som to odvalil prepólovaním, alebo som tam flešol nejakú blbosť. Máte s tým skúsenosti?
Ďakujem
Napsal: 23 úno 2018, 10:11
od pocitujlasku
passion: esp som flesoval x-krat, casto aj nejake nezmysly a stale som ju dokazal reflesnut.
Podmienka je ale GPIO 0 dat na zem, a GPIO 1 na +3.3V vtedy je v rezime flash a mala by prijat novy fw. Skus tam naliat cez arduino, tak ze vezmes zaklady program - blikanie ledky a sleduj kompilovanie. Hned ako vypise, ze je skompilovane a ide nahravat urob reset na esp a mal by zacat prijimat ten fw (arduino tam vzdy dava komplet flash).
Napsal: 25 úno 2018, 19:42
od passion
Tak ESP to prežilo. Flešol som to nakoniec klonom unaR3 tak, že som ho použil len ako prevodník - uzemnený RES. Ďakujem za nakopnutie, už mohol byť v koši.