Владей я в совершенстве Си, я бы не смотрел в сторону Lua - не находете это логичным? )исходники открыты, смотрите коммиты - там все будет видно
Тоже наступил на эти грабли. Встал вопрос, а какие другие ноги у чипа можно задействовать как выходы с NodeMCU чтобы с ними небыло никаких проблем. Нужно хотябы 2.Что получается, esp-01 - никакой пин нельзя подать на землю ДО подачи питания.
Лучше покупать ESP-07 и ESP-12 для таких потребностей или (если уж очень надо) делать такТоже наступил на эти грабли. Встал вопрос, а какие другие ноги у чипа можно задействовать как выходы с NodeMCU чтобы с ними небыло никаких проблем. Нужно хотябы 2.
Мне только пришли ESP-07. Еще пока не запускал их.Victor, видел я все это. Мне нужен ответ практика который использовал эти ноги с прошивкой NodeMCU, и чтобы они не влияли на запуск при подаче питания и не ребутили проц при работе. Чтобы небыло как с уже выведенными GPIO от которых в данной реализации толку нет. Мне нужно две безпроблемные ноги проца которые я припаяю к имеющимся выводам на гребенке(отрежу от них дорожки). А то паять лишний раз эту мелочь тот еще квест, минут 20 к ножке АЦП подпаивался.
конечно же есть ESP8266 Datasheet - Module Application Design Guide - 20.08.2014 Englishнету такого документа больше в онлайне...
function gmail(subject,body)
username = "base64username"
password = "base64pwd"
from="from@gmail.com"
to="to@gmail.com"
conn=net.createConnection(net.TCP, 1)
conn:on("receive", function(conn, payload)
print(payload)
end)
conn:on("disconnection", function(conn,payload)
print("disconnect")
conn:close()
end)
conn:on("connection", function(conn,payload)
conn:send("EHLO\r\n");
conn:send("AUTH LOGIN\r\n");
conn:send(username.."\r\n");--username
conn:send(password.."\r\n"); --password
conn:send("MAIL FROM:<" .. from ..">\r\n");
conn:send("RCPT TO:<" .. to .. ">\r\n");
conn:send("DATA\r\n");
conn:send("Subject:%s\r\n%s\r\n.",subject,body);
conn:send("quit\r\n");
end)
conn:connect(465,"64.233.164.108")
end)
end
local moduleName = ...
local M = {}
_G[moduleName] = M
-- DHT1x SDA/SCL pins, defaults GPIO2/GPIO0
local sda = 4
local scl = 3
-- set SDA LOW
function dl()
gpio.write(sda, gpio.LOW)
gpio.mode(sda, gpio.OUTPUT)
end
-- set SDA HIGH
function dh()
gpio.mode(sda, gpio.INPUT)
gpio.write(sda, gpio.HIGH)
end
-- set SCL LOW
function cl()
gpio.write(scl, gpio.LOW)
end
-- set SCL HIGH
function ch()
gpio.write(scl, gpio.HIGH)
end
-- get SDA value
function dr()
gpio.mode(sda, gpio.INPUT)
return gpio.read(sda)
end
function wait()
for i = 1, 100 do
tmr.delay(10000)
if dr() == gpio.LOW then
return true
end
end
return false
end
function read_byte()
local val = 0
for i = 0, 7 do
ch()
val = val * 2 + dr()
cl()
end
return val
end
function write_byte(val)
for i = 0, 7 do
if bit.band(val, 2 ^ (7-i)) == 0 then
dl()
else
dh()
end
ch(); cl()
end
end
function read_cmd(cmd)
dh() ch() dl() cl() ch() dh() cl() -- transmission start sequence
write_byte(cmd)
ch(); cl()
if not wait() then
return nil
end
dh()
local val = read_byte()
dh() dl() ch() cl() dh() -- ackhowledge
val = val * 256 + read_byte()
dh() ch() cl() -- skip crc
return val
end
-- initialize bus
--parameters:
--d: sda
--l: scl
function M.init(d, l)
if d ~= nil then
sda = d
end
if l ~= nil then
scl = l
end
gpio.mode(sda, gpio.INPUT)
gpio.mode(scl, gpio.OUTPUT)
print("SHT1x init done")
end
-- get temperature in raw format
function M.get_raw_temperature()
return read_cmd(3)
end
-- get humidity in raw format
function M.get_raw_humidity()
return read_cmd(5)
end
return M
sht = require("sht1x")
sht.init(4, 3)
temp = sht.get_raw_temperature()
hum = sht.get_raw_humidity()
Спасибо большое, буду пробовать.Попробуйте переделать модуль в исполняемый lua файл, чтобы его можно было из основной программы выполнить через dofile().
Нет, у DHT другой протокол обмена. SHT использует I2C-подобный протокол, а у DHT протокол 1-wire.А с датчиками dht1.. не будет работать Ваш модуль? sht дорогие нынче...
Во, помогло объявление всех функций локальными. Спасибо!- проверить, не экспортирует ли исполняемый файл ничего (функции) в основной поток. Если так, они будут оставаться в памяти.