Pull to refresh
28
0
Константин @Migrator

Программист

Send message
Собственно Вы дали исчерпывающую информацию:) Блок питания оказался лишним, от микро USB питания вполне достаточно.
Дороговато будет. На Алли, С платной доставкой получается US $25.93. Трудно сказать. С одной стороны 2000 это уже ахтунг. С другой, точность у них одинаковая. У меня 5000. Меня устраивает.

Это был ответ для DmitrySpb79
В офисе не актуально. Там влажностью нет ни какого способа управлять. Для дома несомненно актуально. Прикрутить датчик влажности не проблема, надо придумать как вписать показания в интерфейс. Есть такие заявки, я над этим думаю.
Для меня в Lua есть одна совершенно замечательная особенность. Можно в готовое, работающее устройство добавлять и изменять скрипты на ходу. Через USB или WiFi. Мне нравится что можно добавлять и менять функциональность в живую, просто пересылая из управляющей программы на PC скрипты. Проблема с памятью решается разбиением на модули и правильным их оформлением. В том числе широким использованием локальных переменных и функций.
По деньгам примерно 3000р за детали + корпус от 200р до 1500р Мне корпус достался бесплатно.
По времени — сейчас могу повторить за 1 день. Когда делал, экспериментировал, переделывал, думал…
Месяц наверное.
Я (и не только я) на работе пишу клинские места в клиент-серверных проектах на delphi. И да, контора работает уже 15 лет.
Delphi универсальный язык, какая в сущности разница, что на нем писать, если это не сказывается на результат?
Не соглашусь. Это довольно простой проект, и очень не критичный к ресурсам.
У меня есть другой проект где несколько десятков программных модулей, десяток датчиков, управление оборудованием, обработка связи по WIFI.
И все нормально работает.
Да о памяти конечно приходится задумываться, но не настолько критично.
Лично мне нравится lua своим изяществом, универсальностью, и очень быстрой отладкой.
Это есть в исходных скриптах.
Примерно так:
local function pin1cb(level) -- Функция обработки прерывания
local tt = tmr.now()/1000; -- получаем текущее время
if level == 1 then Если уровень высокий
h = tt;
tl = h - l; -- вычисляем промежуток времени прошедший с предыдущего цикла
ppm = 5000 * (th - 2) / (th + tl - 4) -- вычисляем значение со2 по формуле из даташита.
if ppm>300 then ListTime[3]={time=tmr.time(), data=ppm} end; -- Если данные похожи на правду записываем их в глобальную переменную
else -- если низкий фронт
l = tt; -- сохраняем текущее время
th = l - h; -- вычисляем прошедшее время с предыдущего цикла
end
if c>3 then gpio.mode(1,gpio.INPUT) print('pp1',ppm) return ppm end -- если прошло больше 3 циклов считаем что значение получено
c=c+1
if level == 1 then gpio.trig(1, "down") else gpio.trig(1, "up") end -- переключаем прерывание с повышающегося фронта на понижающий и обратно.
end

gpio.mode(1,gpio.INT) -- устанавливаем 1 пин в режим прерывания
gpio.trig(1, "up",pin1cb) -- настройка прерывания на 1 пине. Если фронт сигнала возрастает вызываем функцию pin1cb


У меня нет проблем с скачущими значениями. Считываю все подряд. Даже когда прибор стоит у окна и вокруг него неспокойная воздушная обстановка. Значения конечно скачут. Но плюс/минус 150 — 250 ppm за 10 минут. И это похоже на реальную картину.
Да, это моя статья, и она действительно похожа.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity