Search
Write a publication
Pull to refresh
0
0
Send message

Беспроводное домашнее облако для вещей интернета

Reading time4 min
Views30K
Я провел много часов повторяя проекты других по умным беспроводным вещам. Это привело меня к очевидному выводу: после третьего-четвертого проекта ты обнаруживаешь, что все они выполнены на разных принципах, с использованием разных технологий и приемов, особенно после того, как изменил или модернизировал некоторые из них. Это значит, что что твой мир вещей становится абсолютно не подлежащим обслуживанию.

Другими словами, ты должен поддерживать огромные библиотеки спецификаций и кодов. И необходимо больше времени для того чтобы справиться со всеми своими устройствами. Определенно, некоторые более организованы, чем я, но, наверняка, большинство в борьбе с энтропией добились незначительных успехов. Без обид.

Что делать, чтобы обуздать нашествие роботов на свой дом (а это в любом случае неизбежно)?.. Все просто. Вещи проще. Облако умнее.

Концепция

  1. Устройства как можно проще: стандартный модуль связи с частным облаком. Состоит из беспроводного модуля и скриптов инициализации (как в модуле, так и на сервере). Если модуль выходит из строя, выбрасываем его и меняем на новый стандартный модуль.
  2. Вся логика и интеллект располагается на сервере. Простом роутере на линукс.

Читать дальше →

Управляем устройствами NooLite с роутера Zyxel Keenetic

Reading time4 min
Views14K
image

В этой статье я расскажу о том, как управлять устройствами nooLite через USB переходник РС1ххх прямо из роутера Zyxel Keenetic — без участия компьютера.

Преамбула


Темы про NooLite уже не раз тут мелькали, но, на всякий случай напомню, что это компоненты для построения «умного дома», общающиеся между собой посредством радиоканала. А ещё к их системе можно заказать USB адаптер, позволяющий отправлять команды с компьютера (на самом деле есть и тот, который может эти команды получать, но мы сейчас его рассматривать не будем). Когда-то давно я специально поднимал у себя на машине Web-сервер, на который можно было зайти с компьютера или телефона в домашней сети и управлять освещением, а также добавлять запланированные задачи. Например — я, как истинный сова, с трудом просыпаюсь рано утром, и даже с удовольствием не делал бы этого, но надо. И пробуждаться в темноте от звука будильника, было крайне тяжело, даже если поставить на него самую милую мелодию, из всех милых мелодий на земле. И я решил провести эксперимент, написав скрипт для плавного включения света, когда яркость увеличивается с 0 до 100% за 20 минут, тем самым имитируя восход солнца, и эксперимент удался — просыпаться стало значительно легче, когда свет не резко бьёт по глазам, а едва заметно нарастает, и организм реагирует на подобное пробуждение намного лучше будильника… Но что-то я ушёл от темы. Все это работало себе спокойно, и впрочем меня даже не напрягало то, что требуется постоянно включенный компьютер, у меня стоят тихие вентиляторы и его практически не слышно, но не так давно узнав, что на Zyxel Keenetic с прошивкой второй версии снова можно ставить пакеты OpenWRT у меня в голове начала созревать идея. И когда эта идея совсем меня допекла, никак не желая оставить в покое мой мозг, я решился — а, черт с ним! Впереди выходные, и я сделаю это!
Читать дальше →

Raspberry Pi — что можно сделать на основе «малинки»?

Reading time3 min
Views354K


Мини-ПК Raspberry Pi смог быстро стать популярной платформой для разного рода проектов — как коммерческих, так и не очень. Тому есть несколько причин, среди которых — низкая цена компьютера, его относительная универсальность и открытость.

Как результат — интересные проекты стали появляться с завидной регулярностью, и часть таких проектов представлены в этой подборке. Здесь есть и вполне серьезные системы, и проекты, которые можно назвать развлекательными, из серии «а почему бы и нет?».

Читать дальше →

Паять или не паять? Интернет вещей для начинающих

Reading time3 min
Views43K


