Заметки электроника
Простое - надёжнее!
Меню
  • Главная
  • Погода
  • Заметки
  • Календарь
  • Фотогалерея
  • Песни
  • Чтиво
  • Программы
  • Скачать
  • Связь и ссылки
  • Чехия
  • Lavka

Живёшь в Чехии?

Чтение данных Sensirion SEN63C через адаптер KEL USB–I²C

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Компьютерная повседневность
Создано: 04 июля 2026
Обновлено: 04 июля 2026
Просмотров: 2
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Чтение данных Sensirion SEN63C через адаптер KEL USB–I²C

Пошаговый разбор общения с датчиком качества воздуха на уровне сырых байт — включая всё, что шло не так по дороге.

Схема подключения

Задача была простой: считать значения PM, температуры, влажности и CO₂ с датчика Sensirion SEN63C через адаптер KEL USB–I²C — небольшой модуль, который представляется компьютеру как виртуальный COM-порт и позволяет общаться с I²C-устройствами путём отправки ASCII/hex-последовательностей.

SEN63C находится на шине I²C по адресу 0x6B (7-бит). От адаптера KEL к датчику подключены все четыре линии: SDA, SCL, 3.3V и GND. Питание датчика берётся непосредственно с адаптера. На линиях SDA и SCL установлены подтягивающие резисторы 5,6 кОм к шине 3.3V.

Протокол KEL

Адаптер использует простой байтовый протокол поверх виртуального COM-порта:

Байт(ы) Команда Значение
1B RESET Сброс состояния адаптера
41 xx ADDRESS Установить адрес I²C-устройства
57 nn WLENGTH Количество байт для записи (макс. 64)
77 [данные] WDATA Байты для передачи
52 nn RLENGTH Количество байт для чтения (макс. 64)
53 START Выполнить I²C-транзакцию
73 STATUS Опрос: FF=занят, 00=готов
45 ERROR Последняя ошибка: 4E=нет, 61=NACK
72 RDATA Получить принятые байты

Первые попытки — и почему они провалились

Первый подход: отправить команду запуска измерений 00 21, затем сразу команду чтения значений 03 C4 с RLENGTH = 24 — всё в одной транзакции START, в расчёте на то, что адаптер сам обработает повторный старт I²C (repeated start).

Адаптер всегда сообщал об отсутствии ошибок (4E) и моментально переходил в состояние простоя (00), однако 72 неизменно возвращал FF FF FF FF... — буфер, заполненный нулями.

Ложный след: статус 00 появлялся мгновенно — это подозрительно, потому что реальное чтение 24 байт по I²C на скорости 100 кГц занимает минимум 2 мс. Это означало, что транзакция на шине вообще не выполнялась.

Было опробовано множество вариантов: разный порядок байт, разбиение сообщений, добавление задержек, опрос статуса. Всё возвращало FF. Байт ошибки всегда показывал 4E (нет ошибки) — что сбивало с толку, потому что что-то явно шло не так.

Прорыв — раздельные транзакции

Ключевое открытие пришло при тестировании совершенно другой команды: D0 14 (чтение названия продукта) — регистр, который работает в любом состоянии датчика, а не только во время измерений. Была опробована двухшаговая схема:

  1. Записать байты команды в датчик с RLENGTH = 0 (транзакция только на запись, полный STOP)
  2. Выполнить отдельную транзакцию чистого чтения с WLENGTH = 0 (только чтение, без команды)
TX: 41 6B 57 02 77 D0 14 52 00 53 ← отправить команду, затем STOP
TX: 41 6B 57 00 52 0C 53 ← чистое чтение 12 байт
TX: 72
RX: 53 45 83 4E 36 06 33 43 70 00 00 81

Декодирование: 53 45 = SE, 4E 36 = N6, 33 43 = 3C → «SEN63C». Датчик работал и отвечал корректно. Адаптер попросту не поддерживает repeated-start — между фазой записи и фазой чтения необходим полный STOP.

Рабочая последовательность

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

# 1. Сброс адаптера и запуск измерений
1B 41 6B 57 02 77 00 21 52 00 53

# 2. Ждать 3 секунды до первого измерения

# 3. Проверка готовности данных (отправка команды)
41 6B 57 02 77 02 02 52 00 53

# 4. Чтение ответа о готовности (3 байта)
41 6B 57 00 52 03 53
72
# → 00 01 B0  (01 = данные готовы)

# 5. Отправка команды чтения результатов
41 6B 57 02 77 04 71 52 00 53

# 6. Чтение 21 байта данных измерений
41 6B 57 00 52 15 53
72
# → 00 11 F3 00 16 64 00 1A 19 00 1C BF 0C E3 A7 13 E0 03 01 B5 3F

Разбор результата

21 байт — это 7 значений по 3 байта каждое (2 байта данных + 1 байт CRC). Из первого успешного чтения:

00 11 F3  00 16 64  00 1A 19  00 1C BF  0C E3 A7  13 E0 03  01 B5 3F
Байты Сырое значение Масштаб Результат
00 11 17 ÷10 PM1.0 = 1,7 мкг/м³
00 16 22 ÷10 PM2.5 = 2,2 мкг/м³
00 1A 26 ÷10 PM4.0 = 2,6 мкг/м³
00 1C 28 ÷10 PM10 = 2,8 мкг/м³
0C E3 3299 ÷100 Влажность = 32,99 %
13 E0 5088 ÷200 Температура = 25,44 °C
01 B5 437 ×1 CO₂ = 437 ppm
Чистый воздух. Все значения PM значительно ниже норм ВОЗ. CO₂ на уровне 437 ppm близок к уличному фону. Температура и влажность выглядят правдоподобно.

Главные выводы

  • Адаптер KEL USB–I²C не поддерживает repeated-start (Sr). Запись и чтение должны быть двумя отдельными транзакциями с STOP между ними.
  • Всегда проверяйте байт ошибки (45) — 4E означает отсутствие ошибки, даже если данные приходят как FF.
  • Семейство SEN6x имеет одинаковый форм-фактор, но у каждого варианта свои коды команд. Всегда сверяйтесь с даташитом на конкретный артикул.
  • Статичный регистр вроде названия продукта (D0 14) — лучший первый тест: он работает в любом состоянии датчика и подтверждает работоспособность шины от начала до конца.
  • Запуск вентилятора SEN63C — отличное физическое подтверждение того, что транзакция записи была принята и выполнена датчиком корректно.

yt-dlp - download youtube video as mp3

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Компьютерная повседневность
Создано: 25 июня 2026
Обновлено: 25 июня 2026
Просмотров: 46
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
yt-dlp --extractor-args "youtube:player_client=web;player_skip=webpage" -x --audio-format mp3 "URL"

ACT: ВОССТАНОВЛЕНИЕ НЕРВНОЙ СИСТЕМЫ ВО СНЕ. Возвращение к естественному покою. Медитация на сон.

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Жизнь
Создано: 23 июня 2026
Обновлено: 23 июня 2026
Просмотров: 33
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Этот сеанс создан для глубокого восстановления нервной системы во время сна. Не временного расслабления. А возвращения к вашему естественному состоянию покоя.

/binauralBrainwaveGenerator

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Биотехнологии
Создано: 15 мая 2026
Обновлено: 15 мая 2026
Просмотров: 138
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

https://mynoise.net/NoiseMachines/binauralBrainwaveGenerator.php

Когда два чистых тона имеют близкие частоты, между ними возникает эффект биений — ритмическая пульсация звука. Если один тон подаётся в левое ухо, а другой — в правое, звуковые волны физически не смешиваются в воздухе. Тем не менее мозг воспринимает их взаимодействие как внутренний пульс — так называемый бинауральный ритм. Именно поэтому эффект работает корректно только при использовании наушников.

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

 

Большинство онлайн-генераторов бинауральных ритмов используют всего два несущих тона — по одному для каждого уха. Здесь же применяется десять независимых тонов. Это позволяет формировать многослойные, постоянно меняющиеся структуры биений с необычной глубиной и сложностью. Каждый тон представляет собой исключительно чистую синусоидальную волну, созданную профессиональным генератором тестовых сигналов и подобранную для максимальной чистоты звучания.

Ollama на удалённом сервере VDS

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Компьютерная повседневность
Создано: 27 апреля 2026
Обновлено: 27 апреля 2026
Просмотров: 173
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
1. Установка (Linux):
On VDS under root:
curl -fsSL https://ollama.com/install.sh | sh

2. Использование на Windows удалённо:

BEST: SSH tunnel (safe, recommended)

On Windows PowerShell:

ssh -L 11434:127.0.0.1:11434 root@ВАЩ_REMOTE_IP
 

Then in another terminal:

Invoke-RestMethod -Uri "http://127.0.0.1:11434/api/generate" `
  -Method POST `
  -ContentType "application/json" `
  -Body '{"model":"llama3","prompt":"Tell me about Olomouc"}'
 

👉 This works without opening any firewall ports.
 

Для использования в своих HTML (CORS fix)

На сервере:
1. Run

sudo systemctl edit ollama

2. The file will be empty with some comments. Type this EXACTLY between the comment lines:

[Service]
Environment="OLLAMA_ORIGINS=*"

I### Anything between here and the comment below will become the new contents of the file


[Service]
Environment="OLLAMA_ORIGINS=*"

### Lines below this comment will be discarded

3. Save and exit — in nano: Ctrl+O, Enter, Ctrl+X. In vim: :wq

4. Reload and run services:

sudo systemctl daemon-reload
sudo systemctl restart ollama

5. Verify it took effect:

sudo systemctl show ollama | grep ORIGINS

You should see OLLAMA_ORIGINS=* in the output.

Локально:
1. PowerShell: 

ssh -L 11434:127.0.0.1:11434 root@YOUR_REMOTE_IP

2. Проверка в браузере:
Open URL: 

http://127.0.0.1:11434/api/tags
  1. free dynamic DNS hosted on AWS
  2. Free Audio and Video Transcription
  3. Победить невроз, ВСД, ПА - не потеряв годы (фоновая тревога) - расслабление через напряжение, дыхание, доминантный очаг
  4. Non alcolized Cacao collection, low(???)cadmium

Страница 1 из 197

  • 1
  • 2
  • 3
  • 4
  • ...
  • 6
  • 7
  • 8
  • 9
  • 10

Back to Top

© 2026 Заметки электроника

Top.Mail.Ru