Заметки любителя экспериментов

Позднее Ctrl + ↑

Первый опыт с ESP8266

Не так давно приобрел ESP8266-07 с адаптером под «гребенку» с шагом 2,54 мм. Давно была мысль попробовать что она из себя представляет, а тут просто вспомнил и прикупил. Обошлось мне все это буквально в 275 рублей. Думаю, что это не та сумма, которую было бы жалко за опыт.
До экспериментов несколько дней руки не доходили, пока не утащил на работу Там, когда выдалось свободное время, занялся платой. Для подключения использовал беспаечную плату, кабели для подключения и адаптер USB-TTL. Для начала система, как обычно, скачала и поставила драйверы на адаптер, затем уже я начал собирать схему.
Без приключений не обошлось. Поначалу компьютер ни в какую не хотел «общаться» с ESP. Не считывал данные, не мог перепрошить, вообще ничего не мог с ней сделать. Плюсом к этому всему была «любовь» Windows к работе с COM-портами. Здесь я подразумеваю тот момент, что если ты не освободил порт (например, программа зависла и ее пришлось завершать принудительно) или сделал еще какие-то его настройки, «несовместимые» с Windows — тебя ждет перезагрузка системы. Сколько я этого «накушался», когда занимался торгово-кассовым оборудованием!!!
И вот, ура! Адаптер определился программой, можно считать параметры и так далее. Первое, что я сделал — перепрошивка. Особой надобности в этом не было (по крайней мере, пока что), просто хотелось получить опыт в этом направлении. С перепрошивкой пришлось помучиться. В итоге, программа залила на плату другую прошивку, но в самом конце выдала сообщение о невозможности выхода из режима прошивки. Пока пытался что-то сделать с платой, привести ее в рабочее состояние, сложилось впечатление, что я получил «кирпич». В тоже самое время не покидала мысль, что ЭТО невозможно убить. Заменил программу прошивки. Поначалу смутило множество настроек — память подсказывала, что почти все они критичны для прошивки. Поменял те, которые, на мой взгляд, было нужно и перепрошил. Получил рабочую плату, которая перезагружалась в самый неожиданный момент. Снова битва с прошивальщиком... В конце концов я получил вполне работоспособную плату, которая адекватно реагировала на команды и не перезагружалась в самый неподходящий момент. В итоге, причиной всех перезагрузок платы оказался плохой контакт питания. Но это я понял уже в самом конце экспериментов.
Завтра возьму с собой на работу датчики, попробую подключить к плате, прошив перед этим NodeMCU — там есть возможность использовать скрипты на lua. Посмотрим что из этого всего получится...

Мой «сосед»

Как говорится, ничто не предвещало...
Вчера вечером раздается звонок в домофон. Я бы его вообще не услышал, потому что курил на лоджии, но у собаки есть дурацкая привычка заливаться лаем каждый раз, когда кто-то звонит в домофон или дверной звонок. Снимаю трубку, спрашиваю кто там. Меня в ответ спрашивают не проживает ли по данному адресу такой-то. Нет, говорю. После чего мне сообщают, что это милицию и они хотят мне задать несколько вопросов. Впускаю их и иду открывать входную дверь. На пороге стояли два молодых человека, один из которых предъявил мне удостоверение работника милиции. Хорошо, теперь я готов к разговору.
В ходе беседы оказалось, что по их данным в моей квартире прописан житель Кыргыстана. Я слегка удивился. Мне показали бумагу, в которой черным по белому в строке с ФИО этого гражданина был написан мой адрес. С учетом того, что я живу в этой квартире более 10 лет, это слегка, скажем так, не соответствует действительности. Сама же квартира была куплена еще перед поступлением сестры в ВУЗ, то есть более 20 лет.
В конце они записали мои данные, написали от руки заявление, что квартира принадлежит мне, проживаю я с женой и указанный гражданин здесь не числится и не проживает. После этого извинились и ушли.
Чуть позже я уехал по делам. Спустя некоторое время звонит мужчина с незнакомого номера, представляется моим участковым и спрашивает не приходили ли ко мне ребята. Подтверждаю, после чего он снова уточняет что со мной не проживает данный гражданин. Говорю, что нет такого и никогда не было. Он вздыхает и говорит, что будет разбираться с миграционной службой.
Потом я позвонил маме, рассказал эту историю. Она посоветовала мне проверить сколько человек прописано в квартире. Зашел на сайт «Жилфонда», распечатал квитанцию об оплате, проверил. Все верно, прописан только я. Хоть это успокаивает.
Ждем продолжения истории. Чувствую, что этим дело не закончится

