Сообщество - Arduino & Pi

Arduino & Pi

1 493 поста 20 825 подписчиков

Популярные теги в сообществе:

181

Ответ на пост «Что нужно сделать, чтобы Вас "обоср**" за вашу разработку и не сдаваться зарабатывая миллионы?»2

Подержите моё пиво... Два года усердно развиваем свой программно-хардварный проект: с нуля разработали и запрограммировали, стали резидентами Сколково и выстроили собственное производство. И что мы постоянно слышим? "Фу, Китай!", "Да я такое за вечер на Arduino соберу!" (wat?), "Украли идею и выдаёте за своё", "Распил бюджетных денег"... тоже подгорает.

Давайте по-порядку:

"Украли идею" – мы никогда не скрывали, что идея не уникальная и взята у канадской компании Activate Games после вирусных видео на пикабу. Только мы сфокусировались конкретно на пиксельном полу собственной разработки и сделали большой упор на IT-составляющую: разработали уникальную систему разработки игр на Lua (пост с околонулевым рейтингом); строим свою, можно сказать, мини CRM для управления локациями; сделали механизм автоматизированной доставки обновлений и мониторинга состояния всех устройств сети и т.д. Но идею цветного пола, конечно, украли, хер поспоришь.

"Разработка говно, я могу лучше" (но мне лень) – да пожалуйста, делайте! Мы будем только рады коллегам по цеху и новым конкурентам! Но за два года появилась только одна команда, кто сами сделали похожий продукт. Снимаю перед ними шляпу, ребята достойные инженеры. Остальные просто пытаются перепродавать Китай, т.к китайцы быстро прочухали фишку и просто заваливают рынок своим оборудованием... только вот софт у них говно и игр почти нет.

"Производство в Китае, значит не ваше" – таковы реалии, что в РФ подобное производство делать просто нерентабельно, невозможно тягаться с Китаем. Но кто-нибудь вообще представляет, как сложно организовать закупку и производство десятка комплектующих, сборку конечного изделия и всю логистику внутри чужой страны? Производство печатных плат, датчиков, кабелей, литьё нескольких видов собственных корпусов и т.д. А после этого пройти сертификацию и официальную таможню РФ? Да, мы возим свой продукт в белую, слабо? Вот и не*уй. Тут же, собственно, по мнению обывателя, и идёт "распил" бюджетных денег в виде субсидий Сколково на таможенные пошлины.

А начинали с абсолютного нуля в пыльном гараже, выпиливая и шлифуя первые пиксели из дерева (пост). И также никто не видит сотни бессонных ночей отладки (ТГ пост) и ночные обновления софта, чтобы утром люди пришли играть на чуть более качественный продукт. Прямо сейчас как раз не сплю, потому что выкатываю важное обновление.

"Зарабатываете миллионы на хайповой теме" – из-за того, что мы открыто публикуем все финансы в телеграм канале (график прошлого года), у людей складывается впечатление, что мы неплохо зарабатываем. Но по факту, мы практически всё реинвестируем обратно в проект и наращиваем команду. За два года мы ещё ДАЖЕ НЕ ВЕРНУЛИ свои вложения (а вложили на старте порядка 7 млн личных средств). У меня, как и у партнёра, есть обычная работа, которая позволяет кормить семью. А бизнес это так, для души. Ни о каких яхтах речи не идёт. Месяц назад вот впервые выбрались вместе на неделю в Териберку на кайтах покататься. Успех ящитаю.

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

Я сам вышел из таких "ботанов": в школе увлекался программированием, после института устроился обычным инженером на завод, позже ушел в айти за деньгами. Сейчас развиваю свой проект с абсолютного нуля, о котором сам же лично рассказываю в телеграм канале, в том числе со всеми финансовыми подробностями становления бизнеса.

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

Без рейтинга, панамку подготовил

Показать полностью
48

Easy HMI: Создавайте собственные HMI-дисплеи с ESP32 и TFT

Программное обеспечение Easy HMI, предназначенное для создания пользовательских интерфейсов (HMI), получило значительное обновление. Разработчик адаптировал ПО, расширив его возможности: теперь пользователи могут не только работать с готовыми дисплеями линейки AT2432S028-R, AT3248S035-C, ESP32-2432S028R, но и самостоятельно собирать HMI-устройства, комбинируя доступные платы ESP32 и различные TFT-дисплеи.

Гибкость выбора компонентов

Ключевым нововведением стала поддержка широкого спектра TFT-дисплеев с интерфейсом SPI. В ходе разработки были успешно протестированы модели диагональю от 1.8 до 2.8 дюймов с разными драйверами (ST7789V, ST7789VW, ST7735S, ILI9341) и разрешениями (128x160, 240x320, 320x240). Теоретически, поддерживаются практически любые SPI TFT-экраны размером от 0.9 до 4 дюймов, включая варианты с сенсорными панелями (например, на чипе XPT2046).

Упрощенная настройка и прошивка

Поскольку разные дисплеи имеют свои особенности (цветовые схемы, ориентация, зеркальное отображение), в программе Easy HMI появились расширенные настройки драйверов. Это позволяет точно сконфигурировать ПО под конкретное оборудование.

Процесс загрузки прошивки на плату ESP32 также был усовершенствован. Теперь это можно сделать прямо из интерфейса приложения Easy HMI (версии 0.1.1 TFT и выше): достаточно выбрать COM-порт подключенной платы, указать файл прошивки (.bin) и нажать кнопку "Загрузить". Важно использовать плату на чипе ESP32 (без суффиксов S2, S3, C3 и т.д.) и убедиться, что COM-порт не занят другими программами. Предусмотрены как бесплатная прошивка (для создания информационных дисплеев), так и платная (для проектов с сенсорным управлением).

Подключение и использование

В статье приводится базовая схема подключения TFT-дисплея к ESP32. Собранное устройство можно использовать как полноценный HMI-дисплей, управляя им с внешнего микроконтроллера через UART2, либо задействовать экранные кнопки для управления выводами GPIO самой ESP32 (например, GPIO 4, 23, 18).

Для создания проектов можно использовать существующие уроки по Easy HMI, AT HMI или визуальную среду программирования ArduBlock. Важно отметить, что прошивка Easy HMI не блокирует плату: пользователи в любой момент могут загрузить свой собственный код, написанный в Arduino IDE, а затем при необходимости вернуться к Easy HMI, повторно прошив устройство.

Показать полностью 4

Новый Raspberry CM5 совместим с Российским компьютером

Новый Raspberry CM5 совместим с Российским компьютером

Российский компьютер Antex Gate, разработанный энтузиастами и использующий модуль Raspberry Pi CM4, теперь совместим с новым Raspberry Pi Compute Module 5 (CM5).

AntexGate – это компьютер, выпускаемый в России на базе Raspberry Pi CM4 CM3 уже несколько лет.

Ключевые характеристики Raspberry Pi CM4:

  • Процессор: Broadcom BCM2711, 4 ядра Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz

  • Память: До 8 ГБ LPDDR4 SDRAM

  • Интерфейсы: Gigabit Ethernet, USB 2.0, HDMI, PCIe Gen 2 x1

Теперь, по предзаказу у разработчиков Antex Gate, можно приобрести компьютер с установленным Raspberry Pi CM5. Это значительно расширяет возможности устройства.

Краткие характеристики Raspberry Pi Compute Module 5 (CM5)

  • Процессор: Broadcom BCM2712 (4 ядра Cortex-A76, ARM v8.2-A, 2.4 ГГц)

  • Оперативная память (RAM): 4 ГБ, 8 ГБ или 16 ГБ LPDDR4X-4267

  • Хранилище: 16 ГБ, 32 ГБ, 64 ГБ

  • Основные интерфейсы:

    • PCIe Gen 2 x1 (совместимость с CM4)

    • 2× USB 3.0 (вместо USB 2.0 на CM4)

    • 2× HDMI 2.0 (4K@60, вместо одного на CM4)

    • 2× MIPI CSI/DSI (камеры/дисплеи)

    • Gigabit Ethernet

    • Wi-Fi 6 (802.11ax) и Bluetooth 5.0 (в версиях с беспроводными модулями)

Единственным ограничением совместимости между платой AntexGate и Raspberry Pi CM5 является невозможность использования внутреннего Watchdog таймера. Все остальные интерфейсы и разъемы полностью совместимы.

Благодаря этому, на базе компьютера Antex Gate теперь можно создавать рабочие места для решения широкого спектра задач, включая системы автоматизации, обработку и распознавание изображений, а также другие ресурсоемкие приложения, доступные благодаря возможностям Raspberry Pi CM5. По данным Jeff Geerling, CM5 в 2-3 раза быстрее CM4.

Ключевые отличия от CM4

  • + В 2–3 раза выше производительность CPU

  • + В 2 раза больше RAM (до 16 ГБ)

  • + Полноценная видеокарта

Источник: Официальный сайт Raspberry Pi.

Где узнать подробности?

Подробнее о технических аспектах совместимости можно обсудить в нашем телеграм сообществе.

Показать полностью
22

Как получить точное время на ESP32?

Микроконтроллер ESP32 благодаря своим возможностям Wi-Fi давно стал любимцем разработчиков проектов Интернета вещей (IoT). Одной из ключевых задач в таких проектах является синхронизация времени. Устройство должно уметь определять дату и время с высокой точностью, чтобы использовать временные метки или планировать задачи. С этим успешно справляется протокол сетевого времени (NTP), который доступен для Wi-Fi-устройств, включая ESP32.

Что такое NTP, и зачем он нужен?

Протокол сетевого времени (NTP, Network Time Protocol) — это инструмент для синхронизации часов между устройствами в сети, который обеспечивает точность до миллисекунд. С помощью NTP ваш ESP32 и другие устройства могут согласовать время с глобальными серверами, к примеру, pool.ntp.org. Этот сервер доступен всем пользователям, а любое устройство, выступающее клиентом, может получать от него текущее время.

Как получить точное время на ESP32?

Как это работает?

ESP32 запрашивает сервер на предмет времени, отправляя запрос NTP. Сервер возвращает ответ, содержащий точную дату и время. Затем микроконтроллер определяет локальное время, используя заданные часовой пояс и при необходимости смещение на летнее время. Весь процесс занимает считаные миллисекунды.

Настройка NTP-клиента с использованием Arduino IDE.

Для успешной работы ESP32 потребуется сначала настроить среду разработки Arduino IDE. В руководстве на сайте Arduino-tex.ru подробно объясняется процесс установки настроек для ESP32. После подготовки вы сможете использовать встроенные стандартные библиотеки ESP32, такие как time.h и WiFi.h, чтобы отправить запрос к NTP-серверу и получить точное время.

Помимо этого, важно задать следующие параметры:

  • NTP-сервер: обычно используется pool.ntp.org, но доступны и региональные серверы, например, ru.pool.ntp.org.

  • Смещение времени от GMT: например, для Москвы (UTC+3) нужно указать 10800 секунд.

  • Учет летнего времени: если в вашем регионе используется переход на летнее время, добавьте 3600 секунд (1 час), или оставьте 0, если летнее время не применяется.

Пример кода.

Чтобы проверить работу NTP-клиента, достаточно загрузить специальный скетч на ESP32. В статье вы найдете полный программный код, который содержит описание всех настроек, подключение к Wi-Fi, запрос времени с NTP-сервера, а также его вывод в Монитор последовательного порта.

Ключевые функции:

  • WiFi.begin(): подключение к сети Wi-Fi.

  • configTime(): установка конфигурации для NTP (сервер, смещение GMT, учет летнего времени).

  • getLocalTime(): получение синхронизированного локального времени.

Как получить точное время на ESP32?

Важные моменты.

  • Стабильность интернета: ESP32 получает время с сервера только при наличии активного подключения к Wi-Fi.

  • Настройки часового пояса: для уверенности в правильности локального времени всегда проверяйте значение смещения GMT для вашего региона и актуальные правила перехода на летнее время.

  • Энергопотребление: если вам не нужно поддерживать постоянное интернет-соединение, его можно отключить после синхронизации времени, что уменьшит расход энергии устройства.

Преимущества использования NTP.

Этот метод прост и универсален, поскольку не требует дополнительных аппаратных модулей, таких как часы реального времени (RTC). Он идеально подходит для проектов, которые имеют постоянное соединение с интернетом и в которых допустимо периодически обновлять время.

Ограничения.

Если ваш проект должен предоставлять точное время в условиях отсутствия интернета, использование NTP может быть неудобно. Для автономной работы рекомендуются внешние часы реального времени (RTC) — например, модуль DS3231.

Показать полностью 2
1

Мы заморозили промышленный Raspberry PI CM4 до -65°C

Что случится, если отправить промышленный миникомпьютер в условия вечной мерзлоты? В этом эксперименте мы подвергли суровым испытаниям образец Raspberry PI CM4 на материнской плате российской разработки AntexGate v2, чтобы проверить реальные возможности этого тандема.

На выходных жена заставила помыть холодильник, и меня осенило! А что, если проверить, как электроника поведет себя в таких экстремальных условиях? Ведь в мире промышленной автоматизации надежность оборудования при низких температурах — это не просто пожелание, а необходимость. Многие сталкивались с перегревом гаджетов, но мало кто задумывался, как они справятся с настоящим холодом.

Так родилась идея испытать миникомпьютер AntexGate v2 который работает на RaspberryCM4 в условиях, где даже самые стойкие компоненты могут «замерзнуть». И, как выяснилось, не зря. Сегодня мы расскажем, как это устройство прошло проверку в условиях, где даже опытные исследователи Арктики предпочли бы надеть дополнительный слой термобелья.

Что такое AntexGate v2?

AntexGate v2 — это вторая ревизия миникомпьютера, созданного на базе Raspberry Pi Compute Module 4 (CM4) в миниатюрном форм-факторе для встраиваемых приложений. Устройство разработано для использования в промышленных условиях.

Подробные характеристики →

Живой обмен опытом в телеграм →

Испытания в «Мини Сабзеро»

Для проведения тестов использовалась климатическая камера Tabai MC-71, которую в шутку прозвали «Мини Сабзеро». Эта камера способна создавать температуру от -80°C до +100°C с точностью поддержания ±0.5°C. Внутренний объем камеры — 64 литра, что вполне хватает, чтобы устроить миникомпьютеру настоящий «ледяной стендап». Если бы у AntexGate v2 был микрофон, он бы наверняка пошутил: «Ну что, ребята, кто тут следующий замерзнет? Я уже готов к своему выступлению!» Итак общий вид.

Общий вид стенда для испытаний

Общий вид стенда для испытаний

Стенд для испытаний:

  1. Внутри камеры: AntexGate v2.

  2. Снаружи в безопасных условиях: блок питания АКИП-1160, монитор, клавиатура и мышь.

  3. Программное обеспечение: ОС Raspbian, тесты PassMark PerformanceTest, Node-RED для проверки обмена данными через порты RS485.

Разместили внутри климатической камеры

Разместили внутри климатической камеры

Методика испытаний

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

Работа в комнатных условиях

Работа в комнатных условиях

Следующий этап — -20°C. Через специальное окошко климатической камеры мы наблюдали, как миникомпьютер спокойно переносит первые морозы. Прохлаждаясь 30 минут, он включился без малейших задержек, будто это был для него обычный рабочий день. Но это была лишь разминка перед настоящим вызовом.

Затем температуру опустили до -40°C. Все интерфейсы работали как часы, а мы, наблюдая через окошко, только переглядывались: «Неужели устройство выдерживает заявленные температурные параметры!» Ставим зачет, двигаемся дальше!

Самое интересное началось, когда мы решили устроить настоящий экзамен! Мы оставили устройство в выключенном состоянии в климатической камере, чтобы охладить до -65°C и разошлись по домам. Сабзеро пыхтел всю ночь... По прошествии суток, мы подняли температуру до рабочих -40°C, подали питание... AntexGate v2 включился так же легко, как будто только что вышел из теплой комнаты. Были переживания по поводу реакции на низкую температуру пластика микроразъема, между материнской платой и Raspberry Pi CM4, что могло привести к отсоединению контактов, но AntexGate v2 даже не дрогнул.

