service5.0mz

service5.0mz

Пикабушник
Дата рождения: 30 сентября
1140 рейтинг 3 подписчика 16 подписок 27 постов 5 в горячем
Награды:
За неравнодушие к судьбе Пикабу
5

Узкоспециализированная самоделка для электромонтёра ОПС - "Умный Пробник"

ВНИМАНИЕ! В данной статье используется контакт с сетями 220В! Будьте осторожны и соблюдайте технику безопасности при работе с напряжением 220В!

После очередной попытки проверить фазу отвёрткой-пробником, понял что батарейки там кончились(пробник 5в1), да и мультиметр подвёл - крона "села" и он перестал включаться...

Мне это всё надоело и я решил сделать устройство, которое бы удовлетворяло моим потребностям в нахождении фазы, в поиске скрытой проводки, в измерении резисторов(ходовых при работе ОПС), в измерении светодиодов - и всё это без постоянных замен батареек.

И на свет родилось это (просьба не пинать - я сделал из того, что было под рукой...принтера, к сожалению, нет)

Франкенштейн под кодовым названием "Умный пробник"

Франкенштейн под кодовым названием "Умный пробник"

Мозгом прибора выступил "народный" Wemos D1 mini. Дисплей - 0.96" OLED (используется очень часто в самоделках), щупом выступил тот самый щуп, который был у меня(пришлось укоротить). Ну и по мелочи: резисторы, транзисторы, кнопки, переключатели, плата зарядки, акб.

Что умеет прибор:

  • Проверка фазы\нуля (до 220В) - при "фазе" издаёт непрерывный сигнал(присутствует гальваническая развязка).

  • Омметр: Проверка резисторов от 1kΩ до 200kΩ (имеется отдельные входы на торце для подключения).

  • Бесконтактный поиск скрытой проводки (с графической шкалой уровня сигнала, отображением цифры уровня, и потрескиванием с меняющимся тоном при приближении к проводу).

  • Проверка светодиодов с отображением напряжения падения.

  • Прозвонка провода на обрыв: При сопротивлении ниже 150 Ом прибор пишет «ЦЕПЬ: ОК» и издает непрерывный сигнал.

  • Обновление по Wi-Fi (OTA): Упрощает корректировку и настройку прибора либо обновление функций.

Автономность работы: во включенном режиме - 9 часов, в выключенном - пока не сядет li-ion батарея от саморазряда. Учитывая, что замеры, в среднем, происходят не более 2х минут и прибор отключают, то прибор заряжать нужно будет не чаще раза в полгода, год.

Если кого-то заинтересовал данный проект - ниже будут списки с необходимыми деталями и сам скетч под Arduino IDE

Необходимые детали:

Wemos D1 mini (ESP8266) - 1шт.
Дисплей: OLED 0.96" I2C - 1шт.
Динамик с планшета или смартфона на 4-8 Ом - 1шт.
Транзистор BC547- 2шт.
Диоды 1N4148 - 2шт.
Резистор 2.2 МОм (0.25Вт или выше) - 1шт.
Резистор 1 МОм - 1шт.
Резистор (эталон для омметра): 10 кОм - 1шт.
Резистор (для динамика): 100 Ом - 1шт.
Аккумулятор: Li-Po или Li-ion (по размеру вашего корпуса) - 1шт.
Модуль зарядки: TP4056 с разъемом Type-C (с защитой АКБ) - 1шт.
Выключатель: Сдвижной тумблер (SPDT) - 1 шт.
Кнопка: Тактовая кнопка любого, удобного вам, размера - 1шт.
Разъемы для резисторов: любой разъём "мама" - 2шт.
Тыльный контакт: Небольшая металлическая пластина (для касания пальцем) - 1шт.

Ещё необходимо поверх щупа, на ту часть, которая внутри корпуса, через изоляцию(термоусадка например) намотать 10-15 витков провода. Один конец этой обмотки оставьте свободным (никуда не подключайте!)., а второй конец припаяйте в точку на плате Wemos, куда приходит защитный резистор 2.2 МОм).

Схема соединения на словах: Щуп к резистору 2.2 МОм а от резистора к базе транзистора BC547.
Коллектор транзистора BC547 к пину 3.3V на Wemos.
Эмиттер транзистора BC547 к пину A0 на Wemos.
Пин A0 на Wemos к резистору 10 кОм а от резистора к GND.
Пин A0 к резистору 1 МОм а от резистора к GND).
Анод первого диода к базе BC547, а катод к 3.3V Wemos.
Анод второго диода к GND, а катод к базе BC547.
Разъем первый к пину 3.3V Wemos.
Разъем второй к пину A0 Wemos.
Контакт (пластина) напрямую к GND.
Дисплей : VCC на 3.3V Wemos.
Дисплей: GND на GND Wemos.
Дисплей: SCL на пин D1 (GPIO5).
Дисплей: SDA на пин D2 (GPIO4).
Тактовая кнопка: одна ножка к пин D3 (GPIO0), а вторая к земле GND.
Динамик: Эмиттер транзистора с землёй GND, базу с D5 через резистор 1k, коллектор с минусом динамика, плюс динамика к +5V платы Wemos.

Резистор 2.2 МОм должен быть припаян максимально близко к самому металлическому щупу и затянут в термоусадку.
Все точки "GND" должны быть соединены между собой!


При монтаже высоковольтных резисторов (2.2 МОм) убедитесь, что между их выводами и другими частями схемы достаточное расстояние (не менее 5-7 мм), чтобы исключить пробой по поверхности платы.

Скетч(код) для Arduino IDE:

#include <Arduino.h>

#include <U8g2lib.h>

#include <Wire.h>

#include <ESP8266WiFi.h>

#include <ESP8266mDNS.h>

#include <WiFiUdp.h>

#include <ArduinoOTA.h>

#include <WiFiManager.h>


#define NOTE_E7  2637

#define NOTE_C7  2093

#define NOTE_G7  3136

#define NOTE_G6  1568


float avgRaw = 1024.0;

U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

const int BTN_PIN = D3; 

const int BUZZ_PIN = D5; 

const int SENSOR_PIN = A0;

const float R_REF = 11400.0; // Указать точное значение резистора 10k (в данном случае 11.4k)

bool isSleeping = false;

bool otaMode = false;

uint32_t lastActivity = 0;

int currentMode = 0;


void configModeCallback (WiFiManager *myWiFiManager) {

u8g2.clearBuffer();

u8g2.setFont(u8g2_font_6x12_t_cyrillic);

u8g2.drawUTF8(0, 12, "РЕЖИМ НАСТРОЙКИ");

u8g2.drawUTF8(0, 42, "SmartProbe-Config");

u8g2.setCursor(0, 60); u8g2.print("IP: "); u8g2.print(WiFi.softAPIP());

u8g2.sendBuffer();

}


int getP2P() {

int minV = 1024, maxV = 0;

uint32_t start = millis();

while (millis() - start < 28) {

int v = analogRead(SENSOR_PIN);

if (v < minV) minV = v;

if (v > maxV) maxV = v;

}

return (maxV - minV);

}


void wakeUp() {

if (isSleeping) {

u8g2.setPowerSave(0);

for(int i=0; i<255; i+=5) { u8g2.setContrast(i); delay(2); }

u8g2.setContrast(255);

isSleeping = false;

}

lastActivity = millis();

}


void setup() {

WiFi.mode(WIFI_OFF);

WiFi.forceSleepBegin();


pinMode(BTN_PIN, INPUT_PULLUP);

u8g2.begin();

u8g2.enableUTF8Print();

u8g2.setFont(u8g2_font_6x12_t_cyrillic);


if (digitalRead(BTN_PIN) == LOW) {

otaMode = true;

WiFi.forceSleepWake(); delay(10);

WiFi.mode(WIFI_STA);

u8g2.clearBuffer(); u8g2.drawUTF8(0, 20, "ОБНОВЛЕНИЕ ПО Wi-Fi"); u8g2.sendBuffer();

WiFiManager wm;

wm.setAPCallback(configModeCallback);

wm.setConfigPortalTimeout(180);

if (!wm.autoConnect("SmartProbe-Config")) { ESP.restart(); }

ArduinoOTA.setHostname("SmartProbe-V4");

ArduinoOTA.setPassword("1"); // Пароль при обновлении по "воздуху" - Запомни или измени на свой

ArduinoOTA.begin();

u8g2.clearBuffer(); u8g2.drawUTF8(0, 35, "ЖДУ ПРОШИВКУ...");

u8g2.setCursor(0, 55); u8g2.print("IP: "); u8g2.print(WiFi.localIP());

u8g2.sendBuffer();

}


if (!otaMode) {

pinMode(BUZZ_PIN, OUTPUT);

for (int i = 0; i <= 128; i += 8) {

u8g2.clearBuffer(); u8g2.drawLine(i, 0, i, 64); 

if (i > 30) u8g2.drawUTF8(15, 30, "УМНЫЙ");

if (i > 70) u8g2.drawUTF8(15, 50, "ПРОБНИК v4 [Wi-Fi]");

u8g2.sendBuffer();

}

int mel[] = { NOTE_E7, NOTE_E7, 0, NOTE_E7, 0, NOTE_C7, NOTE_E7, 0, NOTE_G7, 0,  NOTE_G6 };

int tem[] = { 100,  100,  80, 100,  80, 100,  100,  80, 150,  280, 200 };


for (int i = 0; i < 11; i++) {

if (mel[i] == 0) {

delay(tem[i]);

} else {

tone(BUZZ_PIN, mel[i], tem[i]);

delay(tem[i] * 1.35);

}

}

noTone(BUZZ_PIN); lastActivity = millis();

}

}


void loop() {

if (otaMode) { ArduinoOTA.handle(); return; }


int raw = analogRead(SENSOR_PIN);

int p2p = getP2P();


if (digitalRead(BTN_PIN) == LOW || p2p > 50 || (currentMode == 1 && raw > 20)) { wakeUp(); }

if (!isSleeping && (millis() - lastActivity > 1800000)) { u8g2.setPowerSave(1); isSleeping = true; }

if (isSleeping) return;


if (digitalRead(BTN_PIN) == LOW) {

currentMode++; if (currentMode > 2) currentMode = 0;

tone(BUZZ_PIN, 1000 + (currentMode * 500), 100);

while(digitalRead(BTN_PIN) == LOW) delay(10);

lastActivity = millis();

}


u8g2.clearBuffer(); u8g2.setFont(u8g2_font_6x12_t_cyrillic);

u8g2.drawUTF8(0, 10, currentMode == 0 ? "РЕЖИМ: ЩУП" : (currentMode == 1 ? "РЕЖИМ: ПОИСК ПРОВОДА" : "РЕЖИМ: LED"));

u8g2.drawHLine(0, 12, 128);


if (currentMode == 0) {


if (p2p > 40) {

avgRaw = 1024.0;

if (p2p > 800) {

u8g2.drawUTF8(5, 45, "ФАЗА! ~220V"); tone(BUZZ_PIN, 1000);

} else {

u8g2.drawUTF8(5, 45, "НОЛЬ / ПУСТО"); noTone(BUZZ_PIN);

}

}

else {

(raw > 960)

if (raw > 960) {

avgRaw = 1024.0;

u8g2.drawUTF8(5, 45, "НОЛЬ / ПУСТО");

noTone(BUZZ_PIN);

}

else {

if (avgRaw > 1000) avgRaw = (float)raw;

avgRaw = (avgRaw * 0.8) + (raw * 0.2);


float r_un = R_REF * ((1024.0 / avgRaw) - 1.0);


if (r_un > 400000.0) {

u8g2.drawUTF8(5, 45, "НОЛЬ / ПУСТО");

noTone(BUZZ_PIN);

}

else if (r_un < 150) {

u8g2.drawUTF8(5, 45, "ЦЕПЬ: ОК");

u8g2.setCursor(70, 45); u8g2.print((int)r_un); u8g2.print(" Om");

tone(BUZZ_PIN, 2000);

} else {

noTone(BUZZ_PIN); u8g2.setCursor(5, 45); u8g2.print("R: ");

if (r_un > 950) {

u8g2.print(r_un / 1000.0, 1); u8g2.print(" kOm");

} else {

u8g2.print((int)r_un); u8g2.print(" Om");

}

}

}

}

}

else if (currentMode == 1) {

u8g2.drawUTF8(5, 45, "СИГНАЛ: "); u8g2.setCursor(65, 45); u8g2.print(p2p);

int noiseFloor = 31;

if (p2p > noiseFloor) {

tone(BUZZ_PIN, 400 + (p2p - noiseFloor) * 80, 15);

delay(map(constrain(p2p, noiseFloor, 45), noiseFloor, 45, 200, 5));

} else { noTone(BUZZ_PIN); }

}

else {

float v = (raw * 3.3) / 1024.0;  

if (v > 0.5 && v < 3.1) {

u8g2.drawUTF8(5, 30, "СВЕТОДИОД ПОДКЛЮЧЕН");

u8g2.setCursor(5, 45);

u8g2.print("V падения: "); u8g2.print(v, 2); u8g2.print(" V");

} else {

u8g2.drawUTF8(5, 45, "ОЖИДАНИЕ LED...");

}

noTone(BUZZ_PIN);

}

u8g2.drawFrame(0, 56, 128, 8);

int barWidth;

if (currentMode == 1) {

barWidth = map(constrain(p2p, 30, 45), 30, 45, 0, 124);

} else {


barWidth = map(constrain(p2p, 750, 1024), 750, 1024, 0, 124);

}

u8g2.drawBox(2, 58, barWidth, 4);

u8g2.sendBuffer();

}

Не забываем скачать библиотеки, объявленные в начале кода: U8g2 (автор: oliver), WiFiManager (автор: tzapu), ядро ESP8266 (уже при начале прошивки выбираем LOLIN(WEMOS) D1 R2 & mini)
в MMU выбираем 16Kb+48kb IRAM, частоту проца 160Mhz

Спасибо за внимание и заранее простите за возможные орфографические ошибки.

UPD:

Видео работы основных режимов https://drive.google.com/file/d/1HaYfwVFuJ-eJx0kla1pdLG4uP5T...

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

Как я посудомоечную машину чинил

В собственности имеется посудомоечная машина Leran FDW 44-1063 W ("клон" Midea, Weissgauff, Hansa и Candy в этом-же ценовом сегменте), которая проработала больше 2 лет и началось у неё странное поведение: В середине цикла или в конце останавливалась и моргала светодиодом режима Rapid быстро-быстро, либо просто текло из-под неё и она по итогу всё-равно останавливалась с морганием. Открываешь дверцу а там вода слоем в 10см.

Вот такая машина трудится на благо семьи (фото с сети)

Вот такая машина трудится на благо семьи (фото с сети)

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

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

Были предложены варианты с: засором сливного патрубка, воздухом в патрубке, залипанием обратного клапана в патрубке, засором под фильтром, заклиниванием крыльчатки, свободным проворотом крыльчатки относительно вала итд. Я проводил тесты для подтверждения либо опровержения вариантов. И финальным предложением и тестом было залипание ротора(либо его подклинивание). Проверка этого варианта сводилась к резкому покачиванию корпуса машинки вперёд и назад на 45°( примерно) и резкому опусканию корпуса на место. Этот тест подтвердил гипотезу о проблеме в двигателе сливной помпы(насоса), но конкретной причины не выявил - "почему он заклинил или временами залипал".

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

Легко сняв "улитку" с двигателем слива(нажав на защёлку и прокрутив против часовой) начал внимательно смотреть - а в чём-же, собственно, проблема?

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

фото с сети

фото с сети

Но я, всё-же, заказал аналогичный на маркетплейсе и стал рассматривать "виновника" поближе и с пристрастием - взяв в руки отвёртку с плоским концом.

Тест на шатание вала дал неоднозначные ответы - вроде и шатается но не так чтобы прям сильно...Подковырнул крыльчатку с 2х противоположных сторон и вытащил "обойму" с прокладкой и магнитом внутри:

фото с сети для понимания вида

фото с сети для понимания вида

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

Теперь осталось дождаться приезда запчасти и машина снова будет в строю.

Благодарю за прочтение - надеюсь, будет полезно людям, попавшим в такое-же или аналогичное положение.

Извиняюсь заранее за возможные орфографические ошибки.

UPD:

Заменил - всё работает идеально, протечек нет.

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

Ем "Кисамор" 24/7, неделю...но он не кончается

Взял у тёщи этого гиганта(рос не в теплице даже). Взвесить не получилось т.к. не на чем.

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

P.S. Cемена сохранил на всякий случай.

Ем &quot;Кисамор&quot; 24/7, неделю...но он не кончается
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества