Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Gaisuwa ga duk masu karatun sashin "DIY ko Yi Kanku" akan Habr! Labarin yau zai kasance game da maɓallin taɓawa akan guntun TTP223 | takardar bayanai. Canjin yana aiki akan nRF52832 microcontroller | takardar bayanai, An yi amfani da tsarin YJ-17103 tare da eriya da aka buga da mai haɗawa don eriyar MHF4 na waje. Canjin taɓawa yana aiki akan batir CR2430 ko CR2450. Amfani a yanayin watsawa bai wuce 8mA ba, a yanayin bacci bai wuce 6 µA ba.
Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Kamar duk ayyukan da suka gabata, wannan kuma aikin Arduino ne, an rubuta shirin a cikin Arduino IDE. Aiwatar da software na na'urar ta dogara ne akan ka'idar Mysensors | GitHub dakunan karatu, nRF5 kwamitin yana goyan bayan GitHub a cikin Mysensors. Dandalin al'umma na harshen Ingilishi - http://forum.mysensors.org, dandalin al'umma na harshen Rashanci - http://mysensors.ru/forum/
(Ga masu son yin karatu - Rubutun, Serial layinhantsaki, API, ПротокоР», Fassara | ga masu son taimakawa (gudunmawar) a cikin ci gaban aikin - Rubutun)

An ƙera allon canza taɓawa a cikin shirin Deeptrace, la'akari da masana'anta na gaba ta amfani da hanyar Laser Ironing Technology (LUT). An ƙera allon a cikin girman 60x60mm (misali gilashin panel yana da girma na 80x80mm). An buga da'irar a kan shafukan mujallar Antenna kuma an canza shi tare da Bosch baƙin ƙarfe tare da saitin "Len" (mafi girman iko) a kan allon gilashin fiberglass mai gefe biyu 1.5mm, 35µm (in babu wani).
Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

An gudanar da etching tare da bayani na ferric chloride, wanda aka shirya a baya a cikin adadin 1.5 teaspoons da 250 ml na ruwan dumi. Tsarin ya ɗauki mintuna 15.
An yi hako ramukan don interlayer vias da kuma ɗaure mariƙin baturi tare da DREMEL 3000 mini-drill wanda aka ɗora akan tashoshi na DREMEL 220. . An yi datsawa tare da kan iyakokin allon tare da ƙaramin rami ɗaya tare da abin da aka makala DREMEL 0,4 (Yanke da'irar d=1,1mm). An yi pruning a cikin injin numfashi.
Tinning na etched allon da aka yi ta amfani da Rose gami a cikin wani ruwa bayani (1 teaspoon na crystallized citric acid da 300 ml na ruwa).

Aikin sayar da kayan ya ɗauki kusan awa ɗaya, yawancin lokacin ana yin amfani da waya (tinned, 0.4 mm in diamita) a cikin ramukan da za a yi amfani da ta hanyar interlayer.

An wanke allon da FLUX OFF mai tsabtace iska.
Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

An gudanar da ƙirar jikin na'urar a cikin editan ƙira mai girma uku mai taimakon kwamfuta. Girman akwati 78,5mm X 78,5mm X 12mm.
Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

An adana samfurin da aka kammala na shari'ar da murfin ɗakin baturi a cikin tsarin STL, sannan ya zama dole don shirya waɗannan samfuran don bugawa akan firintar SLA (ƙara goyon baya, daidaitawa). A wannan matakin, ƙaramin matsala ta taso, tunda yanki na buga firintocin SLA na gida kaɗan ne. Samfurin yanayin na'urar a cikin mafi kyawun matsayi dangane da lokacin bugu bai dace da ma'auni na wurin bugawa ba. Lokacin sanya samfurin a digiri 45, ya kuma ba da sakamako mai ban sha'awa; nauyin goyon baya ya kasance daidai da nauyin samfurin jiki. An yanke shawarar buga samfurin a tsaye, yana ba da tallafi a ɗaya daga cikin bangarorin gaba, bayan da aka amince da shi a gaba tare da gaskiyar bayan aiki. Buga jikin ya ɗauki sa'o'i 5 tare da saitin Layer na 50 microns. Bayan haka, an gudanar da aiki ta amfani da takarda mai laushi mai kyau (ba zan rubuta lambar ba saboda ban sani ba :)). Murfin baturi ya ɗauki mintuna 40 don bugawa.
Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Gilashin gilashi daga Aliexpress ana sayar da su tare da firam ɗin filastik da aka riga an manne; babu matsaloli tare da cire firam ɗin. Na cire gilashin panel bayan preheating shi da na'urar bushewa na yau da kullun.
Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Mai watsawa don hasken baya na LED an yi shi da tef mai gefe biyu tare da acrylic m 3M 9088-200. Don walƙiya mai walƙiya akwai abubuwa da yawa da za a zaɓa daga ciki, tef ɗin liƙa na kasar Sin da takarda m da aka yanke cikin kaset daga kamfanin cikin gida Luminofor. An zaɓi zaɓin don goyon bayan masana'anta na cikin gida; bisa ga ji na, ya haskaka da tsawo. An manne takarda mai murabba'in murabba'i mai launi mai kyalli a saman tare da tef mai fuska biyu na 3M 9088-200.

Gilashin an manne da jikin mai sauya ta amfani da tef mai gefe biyu tare da 3M VHB 4910 acrylic adhesive.
Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

An gyara murfin tare da dunƙule M 1,4 X 5 mm.

Farashin na'urar ya kasance 890 rubles.

Sai bangaren shirin. Akwai wasu matsaloli. Ya bayyana cewa kwakwalwan firikwensin TTP223 suna aiki da kyau tare da ingantaccen wutar lantarki na 3.3V kuma ba su da kyau sosai lokacin da aka kunna kai tsaye daga batir da aka fitar da kyau. Lokacin fara na'urar tare da samar da wutar lantarki a kusa da 2.5v, ƙari bayan ƙarin "zazzagewa" lokacin da ake aiwatar da gabatarwar Mysensors, TTP223 microcircuit (nan da nan bayan daidaitawa) ya haifar da katsewar MK tun yana tare da faɗakarwa mai aiki.

An canza da'irar wutar lantarki zuwa microcircuit (gudanar da wutar lantarki TTP223 tare da gpio MK), an ba da ƙarin ƙasa, kuma an maye gurbin masu adawa da juriya mafi girma akan layin jagoranci na rgb (wanda ke gudana a wancan gefen allon firikwensin capacitive). Hakanan an ƙara shi zuwa software: kunna wutar lantarki don microcircuit mai ƙarfi bayan fara tsarin Mysensors da aiwatar da gabatarwa. An ninka jinkiri don daidaitawa ta atomatik guntu TTP223 lokacin amfani da wuta. Duk waɗannan canje-canje sun kawar da wannan matsalar gaba ɗaya.

Kafin duba lambar shirin, Ina ba da shawarar ku san kanku tare da ainihin tsarin zane a cikin Mysensors.void before()
{
// Дополнительная функция, если сравнивать со стандартной структурой Ардуино скетчей, то before() это подобие setup(), отработка происходит до инициализации транспортного уровня Mysensors, рекомендуется например для инициализации устройств SPI
}

void setup()
{

}

void presentation()
{
//Тут происходит презентация ноды и ее сенсоров на контролере через маршрутизатор
sendSketchInfo("Name of my sensor node", "1.0"); // презентация названия ноды, версии ПО
present(CHILD_ID, S_WHATEVER, "Description"); // презентация сенсоров ноды, описания сенсоров
}

void loop()
{

}

Lambar gwajin sauya shirin taɓawa:test_sens.ino
/**
ТЕСТОВЫЙ СКЕТЧ СЕНСОРНОГО ВЫКЛЮЧАТЕЛЯ С ПРЕРЫВАНИЯМИ НА NRF_LPCOMP
*/
bool button_flag;
bool sens_flag;
bool send_flag;
bool detection;
bool nosleep;
byte timer;
unsigned long SLEEP_TIME = 21600000; //6 hours
unsigned long oldmillis;
unsigned long newmillis;
unsigned long interrupt_time;
unsigned long SLEEP_TIME_W;
uint16_t currentBatteryPercent;
uint16_t batteryVoltage = 0;
uint16_t battery_vcc_min = 2400;
uint16_t battery_vcc_max = 3000;

#define MY_RADIO_NRF5_ESB
//#define MY_PASSIVE_NODE
#define MY_NODE_ID 30
#define MY_PARENT_NODE_ID 0
#define MY_PARENT_NODE_IS_STATIC
#define MY_TRANSPORT_UPLINK_CHECK_DISABLED
#define IRT_PIN 3 //(PORT0, gpio 5)
#include <MySensors.h>
// see https://www.mysensors.org/download/serial_api_20
#define SENS_CHILD_ID 0
#define CHILD_ID_VOLT 254
MyMessage sensMsg(SENS_CHILD_ID, V_VAR1);
//MyMessage voltMsg(CHILD_ID_VOLT, V_VOLTAGE);

void preHwInit() {
sleep(2000);
pinMode(RED_LED, OUTPUT);
digitalWrite(RED_LED, HIGH);
pinMode(GREEN_LED, OUTPUT);
digitalWrite(GREEN_LED, HIGH);
pinMode(BLUE_LED, OUTPUT);
digitalWrite(BLUE_LED, HIGH);
pinMode(MODE_PIN, INPUT);
pinMode(SENS_PIN, INPUT);
}

void before()
{
NRF_POWER->DCDCEN = 1;
NRF_UART0->ENABLE = 0;
sleep(1000);
digitalWrite(BLUE_LED, LOW);
sleep(150);
digitalWrite(BLUE_LED, HIGH);
}

void presentation() {
sendSketchInfo("EFEKTA Sens 1CH Sensor", "1.1");
present(SENS_CHILD_ID, S_CUSTOM, "SWITCH STATUS");
//present(CHILD_ID_VOLT, S_MULTIMETER, "Battery");
}

void setup() {
digitalWrite(BLUE_LED, LOW);
sleep(100);
digitalWrite(BLUE_LED, HIGH);
sleep(200);
digitalWrite(BLUE_LED, LOW);
sleep(100);
digitalWrite(BLUE_LED, HIGH);
lpComp();
detection = false;
SLEEP_TIME_W = SLEEP_TIME;
pinMode(31, OUTPUT);
digitalWrite(31, HIGH);
/*
while (timer < 10) {
timer++;
digitalWrite(GREEN_LED, LOW);
wait(5);
digitalWrite(GREEN_LED, HIGH);
wait(500);
}
timer = 0;
*/
sleep(7000);
while (timer < 3) {
timer++;
digitalWrite(GREEN_LED, LOW);
sleep(15);
digitalWrite(GREEN_LED, HIGH);
sleep(85);
}
timer = 0;
sleep(1000);
}

void loop() {

if (detection) {
if (digitalRead(MODE_PIN) == 1 && button_flag == 0 && digitalRead(SENS_PIN) == 0) {
//back side button detection
button_flag = 1;
nosleep = 1;
}
if (digitalRead(MODE_PIN) == 1 && button_flag == 1 && digitalRead(SENS_PIN) == 0) {
digitalWrite(RED_LED, LOW);
wait(10);
digitalWrite(RED_LED, HIGH);
wait(50);
}
if (digitalRead(MODE_PIN) == 0 && button_flag == 1 && digitalRead(SENS_PIN) == 0) {
nosleep = 0;
button_flag = 0;
digitalWrite(RED_LED, HIGH);
lpComp_reset();
}

if (digitalRead(SENS_PIN) == 1 && sens_flag == 0 && digitalRead(MODE_PIN) == 0) {
//sens detection
sens_flag = 1;
nosleep = 1;
newmillis = millis();
interrupt_time = newmillis - oldmillis;
SLEEP_TIME_W = SLEEP_TIME_W - interrupt_time;
if (send(sensMsg.set(detection))) {
send_flag = 1;
}
}
if (digitalRead(SENS_PIN) == 1 && sens_flag == 1 && digitalRead(MODE_PIN) == 0) {
if (send_flag == 1) {
while (timer < 10) {
timer++;
digitalWrite(GREEN_LED, LOW);
wait(20);
digitalWrite(GREEN_LED, HIGH);
wait(30);
}
timer = 0;
} else {
while (timer < 10) {
timer++;
digitalWrite(RED_LED, LOW);
wait(20);
digitalWrite(RED_LED, HIGH);
wait(30);
}
timer = 0;
}
}
if (digitalRead(SENS_PIN) == 0 && sens_flag == 1 && digitalRead(MODE_PIN) == 0) {
sens_flag = 0;
nosleep = 0;
send_flag = 0;
digitalWrite(GREEN_LED, HIGH);
sleep(500);
lpComp_reset();
}
if (SLEEP_TIME_W < 60000) {
SLEEP_TIME_W = SLEEP_TIME;
sendBatteryStatus();
}
}
else {
//if (detection == -1) {
SLEEP_TIME_W = SLEEP_TIME;
sendBatteryStatus();
}
if (nosleep == 0) {
oldmillis = millis();
sleep(SLEEP_TIME_W);
}
}

void sendBatteryStatus() {
wait(20);
batteryVoltage = hwCPUVoltage();
wait(2);

if (batteryVoltage > battery_vcc_max) {
currentBatteryPercent = 100;
}
else if (batteryVoltage < battery_vcc_min) {
currentBatteryPercent = 0;
} else {
currentBatteryPercent = (100 * (batteryVoltage - battery_vcc_min)) / (battery_vcc_max - battery_vcc_min);
}

sendBatteryLevel(currentBatteryPercent, 1);
wait(2000, C_INTERNAL, I_BATTERY_LEVEL);
//send(powerMsg.set(batteryVoltage), 1);
//wait(2000, 1, V_VAR1);
}

void lpComp() {
NRF_LPCOMP->PSEL = IRT_PIN;
NRF_LPCOMP->ANADETECT = 1;
NRF_LPCOMP->INTENSET = B0100;
NRF_LPCOMP->ENABLE = 1;
NRF_LPCOMP->TASKS_START = 1;
NVIC_SetPriority(LPCOMP_IRQn, 15);
NVIC_ClearPendingIRQ(LPCOMP_IRQn);
NVIC_EnableIRQ(LPCOMP_IRQn);
}

void s_lpComp() {
if ((NRF_LPCOMP->ENABLE) && (NRF_LPCOMP->EVENTS_READY)) {
NRF_LPCOMP->INTENCLR = B0100;
}
}

void r_lpComp() {
NRF_LPCOMP->INTENSET = B0100;
}

#if __CORTEX_M == 0x04
#define NRF5_RESET_EVENT(event)
event = 0;
(void)event
#else
#define NRF5_RESET_EVENT(event) event = 0
#endif

extern "C" {
void LPCOMP_IRQHandler(void) {
detection = true;
NRF5_RESET_EVENT(NRF_LPCOMP->EVENTS_UP);
NRF_LPCOMP->EVENTS_UP = 0;
MY_HW_RTC->CC[0] = (MY_HW_RTC->COUNTER + 2);
}
}

void lpComp_reset () {
s_lpComp();
detection = false;
NRF_LPCOMP->EVENTS_UP = 0;
r_lpComp();
}

MyBoardNRF5.cpp
#ifdef MYBOARDNRF5
#include <variant.h>

/*
* Pins descriptions. Attributes are ignored by arduino-nrf5 variant.
* Definition taken from Arduino Primo Core with ordered ports
*/
const PinDescription g_APinDescription[]=
{
{ NOT_A_PORT, 0, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // LFCLK
{ NOT_A_PORT, 1, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // LFCLK
{ PORT0, 2, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A0, PWM4, NOT_ON_TIMER},
{ PORT0, 3, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A1, PWM5, NOT_ON_TIMER},
{ PORT0, 4, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A2, PWM6, NOT_ON_TIMER},
{ PORT0, 5, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A3, PWM7, NOT_ON_TIMER},
{ PORT0, 6, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT3
{ PORT0, 7, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT4
{ PORT0, 8, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM10, NOT_ON_TIMER}, //USER_LED
{ PORT0, 9, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // NFC1
{ PORT0, 10, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // NFC2
{ PORT0, 11, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TX
{ PORT0, 12, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // RX
{ PORT0, 13, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SDA
{ PORT0, 14, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SCL
{ PORT0, 15, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SDA1
{ PORT0, 16, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SCL1
{ PORT0, 17, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TP4
{ PORT0, 18, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TP5
{ PORT0, 19, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT2
{ PORT0, 20, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT1
{ PORT0, 21, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT1
{ PORT0, 22, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM9, NOT_ON_TIMER},
{ PORT0, 23, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM8, NOT_ON_TIMER},
{ PORT0, 24, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT
{ PORT0, 25, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM11, NOT_ON_TIMER}, //RED_LED
{ PORT0, 26, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM11, NOT_ON_TIMER}, //GREEN_LED
{ PORT0, 27, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM11, NOT_ON_TIMER}, //BLUE_LED
{ PORT0, 28, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A4, PWM3, NOT_ON_TIMER},
{ PORT0, 29, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A5, PWM2, NOT_ON_TIMER},
{ PORT0, 30, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A6, PWM1, NOT_ON_TIMER},
{ PORT0, 31, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A7, PWM0, NOT_ON_TIMER}
};

// Don't remove this line
#include <compat_pin_mapping.h>

#endif

MyBoardNRF5.h
#ifndef _MYBOARDNRF5_H_
#define _MYBOARDNRF5_H_

#ifdef __cplusplus
extern "C"
{
#endif // __cplusplus

// Number of pins defined in PinDescription array
#define PINS_COUNT (32u)
#define NUM_DIGITAL_PINS (32u)
#define NUM_ANALOG_INPUTS (8u)
#define NUM_ANALOG_OUTPUTS (8u)

/*
* LEDs
*
* This is optional
*
* With My Sensors, you can use
* hwPinMode() instead of pinMode()
* hwPinMode() allows to use advanced modes like OUTPUT_H0H1 to drive LEDs.
* https://github.com/mysensors/MySensors/blob/development/drivers/NRF5/nrf5_wiring_constants.h
*
*/
#define PIN_LED1 (16)
#define PIN_LED2 (15)
#define PIN_LED3 (17)
#define RED_LED (PIN_LED1)
#define GREEN_LED (PIN_LED2)
#define BLUE_LED (PIN_LED3)
#define INTERRUPT_PIN (5)
#define MODE_PIN (25)
#define SENS_PIN (27)

/*
* Analog ports
*
* If you change g_APinDescription, replace PIN_AIN0 with
* port numbers mapped by the g_APinDescription Array.
* You can add PIN_AIN0 to the g_APinDescription Array if
* you want provide analog ports MCU independed, you can add
* PIN_AIN0..PIN_AIN7 to your custom g_APinDescription Array
* defined in MyBoardNRF5.cpp
*/
static const uint8_t A0 = ADC_A0;
static const uint8_t A1 = ADC_A1;
static const uint8_t A2 = ADC_A2;
static const uint8_t A3 = ADC_A3;
static const uint8_t A4 = ADC_A4;
static const uint8_t A5 = ADC_A5;
static const uint8_t A6 = ADC_A6;
static const uint8_t A7 = ADC_A7;

/*
* Serial interfaces
*
* RX and TX are required.
* If you have no serial port, use unused pins
* CTS and RTS are optional.
*/
#define PIN_SERIAL_RX (11)
#define PIN_SERIAL_TX (12)

#ifdef __cplusplus
}
#endif

#endif

Maɓallin yana da maɓallin taɓawa da maɓallin dabara a bayan na'urar. Za a yi amfani da wannan maɓallin dabara don yanayin sabis, yanayin ɗaurin kan iska, da sake saitin na'ura. Maɓallin yana da fasalin hana billa baƙin ƙarfe. Ana haɗa layin firikwensin capacitive da layin maɓallin dabara ta hanyar Schottky diodes kuma an haɗa su zuwa p0.05 na analog, haka nan kuma daga firikwensin capacitive da maɓallin dabarar akwai layin zuwa MK fil p0.25 da p0.27. .0.05 don karanta jihohin bayan kunna katsewa akan fil p0.05. XNUMX. A kan fil pXNUMX, an kunna katse ta hanyar kwatanta (NRF_LPCOMP) ta EVENTS_UP. Na sami wahayi don magance matsalar a nan и a nan.

An ƙara canjin zuwa cibiyar sadarwar Mysensors, wanda mai kula da gida mai wayo Majordomo ke gudanarwa (zaka iya)

Lambar PHP don ƙara sauyawa zuwa hanyar ɗaukakawa

if (getGlobal("MysensorsButton01.status")==1) {
if (getGlobal('MysensorsRelay04.status') == 0) {
setGlobal('MysensorsRelay04.status', '1');
} else if (getGlobal('MysensorsRelay04.status') == 1) {
setGlobal('MysensorsRelay04.status', '0');
} 
}

Duba sakamakon a cikin bidiyon

Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Daga baya, an zaɓi zaɓi tare da mai haɓaka haɓakawa, amma wannan baya da alaƙa da aikin TTP223 capacitive microcircuit; akwai ƙarin sha'awar haske mai kyau da daidaituwa yayin danna maɓallan cikin rayuwar batir gaba ɗaya.

DubawaMaɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Project Github - github.com/smartboxchannel/EFEKTA_WIRELESS_TOUCH_SWITCH

harshen Rashanci shafin al'umma Mysensors

Mysensors hira ta Telegram - mafita mai sauri ga matsaloli tare da Mysensors, tukwici, dabaru, shigar allo, aiki tare da atmega 328, stm32, nRF5 microcontrollers a cikin Arduino IDE - @mysensors_rus

Wasu hotunaMaɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

Maɓallin taɓawa mara waya tare da ƙarin hasken baya mai kyalli

source: www.habr.com

Add a comment