Вуду

Jan. 8th, 2011 09:53 pm
metaclass: (Default)
[personal profile] metaclass
Короче, как я начал вечером в четверг заниматься вуду с атмегой и датчиками температуры - так до сих пор и не прекращаю.
1) Отлечил MAX232 от глюков
2) Просверлил дырку на лоджию и дырку в лоджии и кинул туда один датчик
3) Переписал атмеговую прогу на более машиночитабельный протокол. От лени сделал этот протокол в виде потока строк "ключ=значение"
4) Написал на F# (для разнообразия и потому что он в два раза короче и удобнее чем C#) прогу-парсер этого протокола, с раздельными либами для ком-порта и разбирания его по строкам и конечным автоматом для раскладывания данных по датчикам
5) Набросал за час в кодогенераторе базу данных для хранения информации о датчиках - справочник датчиков, лог значений и текущие показания.
6) Сгенерил базу, объекты доступа к ней и прочая и прочая, прикрутил базу к клиенту, чтобы сразу было где видеть.

В процессе обнаружил несколько недоработок в кодогенераторе (нужно допилить поддержку update or insert) и проблемы в F# (тип System.Nullable<> поддерживается немного странно). Собственно, базу данных я именно ради теста этих извращений и создавал, заодно проверить работу в многопоточном окружении - с таймерами и потоками от ком-порта.

7) Сейчас на тестовый ноут придется ставить SP3 для XP и дотнет 3.5 - прога его использует, на ноуте XPSP1, а менее чем на XPSP2 он не ставится.
8) Нужно склепать прогу, которая будет висеть в трее и показывать температуру, читая ее из базы данных, кроме того, она обязана показывать насколько "свежая" эта температура, в смысле, что датчик опрашивался недавно. См. пост про мониторинг на тему "кто мониторит систему мониторинга" :)
9) ????
10) PROFIT!


PS: Ощущаю нехватку сигналов точного времени. Прикрутить туда еще и GPS что ли, в качестве их источника.

Date: 2011-01-08 10:18 pm (UTC)
From: [identity profile] golosptic.livejournal.com
нет, чтобы балкон теплоизолировать - ребе интереснее измерять, насколько оттуда дует холодом ;-P

Date: 2011-01-08 10:19 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ну не зимой же его изолировать.
А летом я все деньги потратил на ремонт и так и задолбался просто до одури :)

Date: 2011-01-09 07:09 am (UTC)
From: [identity profile] nivanych.livejournal.com
Так насколько, вроде ж, уже померил - под дверью около 5 градусов.
Правда, интереснее измерять снаружи и в реальном времени!
Вон птичка на датчик накакала - как изменилась температура датчика?
Это всё так интересно!

Date: 2011-01-08 10:19 pm (UTC)
From: [identity profile] fas-tm.livejournal.com
9) ????
Вышвыривать данные на внешний сервак и рисовать графики на Web странице с детализацией. Чтобы сидя на работе знать что дома возле окна жгут еретиков.

Date: 2011-01-08 10:20 pm (UTC)
From: [identity profile] metaclass.livejournal.com
С внешним серваком надо бы
Но наверно это следует делать прожкой которая по расписанию будет брать данные из БД и складывать их в виде статических файлов прямо на веб-сервер, мне лень на нем подключение к БД делать, т.к. я этого под линуксами и апачем не умею:)

Date: 2011-01-09 10:34 am (UTC)
From: [identity profile] black-angel-by.livejournal.com
можно чтобы локальная прожка генерила и выкладывала по ФТП на апачу под линуксом :)
подключение к БД делается кучей способов

1 тупое указаие IP сервера
2 то же, но с ВПН между ними
3 завернуть еще и в SSH за каким нить уем :)

Date: 2011-01-09 10:48 am (UTC)
From: [identity profile] metaclass.livejournal.com
Сервер БД только за vpn или ssh, да.
Но я бы сделал по другому - прожка рядом с сервером, генерит файло раз в минуту и складывает по SSH на веб-сервер.
Я вот единственное чего до сих пор не осилил - как бы это настроить ssh так, чтобы он по ключу коннектился с учеткой пользователя, который имеет право писать в папку /var/www/ файло для апача.

Date: 2011-01-09 12:55 pm (UTC)
From: [identity profile] black-angel-by.livejournal.com
коннектитсья должен не ssh,а scp например.
Он как раз заточен под передачу файлов по ssh.

Госпаде, когда я уже статью про ssh допишу ? :)

Date: 2011-01-09 12:59 pm (UTC)
From: [identity profile] black-angel-by.livejournal.com
scp -p -r -i пароли.txt /home/хуйня/фаелы* metaclass@сервер.by/var/www/htdocs/

Типа такого. Я просто с ключами как то ч0тавот нидружу :(

Date: 2011-01-09 01:02 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Не, я только с ключами. Другое дело, как бы это юзеру права дать на запись в www. В группу www-data что ли его включить.

Date: 2011-01-09 01:42 pm (UTC)
From: [identity profile] black-angel-by.livejournal.com
Ну да. Хотя можно и с acl настроить, но группа ИМХО как раз юникс-вэй

Date: 2011-01-09 01:47 pm (UTC)
From: [identity profile] black-angel-by.livejournal.com
Доступ к звуку - членство в группе audio
К 3Д ускорению - членство в группе opengl, если не оверрайджено исксервером.
право на суду - членство в группе wheel
право запускать игрушки - группа games
доступ к компактам и флопам - группы floppy , cdrom

и т д.

Date: 2011-01-08 11:00 pm (UTC)
From: [identity profile] jek-hor.livejournal.com
ыыы, ребе, вы псих :)