«ДНС» на Говорова

Понадобилась мне тут мышь взамен сломанной. Так как день был выходной, то решил зайти в ближайший компьютерный магазин «ДНС». Нашел мышки, начал рассматривать. Я, в принципе, не так уж часто заглядываю в упаковку — нет надобности. Но тут что-то нашло. Начал вскрывать упаковки. И ладно бы если только они были надорваны — это могли сделать покупатели. Но следы грязи на кнопках от пальцев (в процессе использования на них собирается грязь с рук) меня просто убили. Одна, вторая, третья, четвертая... Да вы что, издеваетесь? В общем, магазин, как говорится, «ни разу не палится», выкладывает мыши, которые явно не один месяц перед этим провели на стенде. И никто ничего бы не заметил, если бы их хотя бы протерли перед тем, как заново упаковать и выложить на продажу.

Создание бота Telegram

Для чего мне это понадобилось? Как писал ранее, телефон не всегда почему-то проверяет почту, несмотря на заданный минимальный интервал проверки. Более удобным показалось использовать telegram для срочных оповещений. Задавшись этой целью, установил на сервер telegram-cli, который, как оказалось позднее, не понадобился. Снесу, однако :-)
Для начала создаем бота при помощи @BotFather. Задаем ему имя и описание. Я также задал и юзерпик для красоты. Открываем чат с этим ботом, набрав в браузере ссылку https://t.me/<имя_вашего_бота>. Затем нужно узнать ваш идентификатор. Для этого я воспользовался ботом @userinfobot, вы можете использовать другие методы. В принципе, вся нужная информация у нас есть.
Следующей задачей стала отправка сообщений из скрипта linux. Здесь нам поможет стандартный curl. После серии опытов обрисовалось примерно вот такое тело скрипта:

ChatID=*****
BotToken=******
Text="Hello, world!"

curl -s -X POST "https://api.telegram.org/bot$BotToken/sendMessage" -F chat_id="$ChatID" -F text="$Text"

Здесь ChatID, BotToken и Text — ваш идентификатор в telegram, токен бота, который вам выдали при его создании, и текст сообщения, соответственно. Хочу обратить внимание на то, что переменные в строке curl взяты в двойные кавычки. Это сделано для того, чтобы избежать утери части текста, если в нем присутствуют пробелы.
С текстом разобрались, остается отправка фотографии. Здесь все чуть-чуть сложней:

curl -s -X POST "https://api.telegram.org/bot$BotToken/sendPhoto" -F chat_id="$ChatID" -F photo="@$1" -F caption="$Text"

Добавился еще один параметр photo, в который передается имя файла. Полный путь к файлу у меня передается самому скрипту, поэтому просто используем его. Также параметр text из предыдущего примера я заменил на необязательный caption — название фото.
На текущий момент motion оповещает меня об обнаружении движения, чуть позже присылает фото и ссылку на файл с записью. В планах еще добавить обнаружение лиц на фото, чтобы было видно кто пришел или ушел. Следующим шагом может стать, например, автоматическое включение моего компьютера когда прихожу домой.

Настройка motion

Так как незадолго до этого мой сервер «приказал жить» (оказалось, что проблема в кабеле питания камеры, но сейчас не об этом), то заодно заново установил систему и, соответственно, перенастраивал половину программ. В том числе и motion.
После настройки оказалось, что в кадре присутствуют помехи, на счет которых у меня была мысль. Но проверить ее удалось только вчера. И действительно, оказалось, что я подключил питание камеры к кабелю, на котором было расположено питание жесткого диска, который и создавал наводки в питании камеры. Переключение на другой кабель устранило эту проблему.
Затем вспомнил, что давно хотел ускорить получение сообщений о появлении движения в поле зрения камеры. Самым подходящим для этого показался Telegram. Поиск соответствующих пакетов в репозитории выдал результат в виде пакета telegram-cli. После его установки никак не получалось его активизировать. По идее, после запуска программы она должна выдать запрос на авторизацию, но ничего не происходило. Процесс висел достаточно продолжительное время, после чего просто выдавал сообщение о крахе. «Игры» с ключами ни к чему не привели, результат был таким же. Вопрос в чат разработчиков остался без ответа. Остается только оставить такой же вопрос на форуме и надеяться на то, что хоть кто-то ответит на него. И, конечно, гуглить, яндексить и так далее...

Перенос owfs

