Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Faʻafeiloaʻi i le aufaitau uma o le "DIY poʻo le Fai It Yourself" vaega ile Habr! O le tusiga o le aso o le a faʻatatau i le paʻi paʻi i luga o le TTP223 chip | fa'amatalaga. O lo'o fa'agaoioi le ki ile nRF52832 microcontroller | fa'amatalaga, o se YJ-17103 module faʻatasi ai ma se antenna lolomi ma se fesoʻotaʻiga mo se antenna fafo MHF4 sa faʻaaogaina. O le ki pa'i e fa'agaoioi ile CR2430 po'o le CR2450 ma'a. O le faʻaaogaina i le auala faʻasalalau e le sili atu i le 8 mA, i le moe e le sili atu i le 6 μA.
Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

E pei o galuega uma na muamua atu, o lenei foi o se Arduino poloketi, o le polokalame o loʻo tusia i le Arduino IDE. O le faʻaogaina o le masini komepiuta e faʻavae i luga o le Mysensors protocol | GitHub faletusi, lagolago le laupapa nRF5 GitHub i Mysensors. Fono fa'alaua'itele ile gagana Peretania - http://forum.mysensors.org, fono fa'alenu'u gagana Rusia - http://mysensors.ru/forum/
(Mo i latou e fia suʻesuʻe - Tusi, Maliega Faʻavae, API, Tulafono Faʻavae, Parser | mo i latou e fia fesoasoani (saofaga) i le atina'eina o le poloketi - Tusi)

O le paʻi paʻu laupapa laupapa na atiina ae i le Deeptrace polokalame, ma amanaʻia le gaosiga mulimuli ane e faʻaaoga ai le Laser Ironing Technology (LUT) metotia. O le laupapa na fausia i le tele o le 60x60mm (o se laulau tioata masani e iai le tele o le 80x80mm). O le matagaluega na lolomiina i luga o itulau o le Antenna magazine ma faʻafeiloaʻi i se uʻamea Bosch ma le "Len" faʻatulagaina (maualuga le mana) i luga o se laupapa fiberglass pepa faʻalua-itu 1.5mm, 35μm (i le leai o se isi).
Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

O le faʻaogaina na faia i se vaifofo o le ferric chloride, na saunia muamua i le fua o le 1.5 sipuniti i le 250 ml o le vai mafanafana. O le faagasologa e 15 minute.
O le viliina o pu mo vias interlayer ma mo le faʻamauina o le mea faʻapipiʻi maa na faia i se DREMEL 3000 mini-drill faʻapipiʻi i luga o le DREMEL 220 vili faʻamau. . O le tipiina i luga o tuaoi o le laupapa na faia i le laʻititi lava lea e tasi ma le DREMEL 0,4 faʻapipiʻi (Cutting circle d=1,1mm). O le teuteuga sa faia i totonu o se manava.
O le fa'aofuofu o le laupapa ua togitogia na faia i le fa'aogaina o le u'amea Rose i se vaifofo vai (1 sipuniti o le citric acid tioata i le 300 ml o le vai).

E tusa ma le itula le fa'agasologa o le fa'amauina, o le tele o le taimi na fa'aalu i le fa'amauina o le uaea (apa, 0.4 mm le lautele) i pu mo va'ava'a.

Sa fufulu le laupapa ile FLUX OFF aerosol cleaner.
Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

O le mamanu o le tino o le masini na faʻatinoina i se faʻatonuga faʻapipiʻi fesoasoani komepiuta e tolu-dimensional. Fua o pusa 78,5mm X 78,5mm X 12mm.
Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

O le faʻataʻitaʻiga maeʻa o le pusa ma le ufiufi vaega o le maa na faʻasaoina i le STL format, ona tatau ai lea ona saunia nei faʻataʻitaʻiga mo le lolomiina i luga o se lomitusi SLA (faʻaopoopo lagolago, faʻasologa). I lenei laʻasaga, na tulaʻi mai ai se faʻafitauli laʻititi, talu ai e laʻititi le vaega lolomi a fale lomitusi SLA. O le faʻataʻitaʻiga o le masini masini i le tulaga sili ona lelei e faʻatatau i le taimi lolomi e leʻi fetaui i le tele o le nofoaga lomitusi. Pe a tuʻuina le faʻataʻitaʻiga i le 45 tikeri, na maua ai foi se taunuuga le fiafia; o le mamafa o le lagolago e tutusa ma le mamafa o le tino. Na filifili e lolomi le faʻataʻitaʻiga i luga o le saʻo, faia se lagolago i luga o se tasi o itu pito i luma, ina ua uma ona malilie muamua ma le mea moni o le post-processing. O le lolomiina o le tino na alu ai le 5 itula ma se seti seti o le 50 microns. O le isi, o le gaioiga na faʻatinoina i le faʻaaogaina o le sandpaper sili ona lelei (Ou te le tusia le numera aua ou te le iloa :)). E 40 minute e lolomi ai le ufiufi o le maa.
Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

O tioata tioata mai Aliexpress o loʻo faʻatau atu ma se faʻavaa palasitika ua uma ona faʻapipiʻiina; e leai ni faʻafitauli i le aveeseina o le faʻavaa. Na ou aveese le laulau tioata pe a uma ona faʻamafanafanaina i se lauulu lauulu masani.
Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

O le fa'asalalau mo le fa'amalama o le LED na faia i le lipine fa'alua itu fa'atasi ma le fa'apipi'i 3M 9088-200. Mo moli fa'alelei e tele mea e filifili mai ai, fa'apipi'i fa'aSaina ma pepa fa'apipi'i tipi i lipine mai le kamupani fa'ale-lotoifale Luminofor. O le filifiliga na faia mo se fale gaosi oloa; e tusa ai ma oʻu lagona, na susulu atili ma umi atu. O se sikuea sikuea o loʻo iai le lanu felanulanuaʻi na faʻapipiʻiina i luga ma le 3M 9088-200 faʻapipiʻi lua itu.

O le tioata na fa'apipi'i i le tino sui e fa'aaoga ai le lipine fa'alua itu fa'atasi ma le fa'apipi'i 3M VHB 4910.
Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

O le ufiufi na faʻapipiʻiina i se faʻailoga M 1,4 X 5 mm.

O le tau o le masini e 890 rubles.

Na sosoo ai ma le vaega o le polokalame. Sa i ai ni faafitauli. E foliga mai o le TTP223 sensor chips e aoga tele i le faʻamautuina o le eletise 3.3V ma e le lelei tele pe a faʻamalosi saʻo mai se maa faʻamalo lelei. I le amataina o le masini ma se eletise i le 2.5v, faʻatasi ai ma se faʻaopoopoga "toso" pe a faʻatinoina le faʻaaliga Mysensors, o le TTP223 microcircuit (i le taimi lava na maeʻa ai le faʻavasegaina) na mafua ai le faʻalavelaveina o le MK talu ai sa i ai se faʻamalosi malosi.

Na suia le eletise eletise i le microcircuit (puleaina o le eletise TTP223 ma le gpio MK), na tuʻuina atu le eleele faʻaopoopo, ma faʻapipiʻi le tetee i luga o laina taʻitaʻia rgb (lea e tamoe i le isi itu o le capacitive sensor board). Na faʻaopoopoina foi i le polokalama: faʻagaoioia o le mana mo le microcircuit capacitive ina ua uma ona amata le Mysensors framework ma galue i le faʻaaliga. O le tuai mo le faʻavasegaina o le TTP223 chip pe a faʻaogaina le mana ua faaluaina. O nei suiga uma na faʻaumatia atoa ai lenei faʻafitauli.

Aʻo leʻi vaʻai i le polokalame code, ou te fautuaina oe e te faamasani i le fausaga autu o ata tusi i 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()
{

}

Pa'i ki sui polokalame su'ega code: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();
}

La'uBoardNRF5.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

La'uBoardNRF5.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

O le ki o lo'o i ai le pa'i pa'i ma le tact button i tua o le masini. O lenei ki tact o le a fa'aoga mo faiga tautua, faiga fa'apipi'i i luga o le ea, ma toe setiina masini. O le faamau o lo'o i ai se fa'ailoga u'amea e tete'e ai. O le laina o le capacitive sensor ma le laina o le tact button e fesoʻotaʻi atu i Schottky diodes ma faʻafesoʻotaʻi i le analog pine p0.05, faʻapea foʻi mai le capacitive sensor ma le tact button o loʻo i ai laina i le MK pine p0.25 ma le p0.27. .0.05 mo le faitau setete pe a uma ona faʻagaoioia le faʻalavelave i luga o pine p0.05. XNUMX. I luga ole pine pXNUMX, ua fa'agaoioia se fa'alavelave e ala ile comparator (NRF_LPCOMP) ile EVENTS_UP. Sa ou maua musumusuga e foia ai le faafitauli iinei и iinei.

Na faʻaopoopo le ki i le Mysensors network, faʻatautaia e le pule atamai fale Majordomo (upegatafa'ilagi o galuega)

PHP code mo le faʻaopoopoina o se ki i le statusUpdate method

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

Va'ai le i'uga i le vitiō

Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Mulimuli ane, na faia se filifiliga i se suiga faʻaleleia, ae e le fesoʻotaʻi ma le faʻaogaina o le TTP223 capacitive microcircuit; e sili atu le manaʻo mo le malamalama lelei ma le tutusa pe a oomiina ki i le olaga atoa o le maa.

VaʻaiKi'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Poloketi Github - github.com/smartboxchannel/EFEKTA_WIRELESS_TOUCH_SWITCH

tautala Rusia nofoaga nu'u Mysensors

Telegram talatalanoaga Mysensors - fofo vave i faʻafitauli ma Mysensors, fautuaga, togafiti, faʻapipiʻi laupapa, galue ma atmega 328, stm32, nRF5 microcontrollers i le Arduino IDE - @mysensors_rus

O nisi ataKi'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

Ki'i pa'i uaealesi fa'atasi ai ma moli fa'aola fa'aopoopo

puna: www.habr.com

Faaopoopo i ai se faamatalaga