Date: 2011-01-08 11:12 pm (UTC)
From: [identity profile] jek-hor.livejournal.com
Как отлечил-то?

Date: 2011-01-08 11:20 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Заменил один из конденсаторов - в нем были какие-то черви потаенные.

Date: 2011-01-08 11:22 pm (UTC)
From: [identity profile] jek-hor.livejournal.com
так и думал :) У меня когда-то тоже несколько самопальных адаптеров глючили безбожно из-за кондёров.

Date: 2011-01-09 06:18 am (UTC)
From: [identity profile] berezovsky.livejournal.com
скока денег надо на ремонт

Date: 2011-01-09 07:08 am (UTC)
From: [identity profile] nivanych.livejournal.com
> Написал на F# прогу-парсер этого протокола

Тема Haskell'я не раскрыта!!

Date: 2011-01-09 08:26 am (UTC)
From: [identity profile] olegy.livejournal.com
Природу не обманешь - тут же под отмегу сотворил опердень :-)

Date: 2011-01-09 08:33 am (UTC)
From: [identity profile] metaclass.livejournal.com
Ну да, у меня специализация такая, программно-аппаратные комплексы, опердень с железом :)

Date: 2011-01-09 08:34 am (UTC)
From: [identity profile] norian.livejournal.com
круто :о))

Date: 2011-01-09 10:41 am (UTC)
From: [identity profile] litvin-v.livejournal.com
Ребе, а сигналы точного времени из радиорозетки получать слабо? По Датчик туда и ловить начало шестого сигнала :)

Date: 2011-01-09 10:49 am (UTC)
From: [identity profile] metaclass.livejournal.com
Я не знаю, где у меня эта розетка :)

Date: 2011-01-09 10:48 am (UTC)
From: [identity profile] weissmann.livejournal.com
А каким образом решился п. 1?

Date: 2011-01-09 10:49 am (UTC)
From: [identity profile] metaclass.livejournal.com
Перепаиванием одного из конденсаторов.

Date: 2011-01-09 12:34 pm (UTC)
From: [identity profile] ugenk.livejournal.com
я думал, что sp1 бывает где-то на SCADA :)

Date: 2011-01-09 12:43 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Не, мы снизу ограничились XPSP2, сверху пока на Win7.
Часть софта и на XPSP1 и ниже работает, но не рекомендуется.

Date: 2011-01-09 12:57 pm (UTC)
From: [identity profile] ugenk.livejournal.com
жостка

Date: 2011-01-10 08:13 am (UTC)
From: [identity profile] blackyblack.livejournal.com
Зачем это нужны сигналы точного времени? На атмегу кварц, батарейку и слать данные от любого из внутренних таймеров. RTC там тоже может есть - тогда использовать его.

Date: 2011-01-10 08:21 am (UTC)
From: [identity profile] metaclass.livejournal.com
Не, не, а как же неустойчивость кварца от температуры?:)
Мы хотим атомные часы.

Date: 2011-01-10 09:42 am (UTC)
From: [identity profile] blackyblack.livejournal.com
Кварц от температуры должен быть довольно устойчив. Там кстати, как правило, для RTC ставится отдельный кварц - часовой. А вот внутренний генератор действительно крайне неустойчив от температуры.

Если нужно атомные часы, то кроме GPS ничего лучше не придумали. 500 р. доплатите за чип и ура. Только UART под него надо отдельный выделять.

Date: 2011-01-10 08:26 am (UTC)
From: [identity profile] vk11.livejournal.com
придется ставить SP3 для XP

ужос

Ощущаю нехватку сигналов точного времени. Прикрутить туда еще и GPS что ли, в качестве их источника.

а сети нету чтоль?

Date: 2011-01-10 08:27 am (UTC)
From: [identity profile] metaclass.livejournal.com
Ее можыт не быть, например интернеты отвалятся, или жабы свитч погрызут.

Date: 2011-01-10 08:40 am (UTC)
From: [identity profile] vk11.livejournal.com
ну и бог с ним, появится - апдейтнется

а если спутник йопнется о небесный свод? (с) :)

Date: 2011-01-10 06:55 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Хотите дурной совет от старого казаха?

Не кладите эти данные в rdbms, кладите в rrdtool. Так Вы избавитесь от некоторой кучи проблем и приобретёте некоторую кучу полезного опыта.

Date: 2011-01-10 07:29 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
ЗЫ А протокол, в соответствии с индустриальными стандартами, лучшэ в виде:

(туда -- иницыализацыя)
*RST
:FORMAT:ELEMENTS TEMPERATURE1,TEMPERATURE2,TSTAMP,HUMIDITY
(туда -- работа)
:FETCH?
(оттуда)
+0021.5000C,-0028.4000C,1294687564secs,+065.3hum

То есть не то, чтобы это в каком-то смысле идеальный выбор -- но его косяки примерно те жэ, что и в простом key-value. И это как-то плюс-минус похожэ на SCPI.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 15th, 2025 06:44 am
Powered by Dreamwidth Studios