Я ничего не смыслю в электронике, никогда не работала с платами и микроконтроллерами, не паяла, но посмотрев The Maker Show, я уже подумываю, а не заказать ли мне Arduino или Raspberry Pi.
Рекомендую это шоу тем, кто только начинает изучать тему Интернета вещей. Для вас я сделала обзор основных выпусков шоу.

1. Введение в электронику

Как заставить светодиод светиться с помощью лимона?

Технологический евангелист Microsoft Дэвид Крук проводит несколько экспериментов, иллюстрирующих основы электроники.
Читать дальше →

Новый модуль приёмника nooLite MR1132 для Arduino

Reading time9 min
Views10K
image

В этой статье речь пойдёт о новом модуле приёмника сигналов системы nooLite для Ардуино и микроконтроллеров. Чем же замечателен этот модуль? До сих пор не существовало способов получать информацию от датчиков и контролировать прохождение в эфире сигналов от пультов системы nooLite на микроконтроллерах и Ардуино, такая возможность существовала только для компьютеров, при помощи специальных USB адаптеров.

Теперь, с выпуском модуля MR1132, появилась возможность принимать данные о температуре, влажности, освещённости и присутствии людей в помещении с беспроводных датчиков системы nooLite в ваших скетчах на Ардуино, появилась возможность отслеживать команды, отдаваемые силовым блокам nooLite пультами-выключателями и многое другое из того, что раньше было недоступно.

В этой статье я расскажу вам о работе этого модуля и дам работающий скетч, на основе которого вы можете с лёгкостью создавать свои устройства на MR1132. В последующих статьях я расскажу об интеграции этого модуля с популярной системой Arduino Mega Server и о тех замечательных возможностях, которые появятся в связи с этой интеграцией.
Читать дальше →

DLNA-сервер для дома и семьи

Reading time7 min
Views868K
Как-то так сложилось, что тег DLNA сервер чаще встречается в постах-вопросах, чем в ответах. И если в вопросах установки на домашний Windows-ПК какой-то пользовательский опыт накоплен, то определиться с выбором ПО для домашнего сервера/NAS-а/медиацентра — оказалось непросто. Распределившись по песочницам народ обособленно решает проблемы каждой программы в отдельности. А понять что из них чего стоит и нужно ли оно вообще — лично мне не удалось.

И вот, я вооружившись ссылкой с Википедии Как выбрать DLNA-сервер под Windows, Mac OS X или Linux — опробовал почти всё, что есть под Linux.

Читать дальше →

Как ускорить сборку с Maven

Reading time3 min
Views32K
Maven
Что делать, если сборка (build) с Maven проходит слишком медленно? Ведь когда сборка длится слишком долго, любой, даже самый терпеливый разработчик, может заскучать и отвлечься.

Для быстрого поиска в Google или для закладок, сразу предлагаю итоговое решение:
mvn package -am -o -Dmaven.test.skip -T 1C

— для сборки проекта без тестов.
Читать дальше →

Слово на букву «М», или Монады уже здесь

Reading time8 min
Views42K


Про монаду ходит множество мемов и легенд. Говорят, что каждый уважающий себя программист в ходе своего функционального возмужания должен написать хотя бы один туториал про монаду — недаром на сайте языка Haskell даже ведётся специальный таймлайн для всех отважных попыток приручить этого таинственного зверя. Бывалые разработчики поговаривают также и о проклятии монад — мол, каждый, кто постигнет суть этого чудовища, начисто теряет способность кому-либо увиденное объяснить. Одни для этого вооружаются теорией категорий, другие надевают космические костюмы, но, видимо, единого способа подобраться к монадам не существует, иначе каждый программист не выдумывал бы свой собственный.

Действительно, сама концепция монады неинтуитивна, ведь лежит она на таких уровнях абстракции, до которых интуиция просто не достаёт без должной тренировки и теоретической подготовки. Но так ли это важно, и нет ли другого пути? Тем более, что эти таинственные монады уже окружают многих ничего не подозревающих программистов, даже тех, кто пишет на языках, никогда не считавшихся «функциональными». Действительно, если приглядеться, то можно обнаружить, что они уже здесь, в языке Java, под самым нашим носом, хотя в документации по стандартной библиотеке слово «монада» мы едва ли найдём.

