Search
Write a publication
Pull to refresh
0
@geof_01read⁠-⁠only

User

Send message

Сити-ферма: майним зелень в подвале

Level of difficultyEasy
Reading time9 min
Views22K

Сити-фермы становятся все популярнее, поскольку они позволяют выращивать в условиях города экологически чистую продукцию: салат, базилик, рукколу, клубнику, томаты и т.д. 

На зелень всегда есть спрос со стороны ресторанов, поэтому это еще и неплохой способ  заработать. Причем не нужно арендовать землю и зависеть от погоды и сезона, достаточно переоборудовать подвал. Но чтобы растения были на загляденье, а их себестоимость радовала владельцев, такой способ выращивания требует серьезной системы автоматизации.

Мы посетили сити-ферму в подвале — новый проект ребят LedFarm.by, которые знакомы читателям теплицей на Linux.

В статье мы расскажем о том, как устроена сити-ферма с автоматизацией и насколько прибыльным получился стартап по выращиванию салата в контейнере.

Читать далее

Как сделать автоматический полив: грунт и гидропоника

Level of difficultyEasy
Reading time5 min
Views18K

Полив — регулярная и трудоемкая задача, которая отнимает массу времени, поэтому ее не мешает автоматизировать, чтобы все работало само. Из песни слов не выкинешь: «Вкалывают роботы, счастлив человек».

В преддверии дачного сезона мы решили поделиться двумя решениями автоматизации для полива грунта и гидропоники. Оба базируются на контроллере под Linux и успешно показали себя в действующих проектах.

Мы посетим загородный дом под Екатеринбургом и стеллажную систему в Минске. Интересно? Ныряйте под кат.

Читать далее

Словарь-справочник юридических терминов из ГОСТов для сферы IT. Часть 19 — Ии-Инс

Level of difficultyEasy
Reading time19 min
Views922

В действующем 184-ФЗ “О техническом регулировании”, ратифицированный Россией при присоединении к ВТО, требуется, чтобы любая продукция была безопасна для: «предупреждения действий, вводящих в заблуждение приобретателей, в том числе потребителей» (ст. 6, 46 184-ФЗ). Двухступенчатая система разделения техрегламентов и ГОСТов, согласно статье 46 184-ФЗ, становится в России однступенчаиой. Для реализации этих требований вводятся технические регламенты, которых прогнозируется около 2000. В технических проектах термины являются юридически основными условиями. Создание словаря - облегчит выбор необходимых  терминов.

Читать далее

Мониторинг работы систем загородного дома: первые шаги к умному дому

Reading time12 min
Views20K

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

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

Визуализация в IoT: или как самому развернуть систему сбора и отображения данных на MQTT+Telegraf+InfluxDB+Grafana

Level of difficultyMedium
Reading time27 min
Views59K

В данной статье приведен скоуп информации о том, что взять за основу, чтобы развернуть свой домашний Linux-сервер и систему визуализации на нем, используя MQTT в качестве транспорта с оконечного оборудования. 

Многие статьи или инструкции, которые есть в интернете, в части работы с Influx и Telegraf – имеют отношения к довольно старым версиям рассматриваемого ПО, в виду чего у меня ушло какое-то время, чтобы со всем разобраться. Хотелось бы оставить небольшое обновление по инструкциям здесь, возможно, они помогут кому-то сэкономить время и нервы, так как информация агрегирована в виде summury моего погружения в реализацию данного решения. 

Кому интересно, welcome :)

Читать далее

Изучаем Docker, часть 5: команды

Reading time9 min
Views284K
Сегодняшняя часть цикла материалов по Docker, перевод которого мы публикуем, посвящена командам Docker. Документация Docker содержит подробнейшее описание великого множества команд, но тот, кто только начинает работу с этой платформой, может в них и потеряться, поэтому здесь приведены почти два десятка самых важных команд для работы с Docker. Продолжая сложившуюся традицию, мы сравним команды с россыпью ягод.

Часть 1: основы
Часть 2: термины и концепции
Часть 3: файлы Dockerfile
Часть 4: уменьшение размеров образов и ускорение их сборки
Часть 5: команды
Часть 6: работа с данными

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

Полное практическое руководство по Docker: с нуля до кластера на AWS

Reading time39 min
Views1.8M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.



Ого! Как много информации.

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

Архитектура Хорошо Поддерживаемого Программного Компонента

Level of difficultyEasy
Reading time12 min
Views11K

В программировании микроконтроллеров часто приходится писать драйверы периферийных микросхем. Так называемых ASIC(ов). Зачастую это 60% всего кода большинства проектов. В этом тексте я написал несколько общих нюансов разработки драйверов периферийных чипов.

Эти правила "написаны кровь".

Читать далее

Aтрибуты Хорошей Прошивки (Firmware)

Level of difficultyEasy
Reading time8 min
Views20K

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

Читать далее

Использование C++ и шаблонов с переменным количеством аргументов при программировании микроконтроллеров

Reading time7 min
Views24K

ARM с ядром Cortex Mx (на примере STM32F10x)


КДПВ Микроконтроллер ARM Cortex M3 STM32F103c8t6 широко распространен как 32-х битный микроконтроллер для любительских проектов. Как для практически любого микроконтроллера, для него существует SDK, включающая, в том числе и заголовочные файлы C++ определения периферии контроллера.

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

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

Эта структура и её экземпляр описаны вот так:
Читать дальше

Включаем периферию контроллера за 1 такт или магия 500 строк кода

Reading time35 min
Views13K


Как часто, при разработке прошивки для микроконтроллера, во время отладки, когда байтики не бегают по UART, вы восклицаете: «Ааа, точно! Не включил тактирование!». Или, при смене ножки светодиода, забывали «подать питание» на новый порт? Думаю, что довольно часто. Я, по крайней мере, — уж точно.

На первый взгляд может показаться, что управление тактированием периферии тривиально: записал 1 — включил, 0 — выключил.

Но «просто», — не всегда оказывается эффективно…
Читать дальше →

Используем template + constexpr для создания масок регистров периферии микроконтроллера на этапе компиляции (C++14)

Reading time15 min
Views11K

Введение


Эта небольшая заметка содержит не очевидное решение поставленной ниже задачи, до которого мне пришлось доходить несколько бессонных ночей.

Задача: на основе заданных пользователем данных о том, как должен работать периферийный блок микроконтроллера, получить на этапе компиляции массив масок конфигурации его регистров, которые можно было бы использовать в реальном времени. При этом требуется на этапе компиляции проверить, что все параметры заданные верно (периферия микроконтроллера будет сконфигурирована верна).



Заинтересовавшихся в том, как это можно сделать, прошу под кат.
Читать дальше →

Использование шаблонного метапрограммирования для микроконтроллеров AVR

Reading time21 min
Views27K

AVR


Микроконтроллеры AVR фирмы Atmel хорошо знакомы разработчикам и не нуждаются в особом представлении. Эти устройства используют модифицированную гарвардскую архитектуру и демонстрируют приличную производительность при низком энергопотреблении. Видимо не будет преувеличением сказать, что сегодняшней популярностью AVR во многом обязан проекту Arduino.
Читать дальше →

SFINAE — это просто

Reading time7 min
Views106K
TLDR: как определять, есть ли в типе метод с данным именем и сигнатурой, а также узнавать другие свойства типов, не сойдя при этом с ума.
image

Здравствуйте, коллеги.
Хочу рассказать о SFINAE, интересном и очень полезном (к сожалению*) механизме языка C++, который, однако, может представляться неподготовленному человеку весьма мозгоразрывающим. В действительности принцип его использования достаточно прост и ясен, будучи сформулирован в виде нескольких чётких положений. Эта заметка рассчитана на читателей, обладающих базовыми знаниями о шаблонах в C++ и знакомых, хотя бы шапочно, с C++11.
* Почему к сожалению? Хотя использование SFINAE — интересный и красивый приём, переросший в широко используемую идиому языка, гораздо лучше было бы иметь средства, явно описывающие работу с типами.
Читать дальше →

Безопасный доступ к полям регистров на С++ без ущерба эффективности (на примере CortexM)

Reading time24 min
Views17K
image
Рис. взят с сайта www.extremetech.com/wp-content/uploads/2016/07/MegaProcessor-Feature.jpg

Всем доброго здравия!

В прошлой статье я рассмотрел вопрос о проблеме доступа к регистрам микроконтроллера с ядром CortexM на языке С++ и показал простые варианты решения части проблем.

Сегодня я хочу показать идею как можно сделать безопасным доступ к регистру и его полям без ущерба эффективности, используя сгенерированные на основе SVD файлов С++ классы.

Всех кого заинтересовал, добро пожаловать под кат. Кода будет много.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity