Метеостанция
semiurg — 07.01.2015
Продолжая тему, поднятую этим постом — о дистанционном контроле температуры подручными методами и средствами, — приступаем ко второму этапу. Изготавливаем домашнюю метеостанцию из подручного мусора, применяя смекалку и находчивость вместо денег.
Если вы тот пост читали, то помните, что проблема была в невозможности отправлять данные с термодатчика по e-mail, из-за того, что почтовые сервера нынче требуют SSL, а программа его не умеет.
Так вот, в комментах мне подсказали интересное решение — дивную консольную программу отправки электронной почты, умеющую ssl. Программа эта называется незамысловато, sendEmail. Это небольшой (1,5 мб) почтовый SMTP-клиент, полностью управляемый с командной строки. Отличный инструмент для автоматической отправки писем, написанный на языке Perl. Прога не требует установки никаких специальных модулей, да и вообще инсталляции, представляя собой один голый экзешник. Все данные для отправки (сервер, логин-пароль, текст письма, заголовок и путь к вложению) задаются в командной строке как аргументы.
Таким образом, задача чертовски упростилась — нужно только подготовить данные к отправке — то есть, собрать текстовые логи с температурой в один архив с заранее заданным именем, и положить его туда, где программа его возьмет. Для этого используется архиватор RAR, также умеющий работать из командной строки.
Да, кстати, тут и железо для рабочей конфигурации подоспело. Старый ноут с отломанной крышкой. Вот он, в режиме наладки, с подключенным монитором-клавиатурой:
Там стоит WinXP. Конечно, для таких задач (долго работать автономно, всеми забытый, без монитора, покрываясь пылью в углу) гораздо больше подходит что-нибудь юниксоидное, но это были бы пляски с бубном на неделю. Под винду хотя бы готовый модуль к термодатчику есть.
На ноут были установлены все нужные утилиты, написан и поставлен на автоматическое исполнение скрипт, а затем он просто был просто подключен к UPSу и роутеру, отключен от монитора и клавиатуры и засунут за стол. Откуда на удлинителе USB выведен наружу датчик:
Да, кстати, сразу несколько человек предложили обойтись без термодатчика, просто периодически фотографируя вебкамерой обычный термометр. Есть и такое решение! Мне оно избыточно, но я нашел дивную софтину! Webcam2Email. Она запускается из командной строки, делает снимок вебкамерой и отправляет его на почту. Снимок потом удаляет. Такая программа-шпион. Данные почты хранятся в ini-файлике рядом (в открытом виде, так что лучше завести под задачу мусорный ящик, которого не жалко).
Чисто раз уж нашел, решил заодно и реализовать процесс в тот же скрипт — а пусть кроме температуры отправляет картинку из окна! Будем видеть, много ли снегу навалило, или не пора ли косить газон!
Камеру нашел какую-то в мусоре, оказалась с невыключаемыми светодиодами на морде. Пришлось вскрывать и варварски выкусывать.
Зато потом — красота:
Тем же скриптом делается снимочек и отправляется мне на почту. Вебка — распоследнее дешевое нонейм-барахло, так что качество не очень, ну да я опять же эксперимента ради.
Можно поставить хорошую HD-камеру, будет красиво. Этак, если
набрать фоток за год, можно отличную гифку собрать ![]()
Ну и, наконец, сам скрипт:
Первая строчка — запуск программы, отправляющей снимок с вебкамеры. Аргументы ей не нужны, она сама знает, что делать.
Вторая строчка — удаление из папки с логами всех файлов, старше суток — зачем мне старые логи отправлять? Я их вчера уже получил… Ну и, опять же, нет бесконечно растущей папки.
Третья строчка — синхронизации папки с логами в другую папку. Зачем это нужно, почему нельзя архивировать прямо исходную? Потому что в ней постоянно пишется последний лог, а значит, архиватор выдаст ошибку доступа «файл занят другим приложением». Скопировать его в другую папку это, однако, не мешает. У меня это папка в дропбоксе (так что я получаю файлы и в почту и в дропбокс), но это совершенно не обязательно.
Третья строчка запускает архиватор, который пакует папку с логами в архив и кладет его в корень диска С под именем TEMPer.rar.
Четвертая — запускает программу sendEmail, задавая в качестве аргументов smtp-сервер, логин/пароль и так далее (на скриншоте затерты). Программа забирает архив с логами и отправляет на указанную почту.
Последняя строчка — удаление отправленного архива, дабы не умножать сущности.
Вот этот скрипт через «Планировщик заданий» вешается на исполнение дважды в сутки — в 8.00 и 15.00. Так что в день приходит четыре письма — два с картинкой и два с таблицами температуры. Картинки тут, в принципе, лишние, но зато прикольно.
Вот такая у меня автономная метеостанция, собранная из чего попало. Чем это лучше временного решения с постоянно работавшим основным компом? Чисто в энергопотреблении. Не то чтобы мне было жалко электричества…
Но отключения на несколько часов у нас тут хоть и нечасто, но бывают. Относительно прожорливый десктоп на UPS-е провисит полчаса от силы, а вот ноут без экрана в режиме фоновой активности может хоть целый день с него питаться. Так что до обратного включения скорее всего доживет.
Но это что — я в процессе придумал, как можно организовать
метеостанцию на андроиде!
У меня как раз и лишний смарт завалялся… Но это как-нибудь в другой
раз.
Оригинал этой записи на http://semiurg.ru/2015-01-07/meteostantsiya/
|
|
</> |
Цветы для любимых: как выбрать идеальный букет на праздник и свидание 