Именно поэтому важно если не постичь глубинную суть этого паттерна, то хотя бы научиться распознавать примеры использования монады в уже существующих, окружающих нас API. Конкретный пример всегда даёт больше, чем тысяча абстракций или сравнений. Именно такому подходу и посвящена эта статья. В ней не будет теории категорий, да и вообще какой-либо теории. Не будет оторванных от кода сравнений с объектами реального мира. Я просто приведу несколько примеров того, как монады уже используются в знакомом нам API, и постараюсь дать читателям возможность уловить основные признаки этого паттерна. В основном в статье пойдёт речь о Java, и ближе к концу, чтобы вырваться из мира legacy-ограничений, мы немного коснёмся Scala.
Читать дальше →

Google I/O 2016: WatchFace 2.0 — Complications

Reading time4 min
Views4.5K
Привет, Хабр! Совсем недавно прошёл Google I/O (если кто пропустил наш репортаж — вам сюда), где увидел свет новый API для отображения данных на циферблатах часов. Название его пришло из часовой отрасли: по-русски их традиционно зовут «Усложнения», ну а по-английски —«Complications».



Если вкратце — это механизм отображения какой-либо дополнительной информации на часах, помимо, собственно времени: в реальных могут быть всякие планеты-звёзды-календари, ну а в нашем случае — всё, что придёт вам в голову. Сегодня мы покажем, на что способен API Watch Face Complications и как с ним работать.
Читать дальше →

Generics в Kotlin vs. Generics в JAVA: cходства, различия, особенности

Reading time7 min
Views52K

Эта статья про Generics в Kotlin — особенности их использования, сходства и различия с Generics в Java.

В двух словах про Generics
Если коротко, то Generics — это способ сказать, что класс, интерфейс или метод будут работать не с каким-то конкретным типом, а просто с каким-то. С каким именно будет определено из контекста. Например:

public interface List<E> extends Collection<E> {
	//...
}

Заранее неизвестно, объекты какого класса будут содержаться в списке, но это определится при его использовании:

List<String> list = new ArrayList<>();

Теперь это не просто список, а список строк. Generics помогают обеспечить типобезопасность: в List можно попытаться положить любой объект, но в List<String> — только String или один из его потомков.

Я разделю рассказ про Generics на две части: собственно Generics и использование Wildcards. Пока речь не заходит про Wildcards, использование Generics в Kotlin мало чем отличается от Java.
Читать дальше →

Обзор true Android TV на примере Sony 55w807c

Reading time5 min
Views61K
Решил объединить в одну статью обзор телевизора и Android TV. Тяжело их разнести (где кастомизация Сони, а где родные фишки Google).
Ожидание, когда же google или sony прекратят пилить бюджеты найдут деньги на обзор Android TV, видимо может быть бесконечным.
Купил месяц назад сей девайс при переезде, так что внемли люд гиковый, чего несет нам Google без мишуры маркетинговой.
Начнем с девайса и перейдем к сладкому.


Читать дальше →

Умный дом Noolite. Датчики и шлюз. Java API

Reading time5 min
Views15K


Здравствуй, уважаемый %username%!

Сегодня мы будем рассматривать относительно новые девайсы белорусской компании Ноотехника — датчики и Ethernet-шлюз. Так же будет предоставлена Java-библиотека для работы с API.
За подробностями — под кат.
Читать дальше →

Каково это — быть разработчиком, когда тебе сорок

Reading time18 min
Views230K
Примечание от переводчика:

Этот пост был написан и опубликован на Medium разработчиком приложений Адрианом Космачевским из Швейцарии. Кроме подготовки перевода его публикации, я также пригласил и самого автора, Адриана ( akosma ), на Хабр, для того, чтобы он смог лично ответить на любые вопросы участников сообщества, если таковые возникнут. Думаю, для общего удобства при общении в комментариях с ним стоит использовать английский (и, при желании, дублировать на русском).



Привет всем, я — сорокадвухлетний программист-самоучка, а это моя история.

Пару недель назад я наткнулся на твит, в котором была картинка, прикрепленная ниже, и он заставил меня задуматься о моей карьере.

image

Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 10 часов утра 6 октября 1997 года, в городе Оливос, к северу от Буэнос-Айреса, в Аргентине. Был понедельник. Не так давно я праздновал свой 24-й день рождения.

Мир в 1997 году


Тогда он был немного другим. На веб-сайтах не было предупреждений об использовании cookie. Новаторскими в сети были сайты вида Excite.com, а моим любимым поисковиком был AltaVista.

Мой электронный ящик имел вид kosmacze@sc2a.unige.ch и был расположен на личном веб-сайте, который размещался по адресу http://sc2a.unige.ch/~kosmacze. Тогда мы еще оплакивали принцессу Диану, а Стив Джобс только-только вернулся на роль CEO и убедил Microsoft «вбросить» в Apple Computer 150 миллионов долларов. Digital Equipment Corporation подала в суд на Dell, останки Че Гевары вернули на Кубу, только начался четвертый (!) сезон «Друзей». Был убит Джанни Версаче, скончались Мать Тереза, Рой Лихтенштейн и Жанна Кальман. Люди зависали за Final Fantasy 7 на PlayStation, будто бы были наркоманами, Би-Би-2 начал вещание телепузиков, а Кэмерон только собирался показать миру свой «Титаник».
Читать дальше →

Ethernet-шлюз nooLite PR1132 — управление светом со смартфона и планшета

Reading time6 min
Views37K
Неоднократно на хабре писали про систему nooLite, позволяющую управлять освещением и электроприборами по радио. Недавно белорусская компания «Ноотехника» — производитель системы nooLite — начала выпуск нового устройства — Ethernet-шлюза nooLite, позволяющего управлять светом с любого смартфона или планшета.
Итак, встречайте! Ethernet-шлюз PR1132:



Девайс работает в локальной сети (например, его можно подключить к роутеру, который раздает интернет по квартире). Управление светом происходит через веб-интерфейс (т.е. через браузер) или через HTTP API.
Читать дальше →

Опасный target="_blank"

Reading time2 min
Views201K
Большинство создают внешние ссылки через target="_blank" и не знают одного интересного нюанса — страница, на которую мы попадем таким образом, получит частичный контроль над ссылающейся на нее страницей через js свойство window.opener.

Через window.opener.location мы сможем сделать редирект на, к примеру, фишинговую страницу. Это своего рода tabnabbing, только более продвинутый. Так как жертва меньше всего ожидает подмены страницы, в открытой ранее, доверенной вкладке браузера.
Читать дальше →

«Умный туалет» в обычной квартире

Reading time11 min
Views50K


С каждым годом наших домах становится все больше электроприборов. Сейчас в пользовании почти у всех есть телевизоры, холодильники, стиральные машины, медиацентры и DVD (Blue Ray) проигрыватели, посудомоечные и кухонные комбайны, микроволновые печи, электрочайники и мультиварки, кондиционеры и увлажнители и еще много-много всего, от чего мы уже не хотим отказываться. Потребление электроэнергии растет и в конце месяца набегает вполне внушительная сумма. Волей-неволей приходится задуматься о том как уменьшить эти расходы.

Не обошла эта проблема и меня. Из-за приличных счетов за электроэнергию на семейном совете было решено избавиться от электрочайника как одного из самых мощных электроприборов, тем более что на кухне есть газовая плита. От сокращения количества остальной электротехники домочадцы отказались наотрез. Пришлось искать другие пути экономии электроэнергии. Первым шагом была замена всех ламп в доме на светодиодные. Вторым шагом должен был стать контроль за тем, чтобы электро- и осветительные приборы не оставались включенными долгое время, когда никто ими не пользуется. Проанализировав, я выделил два источника потребления электроэнергии, которые нужно ограничить: горящий свет и телевизор на кухне, включенные в отсутствие там людей и свет в туалете, который забывают выключать дети (и я).
Читать дальше →

