Подключение датчика температуры и влажности DHT11 к Arduino UNO R3

Подключение датчика температуры DHT11 задача довольно простая.
Всё, что нам понадобится для подключения, это небольшой скетч, собранная схема и библиотека для работы с датчиком.
Первым делом скачаем библиотеку для работы с датчиком, например здесь: https://github.com/adafruit/DHT-sensor-library.
Теперь разберемся с самим датчиком, датчик может быть с готовой обвязкой и тремя контактами — земля, питание и данные.
Либо как у меня, сам датчик без какой либо обвязки, с четырьмя контактами один из которых нам не понадобится.

Вот, сам датчик:
DHT11 Датчик температуры и влажности распиновка
Как представлено на рисунке, если датчик находится к нам решёткой а контакты направлены вниз, то номера контактов будут от 1 до 4 слева на право, как показано на фотографии выше слева.
+ 0
- 0
  0
  • avatar

Подключение LCD2004A к Arduino UNO R3

В данной публикации речь пойдет о подключении жидкокристаллического дисплея LCD2004A без интерфейса I2C. Это обычный жидкокристаллический дисплей с четырьмя строками по 20 символов в каждой, подключается он так же как и двухстрочный аналогичный дисплей, поэтому инструкция будет полезна и для дисплея с двумя строками LCD2002.

Выглядит дисплей вот так:

LCD2004A

Данный дисплей имеет 16 выводов:
+ 0
- 0
  0
  • avatar

Цитата дня!

Не повторяйте одну и ту же ошибку в вашем коде снова и снова.
Создайте функцию с этой ошибкой и вызывайте её каждый раз, когда понадобится!
+ 0
- 0
  0
  • avatar

MSSQL - передача таблицы или списка значений в процедуру ( C# .NET )

Часто бывает необходимость передать за один раз некоторый набор данных в процедуру, в этой публикации будет приведен пример как это сделать на языке C# для базы данных MSSQL.

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

Для начала создадим тестовую таблицу в базе данных:
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Bottles](
	[Uid] [uniqueidentifier] NOT NULL,
	[Name] [varchar](50) NULL,
	[Color] [varchar](50) NULL
) ON [PRIMARY]
GO
В данной таблице будем размещать бутылки разных названий и цветов (просто для теста).
+ 0
- 0
  0
  • avatar

Интерполяция строк в языке C#

Интерполированной строкой в C# называется строка перед которой расположен символ $.
Такая интерполированная строка может включать выражения, которые заключены в фигурные скобки:

int x = 18;
Console.Write($"Указанный возраст {x} лет."); // Выводит: Указанный возраст 18 лет.

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

string s = $"223 в шестнадцатиричном формате: {223:X2}"; // X2 - шестнадцатиричное значение из двух знаков.
// В итоге строка будет "223 в шестнадцатиричном формате: DF"

+ 0
- 0
  0
  • avatar

Руководство по Python Bottle (Перевод) Часть 6 - Templates (о Шаблонах)

В предыдущей части (Руководство по Python Bottle (Перевод) Часть 5 — Request Data (данные в запросе)) мы рассмотрели основные аспекты относящиеся к передаваемым данным в запросах, в этой части мы вкратце рассмотрим использование шаблонов.

Bottle имеет быстрый и мощный встроенный механизм шаблонов, который называется SimpleTemplate Engine. Для рендеринга шаблона вы можете использовать функцию template() или декоратор view(). Все, что вам нужно сделать, это предоставить имя шаблона и переменные, которые вы хотите передать шаблону в качестве аргументов. Вот простой пример того, как обратиться к шаблону:

@route('/hello')
@route('/hello/<name>')
def hello(name='World'):
    return template('hello_template', name=name)


Данный код загрузит файл шаблона hello_template.tpl и отобразит его с установленной переменной name. Bottle будет искать шаблоны в папке ./views/ или в любой папке, указанной в списке bottle.TEMPLATE_PATH.
+ 0
- 0
  0
  • avatar

Руководство по Python Bottle (Перевод) Часть 5 - Request Data (данные в запросе)

В предыдущей части (Руководство по Python Bottle (Перевод) Часть 4 — Создание контента) мы рассмотрели основные аспекты относящиеся к передаваемому контенту, в этой части мы рассмотрим данные передаваемые в запросах.

Файлы Cookie, HTTP-заголовки, поля HTML форм и другие данные запроса доступны через глобальный объект request. Этот специальный объект всегда ссылается на текущий запрос, даже в многопоточных средах, где одновременно обрабатываются сразу несколько клиентских подключений:

from bottle import request, route, template

@route('/hello')
def hello():
    name = request.cookies.username or 'Guest'
    return template('Привет {{name}}', name=name)

Объект request является подклассом от BaseRequest и имеет очень богатый API для доступа к данным. Здесь будут рассмотрены только наиболее часто используемые функции, этого должно быть достаточно для начала.
+ 0
- 0
  0
  • avatar

Ссылочные локальные переменные в C# 7

Начиная с версии C# 7 в языке появилась возможность, позволяющая объявить локальную переменную, ссылающуюся на элемент массива или на поле в объекте:

int[] simpleArray = {0, 1, 2, 3, 4, 5, 6, 7, 8};
ref int simpleElementRef = ref simpleArray[3];

В примере выше simpleElementRef — ссылка на simpleArray[3]. Изменение simpleElementRef приводит к изменению элемента массива:

simpleElementRef *= 15;
Console.WriteLine(simpleElementRef);      // 15
Console.WriteLine(simpleArray[3]);        // 15

В качестве цели ссылочной локальной переменной может быть указан элемент массива, поле, или обычная локальная переменная. Целью не может быть свойство.
+ 0
- 0
  0
  • avatar

Руководство по Python Bottle (Перевод) Часть 4 - Создание контента

В предыдущей части (Руководство по Python Bottle (Перевод) Часть 3 — Маршрутизация запросов) мы рассмотрели основные аспекты касающиеся маршрутизации запросов, в этой части будут рассмотрены аспекты относящиеся к передаваемому контенту.

Создание контента


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

Bottle гораздо более гибок и поддерживает широкий спектр типов. Он автоматически добавляет заголовок Content-Length, когда это возможно, и автоматически кодирует Unicode, что облегчает работу разработчика. Ниже приведен список типов данных, которые могут быть возвращены из приложения, и краткое описание того, как они обрабатываются платформой:
+ 0
- 0
  0
  • avatar

OFFSET FETCH пример применения в TSQL

Фильтр OFFSET FETCH в языке TSQL интересен тем что в отличии от фильтра TOP позволяет пропускать заданное количество строк ROWS.

Пример:
select regioncode, aolevel, offname from s_adr_fias
order by regioncode, aolevel, offname
offset 100 rows fetch next 50 rows only;


Данный пример демонстрирует выборку из набора отсортированного по условию ORDER BY (по полям regioncode, aolevel, offname) 50 строк данных пропустив первые 100 строк.

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

P.S. На больших объёмах, даже с учетом самой оптимальной индексации, данный фильтр является довольно ресурсоемким.
+ 0
- 0
  0
  • avatar