С учетом того, что сервер порой не работает по непонятным пока что причинам, было принято решение перенести owfs на роутер. Он, конечно, и так достаточно загружен, но с отправкой данных один раз в 5 минут, думаю, справится. Для чего нужен owfs? Для считывания данных с датчика температуры и отправки данных на другие серверы типа narodmon.ru.
Поначалу роутер не видел USB-TTL адаптер, пришлось установить еще один дополнительный пакет. После его установки и перезагрузки роутера в списке устройств появился адаптер. Дальше было делом техники: установить owserver, переконфигурировать файл ownet.php на сервере, чтобы он забирал данные с роутера и выдавал их на сайт. Затем просто проследить, что все это работает.
К сожалению, далеко не в первый раз, оказалось, что сервер narodmon периодически перестает отвечать на отправку данных и, по истечении указанного времени, шлет сообщения о том, что мой сервер ничего не присылает. Просмотр журналов работы показывает, что в период, когда narodmon не «получает» от моего сервера данные, последний вполне успешно их отсылает, но narodmon не подтверждает их получение. В общем, мутная достаточно ситуация... В тоже время WeatherUnderground вполне успешно сигнализирует о получении данных, что позволяет сделать заключение о том, что проблемы на стороне narodmon. От чего они, впрочем, вполне ожидаемо, открещиваются.

Новое «поступление»

Даже прямо не знаю какое из слов в названии взять в кавычки...
Забрал из приемной два принтера и монитор для видеонаблюдения. Монитор пусть пока постоит без дела (возможно, придумаю куда его приспособить), а вот принтеры решил сразу проверить. Один из них Canon e-Studio 203, достаточно тяжелый, кое-как поставил его на стол. А потом еще и спустил. Из обнаруженных проблем у него — заминает бумагу при печати. Либо на выходных, либо после праздников надо будет проверить почему он так делает. Было бы неплохо его починить.
Второй принтер Canon i-Sensys MF4018 оказался, можно сказать, в идеальном состоянии. Печатает нормально, недочеты есть только у сканера — немного осветляет картинку. Оставил его для себя, отказавшись от более громоздкого MF3200. Впрочем, последний недолго у меня продержался. С утра несколько раз застревала бумага у одного из работников. В итоге я плюнул и отдал ему этот MF3200, потому что у него стоял такой же, но уже наполовину «убитый»: передняя крышка держится на изоленте и на «одном крыле». И, видимо, нужно его перебрать и установить причину застревания бумаги.

Мысли вслух

Небольшой дайджест последних событий.

  1. Всю неделю хожу и поглядываю на конверторы в шкафу. С тех пор, как купил и установил для них шасси, сделал охлаждение, еще ни один не сгорел. До этого момента раз месяц-два хотя бы один, но сгорал. Такое положение дел не может не радовать. Остается только придумать как сделать активное охлаждение — лето не за горами.
  2. Один из арендаторов на заводе задолжал некоторую сумму и частично расплатился с заводом техникой. Наконец-то у меня появился запас мониторов. МФУ поставил взамен старой в отделе аренды — уж больно долго она разогревается да и вообще ей нужен небольшой ремонт.
  3. Проверил принтеры, которые стояли у меня в кабинете. До этого все как-то руки до них не доходили. Принтер карт потребовал чистящий набор. Покопавшись в шкафах нашел одну половину, что его не устроило, потребовал весь комплект. Поискав еще, нашел недостающую часть, провел полную чистку. Печатает нормально, но, как у всех, наверное, принтеров такого класса, есть отклонения в цвете. Не удержался, распечатал себе карту с логотипом Ingress и ником из игры. Затем завернул принтер в пакет, чтобы не пылился, и убрал в шкаф. Остальные принтеры (струйные) пожаловались на закончившиеся картриджи. Надеюсь, что головки не засохли и дело только в самих картриджах, потому что оба принтера достаточно высокого класса. Не хотелось бы их «потерять».
  4. Оля себе на день рождения заказала 5 бутылок алкоголя (коньяк, вино, чача). Так как заказывают обычно по 4 бутылки, то добавил еще 3 для себя (коньяк и вино). Все заказы дошли от Сочи до Красноярска менее, чем за 10 дней. Ехали они при этом через Москву. Треки отлично отслеживались в программе TrackChecker Mobile — она, как и ранее, работает отлично.
  5. Спустя черт знает сколько времени закончился тонер в домашней МФУ. Года два, наверное, прошло.
  6. Незадолго до этого сгорел ИБП, стоявший на сервере. Батарею раздуло так, что пришлось его разбирать, чтобы ее вытащить. Наводит на мысль о том, что ИБП неисправен. Благо, что у меня еще парочка есть. Но сначала придется покупать новую батарею.
  7. Сегодня позвонил главный бухгалтер. Нашла какой-то договор с «Красноярской сетью», они до сих пор платят по нему 500 рублей в месяц. Так как на заводе нет точек, которые к ним подключены, пришлось звонить им и разбираться. Оператор дала MAC-адрес устройства, куда был подключен кабель. Сильно смахивает на адрес роутера, который отвечает за видеонаблюдение. При этом точно знаю, что там сейчас используется Intertax. Чуть позже оператор перезвонила и ответила на заданный мною ранее вопрос по трафику. Оказалось, что с января месяца он равен нулю. Возможно, что и ранее было так же, но мне хватило и таких данных. Почему договор не был закрыт раньше — непонятно. Видимо, это никому нафиг не было нужно.