Бризер TION O2: опыт эксплуатации

Reading time14 min
Views116K
▌Intro
История банальная — моя улочка, некогда тихого и находящегося на окраине парка района, внезапно стала очень оживленной. Там, где раньше можно было смело играть в футбол на проезжей части, нынче каждые несколько секунд проезжает машина, а в час пик так может и пробка образоваться на всю улицу длиной. А где машины, там пыль и шум. В общем, открыть окна в моей рабочей комнате и спальне оказалось решительно нельзя — шумно. А я шум не люблю. Жена так вообще немедленно закрывает окно, не давая даже проветрить. Особенно ситуация усугубилась с установкой пластиковых окон. Если старые деревянные были кривые и косые, что в щели палец сунуть можно, то новые герметичные как в холодильнике.

Надо ли говорить, что посиделки за компом в закрытой комнате превращались в форменную такую душегубку. Уже через пару часов наступала натуральная духота, особенно ощущаемая, когда выходишь из комнаты наружу. Или, наоборот, когда с улицы входишь туда. Кондиционер есть, но он совершенно тут не помощник. Ведь он лишь охлаждает уже имеющийся в комнате воздух, гоняя его по кругу через свой радиатор, но не делает его свежей, не добавляет кислорода.

Возникла мысль о организации какой-нибудь более продвинутой вентиляции. Правда пока мысль возникла, пока решил что НАДО, пока собрался и поискал имеющиеся решения… Такие вещи, от идеи до реализации, у меня идут годы…



Но на счастье, как у меня это бывает, если Магомед не идет к горе, то гора сама к нему устремляется вприпрыжку. Постучались мне в почту представители компании TION и сделали предложение, от которого я не смог отказаться — они мне ставят свою вентиляционную систему, а я пишу все, что я о ней думаю. Это они удачно зашли.
Читать дальше →

5 советов по подготовке вашего приложения к мультиоконному режиму в Android N

Reading time6 min
Views11K

И вам даже не понадобятся API из Android N!


Если вы просматривали недавно видеоролик, озаглавленный «Что нового в Android N», то вы, возможно, успели уже задуматься о поддержке мультиоконности.



Мультиоконность будет работать в режиме разбиения экрана, что означает, что два приложения будут находиться на экране одновременно, бок о бок. Чтобы понять, как же работает эта магия, я тут же прошерстил документацию в поисках новых API.

Оказывается, их не так уж и много. Несколько XML атрибутов, указывающих, собираетесь ли вы вообще поддерживать мультиоконность, да несколько методов Activity, позволяющих понять, работает ли ваше приложение сейчас в режиме мультиоконности. И где тут магия? Магия вообще-то была здесь всегда.
Читать дальше →

Взламываем беспроводное управление светом nooLite

Reading time17 min
Views43K
image

Привет!

В нашей предыдущей статье мы показывали, как наш контроллер для домашней автоматизации работает с устройствами системы NooLite без использования родных USB-донглов для передачи и приёма сигнала. Чтобы это стало возможно, мы провели реверс-инжиниринг протокола NooLite.

Собственно эта статья содержит описание протокола и рассказывает, как именно мы его разбирали.

Читать дальше →

Ускоряем приложение Android с помощью Golang

Reading time4 min
Views46K
image

Разработка мобильных приложений — это всегда компромисс между тем, что хочется сделать и тем, что позволяет сделать платформа устройства. В этой статье рассказывается о том, как увеличить возможности приложения Android с помощью Golang.
Читать дальше →

Information

Rating
Does not participate
Location
Минская обл., Беларусь
Date of birth
Registered
Activity

Specialization

Backend Developer, Application Developer
Senior
Git
SQL
OOP
Java
Docker
Spring Boot
Java EE
Intellij IDEA
Hibernate
Java Spring Framework