Микроразъем между материнской платой и Raspberry Pi CM4

Микроразъем между материнской платой и Raspberry Pi CM4

Максимальное потребление энергии во время испытаний не превышало 10 Вт, что подтверждает энергоэффективность устройства и отсутствие элементов, «согревающих» плату. Единственным согревающим элементом был спирт, которым тщательно отмыты платы на производстве!

Когда мы прошли все тесты на заявленные -40°C, решили не останавливаться и попробовать “добить” тестовый экземпляр. Ведь он как раз для того и был предназначен — чтобы найти его предельные характеристики. Мы опустили температуру до -65°C и начали экспериментировать с запусками. При -65°C устройство успешно прошло тесты PassMark PerformanceTest, причем обмен данными через порты RS485 оставался стабильным.

И тут в дело включилась физика: при таких экстремальных температурах все номиналы компонентов на плате начинают отклоняться от нормы. Снижение сопротивления привело к ускорению работы оперативной памяти. Если кому-то вдруг понадобится ускорить ОЗУ и снизить скорость отклика на 5%, можно взять наш метод на вооружение — просто охладите устройство до -65°C.

Обмен данными между портами RS485 при температуре -65°С

Обмен данными между портами RS485 при температуре -65°С

Результаты тестов при температуре среды -65°С

Результаты тестов при температуре среды -65°С

Но, честно говоря, мы не рекомендуем использовать AntexGate v2 на таком пределе. Хотя сам контроллер справился, мы не можем гарантировать стабильную работу периферии — например, модема, жесткого диска или других модулей, которые пользователь подключит самостоятельно. Заявленные -40°C устройство прошло на ура, так что русскую зиму оно переживет даже без шапки-ушанки. А вот до -65°C — это уже на свой страх и риск.

Подводим итоги

AntexGate v2 оказался настоящим «моржом» среди миникомпьютеров, бросив вызов экстремальным температурам и удивив даже скептиков. Когда температура в камере упала до -65°C, никто не верил, что устройство включится. Но оно не только заработало, но и показало отличную производительность, будто такие морозы для него — обычное дело.

Если вам интересно узнать больше о возможностях этого устройства или поделиться своим опытом использования, присоединяйтесь к нашему Telegram-каналу. Здесь кипит живое общение: пользователи и разработчики AntexGate обсуждают настройки, делятся лайфхаками и помогают друг другу решать задачи. Это место, где вы найдете ответы на свои вопросы и вдохновение для новых проектов!

PS/

Многие после прочтения скажут, что это просто ничего не значит и главное высокие температуры, но в нашем канале отписывались клиенты о реальных испытаниях на +102 градуса Цельсия, к сожалению выше устройство отключилось и вернулось к стабильной работе после остывания. Вот Вам и raspberry для "гиков" хотя если почитать состав микросхем на борту Raspberry и AntexGate там только самые именитые и нежадные микросхемы (FTDI, Microchip, Broadcom, Samsung, TI и другие).

Показать полностью 6
13
Вопрос из ленты «Эксперты»

Arduino. Проблема с serial. Нужна помощь

Пишу скетч для управления маленькой сыроварней у себя дома. Нужно в сериал передавать данные температуры рубашки и молока и читать оттуда управляющие команды
сам скетч


#include <OneWire.h>  // Подключаем библиотеку для взаимодействия с устройствами, работающими на шине и по протоколу 1-Wire

#include <DallasTemperature.h>  // Подключаем библиотеку с функциями для работы с DS18B20 (запросы, считывание и преобразование возвращаемых данных)

#define ONE_WIRE_BUS 4  // Указываем пин подключения data-вывода датчика температуры

// Массив для хранения адресов датчиков

DeviceAddress sensor1, sensor2;

// Таймер очередного считывания значений с датчика температуры

unsigned long tempReadTimer;

// Частота считывания температуры с датчика (мс)

int tempReadDuration = 1000;


// Порт для нагревателя

#define HEATER_PIN 12

//Порт для охладителя

#define COOLER_PIN 13

//Порт для активации мешалки

#define BLENDER_PIN 4

//Порт для мешалки правый

#define BLENDER_PIN_R 5

//Порт для мешалки левый

#define BLENDER_PIN_L 6

OneWire oneWire(ONE_WIRE_BUS);  // Сообщаем библиотеке об устройстве, работающем по протоколу 1-Wire

DallasTemperature sensors(&oneWire);  // Связываем функции библиотеки DallasTemperature с нашим 1-Wire устройством (DS18B20)

void setup(void)

{

Serial.begin(9600); // Порт на Nextion

Serial.setTimeout(50); // Таймаут ожидания что все пришло

// Нагреватель

pinMode(HEATER_PIN, OUTPUT);

// Охладитель

pinMode(COOLER_PIN, OUTPUT);

// Мешалка

pinMode(BLENDER_PIN, OUTPUT);

pinMode(BLENDER_PIN_R, OUTPUT);

pinMode(BLENDER_PIN_L, OUTPUT);

// Выключаем порт нагревателя

digitalWrite(COOLER_PIN, LOW);

// Выключаем порт охладителя

digitalWrite(HEATER_PIN, LOW);

//Выключаем порты мешалки

digitalWrite(BLENDER_PIN, LOW);

digitalWrite(BLENDER_PIN_L, LOW);

digitalWrite(BLENDER_PIN_R, LOW);

// Запускаем библиотеку измерения температуры

sensors.begin();

// Запускаем поиск датчиков

if (!sensors.getAddress(sensor1, 0)) {

Serial.println("Датчик 1 не найден!");

}

if (!sensors.getAddress(sensor2, 1)) {

Serial.println("Датчик 2 не найден!");

}

// Установка разрешения датчиков (9-12 бит)

sensors.setResolution(sensor1, 12);

sensors.setResolution(sensor2, 12);

}

void loop() {

// Запрос температуры от всех датчиков

sensors.requestTemperatures();

// Чтение температуры с каждого датчика

float temp1 = sensors.getTempC(sensor1);

float temp2 = sensors.getTempC(sensor2);

if(millis() >= tempReadTimer + tempReadDuration) {

// Отправляем значение температуры молока в Nextion

Serial.print("Main.MilkT.txt=\"");

Serial.print(String(temp1*10));

Serial.print("\"");

Serial.write(0xFF);

Serial.write(0xFF);

Serial.write(0xFF);

// Отправляем значение температуры воды в Nextion

Serial.print("Main.WaterT.txt=\"");

Serial.print(String(temp2*10));

Serial.print("\"");

Serial.write(0xFF);

Serial.write(0xFF);

Serial.write(0xFF);

// Обновляем таймер

tempReadTimer = millis();

}

if (Serial.available() > 0)

{

// Что то пришло на вход

// Считываем данные из порта

String code = Serial.readString();


if(code == "HeaterOn") {

// Включаем порт нагревателя

digitalWrite(HEATER_PIN, HIGH);

// Выключаем порт охладителя

digitalWrite(COOLER_PIN, LOW);

}

else if(code == "HeaterOff") {

// Выключаем порт нагревателя

digitalWrite(HEATER_PIN, LOW);

}

else if(code == "CoolerOn") {

// Включаем порт нагревателя

digitalWrite(COOLER_PIN, HIGH);

// Выключаем порт охладителя

digitalWrite(HEATER_PIN, LOW);

}

else if(code == "CoolerOff") {

// Выключаем порт нагревателя

digitalWrite(COOLER_PIN, LOW);

}

}

}

В текущем виде он не передает значения температур. В мониторе порта видно

Main.MilkT.txt=""���Main.WaterT.txt=""���

Но стоит убрать код обработки команд


if(code == "HeaterOn") {

// Включаем порт нагревателя

digitalWrite(HEATER_PIN, HIGH);

// Выключаем порт охладителя

digitalWrite(COOLER_PIN, LOW);

}

else if(code == "HeaterOff") {

// Выключаем порт нагревателя

digitalWrite(HEATER_PIN, LOW);

}

else if(code == "CoolerOn") {

// Включаем порт нагревателя

digitalWrite(COOLER_PIN, HIGH);

// Выключаем порт охладителя

digitalWrite(HEATER_PIN, LOW);

}

else if(code == "CoolerOff") {

// Выключаем порт нагревателя

digitalWrite(COOLER_PIN, LOW);

}

то температура начинает передаватся нормально
Main.MilkT.txt="201.88"���Main.WaterT.txt="207.50"

Подскажите пожалуйста, где я ошибаюсь. Что я делаю не так.

UPD. Проблема решена. в копию кода не попало еще одно присоединение библиотеки. и оно жрало память. В общем не хватало памяти.

Показать полностью
19

Гайд по установке Klipper на Orange Pi Zero (Lts) (Актуально на 02.03.2025)

1. Подготовка системы

1.1. Ставим образ

Ставим образ Armbian Minimal/IOT Debian 12 (Bookworm)
https://www.armbian.com/orange-pi-zero/

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

Пропускаем добавление пользователя Crtl+с

1.3. Настройка WiFi

Устанавливаем и включаем WiFi, коннектимся к сети:

apt-get install network-manager-gnome

sudo nmtui

Теперь после перезагрузки OPI будет автоматически коннектиться по WiFi к выбранному подключению, но лучше, конечно, всё настроить ещё по LAN.

2. Добавление пользователя pi

2.1. Создание пользователя и назначение групп

sudo adduser pi

sudo usermod -a -G tty pi

sudo usermod -a -G dialout pi

sudo adduser pi sudo

2.2. Перезагрузка системы

sudo reboot

3. Настройка sudoers

3.1. Редактирование файла sudoers

Редактируем sudoers, добавляем пользователю pi все разрешения.
Этот этап очень важный и нельзя ошибиться. При открытии может потребоваться закрыть 2 страницу (Ctrl+X):

sudo nano edit /etc/sudoers

Добавляем в следующий блок:

#User privilege specification

root  root ALL=(ALL:ALL) ALL

pi  ALL=(ALL:ALL) ALL  // этот блок без сноски

Сохраняем изменения (Ctrl+O, подтверждаем, Ctrl+X – закрываем).

3.2. Перезагрузка системы

sudo reboot

4. Установка необходимых пакетов

4.1. Установка net-tools

sudo apt-get install net-tools –y

4.2. Установка остальных пакетов (копируем целиком)

sudo apt install -y \

git \

make \

gcc \

libncurses-dev \

libusb-1.0-0-dev \

python3-virtualenv \

python3-dev \

avrdude \

zlib1g-dev \

libjpeg-dev \

libopenjp2-7-dev \

libtiff5-dev \

libfreetype6-dev \

liblcms2-dev \

libwebp-dev

5. Обновление системы

5.1. Обновляем установленные пакеты и систему

sudo apt update && sudo apt upgrade –y

6. Расширение оперативной памяти

6.1. Увеличиваем объем оперативной памяти до 2 ГБ

sudo fallocate -l 2G /swapfile

sudo chmod 600 /swapfile

sudo mkswap /swapfile

sudo swapon /swapfile

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

7. Увеличение объёма папки /tmp

7.1. Редактируем /etc/fstab

sudo nano /etc/fstab

Найдите строку:

tmpfs /tmp tmpfs defaults,nosuid 0 0

Измените её, добавив параметр size=512M:

tmpfs /tmp tmpfs defaults,nosuid,size=512M 0 0  (должно выглядеть так)

Сохраните файл (Ctrl+O, затем Enter) и выйдите (Ctrl+X).

7.2. Перезагрузка системы

sudo reboot

8. Установка скрипта KIAUH

8.1. Клонирование репозитория и запуск скрипта

sudo git clone https://github.com/th33xitus/kiauh.git

запускаем KIAUH
./kiauh/kiauh.sh 

8.2. Установка компонентов

Устанавливаем:

  • Klipper для 1 машины*

  • Выбираем Python 3.x

  • Moonraker

  • Fluidd или Mainsail (веб-окружение)

Показать полностью
Отличная работа, все прочитано!