Перенос домена

Никогда не задавался такой целью, да и необходимости такой никогда не было. В процессе оплаты одного из сайтов СТМ выяснилось, что домен зарегистрирован у одного регистратора, а сам хостинг располагается у другого. Картина достаточно «печальная». Почитав правила, стало понятно, что без заявления, заверенного у нотариуса, перенос никто делать не будет. Так как владельцем домена является генеральный директор, то понятно, что времени у нее на посещение нотариуса нет. Печаль...
Вбиваем в поиск запрос на перенос домена от этого регистратора. И тут же натыкаемся на информацию о том, что никакие заявления уже не нужны. Идем в личный кабинет, выполняем все действия по инструкции. Тут меня ждал первый облом — для получения кода переноса требуется верифицировать персональные данные. Подаю заявку, мне отвечают «ждите сутки». Да не вопрос, подожду!
На следующий день приходит письмо, что аккаунт проверен, можно продолжать. Снова иду в личный кабинет, запрашиваю код. Второй облом — необходимо внести данные для смены регистратора. Указанные в профиле данные не годятся. Ладно, забиваю свой номер телефона и email. Подтверждаю оба, снова запрашиваю код. Среди прочих вариантов выбираю отправить его на электронную почту. Третий облом — состояние домена не позволяет получить код. Эт еще почему? Повторяю процедуру запроса, на этот раз все получается. Видимо, еще выполнялось сохранение данных для переноса. С кодом в зубах, а точней, в письме, иду в личный кабинет регистратора, к которому нужно перенести домен. Уже понимая, что сам не найду, сразу открываю справку, где процедура переноса, как оказалось, расписана очень подробно и даже с картинками (вот за это я его тоже люблю! в смысле регистратора). Снова действуем по инструкции, вбиваем код переноса и выполняем еще парочку подтверждений. В конце получаю письмо с уведомлением, что процесс переноса может занять до 5-ти рабочих дней. А мне что? Мне торопиться некуда.
В общем, вот такой вот маленький квест получился. Перенос домена от одного регистратора к другому — процедура хоть и простая, но в процессе у вас запрашивается куча подтверждений. Ну и, конечно, лучше всего 100 раз проверить что, куда и откуда. А то ведь бывало, что щелкнешь не туда, нажмешь не ту кнопочку и все, ты попал. Хорошо еще, если на небольшую сумму :-)

Ремонт сервера

В какой-то момент надоело, что сервер ведет себя неадекватно: перезагружается, становится недоступным извне, «повисает» и так далее. Поначалу грешил на жесткий диск, потому что он б/у и, хотя и прошел все проверки, но доверие к нему было подорвано. Заменил «шило на мыло» — поставил другой диск, тоже б/у. Накатил систему по новой. Ситуация не изменилась, сервер работал по прежнему неустойчиво. С новым, купленным в магазине диске, все было также. Стало очевидно, что проблема не в нем. Пришлось поскрести по сусекам и найти другое «железо». По итогу заменил практически все: материнскую плату, процессор, жесткий диск. Оно, конечно, не сильно новое, звезд с неба не хватает, но для консольной системы, которая нетребовательна к ресурсам компьютера, его вполне хватает. Да и нагрузка небольшая.
Систему решил также поставить заново, тем более, что появилась новая версия. Чтобы немного почистить уже имеющиеся настройки, все настраивал заново, только частично используя старые файлы конфигурации. Ну и потихоньку, когда есть время и желание, восстанавливаю тот набор программ, который был до этого: почта, сайт, видеонаблюдение, базы данных и так далее. Некоторые вещи не работают, но поскольку они не критичны в данном случае, то устранять их тоже буду неспешно.

Ранее Ctrl + ↓