Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Ekele diri ndị niile na-agụ ngalaba "DIY ma ọ bụ Mee Onwe Gị" na Habr! Edemede taa ga-abụ maka mgba ọkụ aka na mgbawa TTP223 | akwụkwọ data. Mgbanwe ahụ na-arụ ọrụ na nRF52832 microcontroller | akwụkwọ data, A na-eji modul YJ-17103 nwere eriri e biri ebi yana njikọ maka antenna MHF4 dị n'èzí. Mgbanwe mmetụ ahụ na-arụ ọrụ na batrị CR2430 ma ọ bụ CR2450. Oriri na ọnọdụ nnyefe abụghị ihe karịrị 8mA, na ọnọdụ ụra ọ bụghị ihe karịrị 6 µA.
Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Dịka ọrụ niile gara aga, nke a bụkwa ọrụ Arduino, edere mmemme ahụ na Arduino IDE. Mmejuputa sọftụwia nke ngwaọrụ ahụ dabere na protocol Mysensors | Ụlọ akwụkwọ GitHub, nRF5 na-akwado GitHub na Mysensors. Nzukọ obodo asụsụ bekee - http://forum.mysensors.org, Nzukọ obodo asụsụ Rọshịa - http://mysensors.ru/forum/
(Maka ndị chọrọ ịmụ akwụkwọ - Документация, Usoro Usoro, API, Protocol, ihe nzacha | maka ndị chọrọ inye aka (onyinye) na mmepe nke oru ngo - Документация)

Emepụtara bọọdụ mgba ọkụ mmetụ ahụ na mmemme Deeptrace, na-eburu n'uche nrụpụta ndị na-esote site na iji usoro Laser Ironing Technology (LUT). E mepụtara osisi ahụ na akụkụ nke 60x60mm (otu iko iko ọkọlọtọ nwere akụkụ nke 80x80mm). Ebipụtara sekit ahụ na ibe akwụkwọ akụkọ Antenna wee bufee ya na igwe Bosch nwere ntọala “Len” (ike kacha elu) na bọọdụ foil fiberglass nwere akụkụ abụọ 1.5mm, 35µm (na enweghị nke ọzọ).
Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

A na-eme etching na ngwọta nke ferric chloride, nke a kwadebere na mbụ na nha nke 1.5 teaspoons kwa 250 ml nke mmiri ọkụ. Usoro ahụ were nkeji iri na ise.
A na-eji DREMEL 3000 mini-drill na-agbanye oghere maka interlayer vias na maka ịkwado ihe njide batrị na-eji DREMEL 220. . Ejiri otu obere-akuku mmiri ahụ na mgbakwunye DREMEL 0,4 (Cutting circle d=1,1mm) mee n'akụkụ oke osisi ahụ. A na-eme kwachaa ya na ihe na-eku ume.
A na-eme tinning nke osisi etched site na iji Rose alloy na ngwọta mmiri (1 teaspoon nke citric acid crystallized kwa 300 ml mmiri).

Usoro ire ere were ihe dị ka otu awa, ọtụtụ oge a na-eji waya (tinned, 0.4 mm na dayameta) na oghere maka interlayer vias.

Eji FLUX OFF aerosol Cleaner saa bọọdụ ahụ.
Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

A na-eme atụmatụ nke ahụ ngwaọrụ ahụ n'ime nhazi nhazi nke na-enye aka na kọmputa nke akụkụ atọ. Akụkụ ikpe 78,5mm X 78,5mm X 12mm.
Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

A na-echekwa ihe nlereanya nke ikpe ahụ na mkpuchi batrị batrị na usoro STL, mgbe ahụ, ọ dị mkpa iji dozie ụdị ndị a maka ibipụta na ngwa SLA (na-agbakwụnye nkwado, nhazi). N'oge a, obere nsogbu bilitere, ebe ebe obibi nke ndị na-ebi akwụkwọ SLA dị obere. Ihe nlereanya nke ngwaọrụ ngwaọrụ na ọnọdụ kachasị mma n'ihe gbasara oge mbipụta adabaghị na akụkụ nke ebe obibi akwụkwọ. Mgbe ị na-etinye ihe nlereanya ahụ na ogo 45, ọ nyekwara nsonaazụ na-akụda mmụọ; ịdị arọ nke nkwado ahụ hà nhata nke ụdị ahụ. E kpebiri ibipụta ihe nlereanya ahụ n'ụzọ kwụ ọtọ, na-akwado nkwado n'otu n'ime akụkụ ndị dị n'ihu, na-ekwenye na mbụ na eziokwu nke post-processing. Mbipụta ahụ were awa 5 na ntọala oyi akwa nke 50 microns. Na-esote, a na-eme nhazi site na iji akwụkwọ aja dị ezigbo mma (agaghị m ede nọmba n'ihi na amaghị m :)). Ihe mkpuchi batrị were nkeji 40 ibipụta ya.
Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

A na-ere ihe mkpuchi iko sitere na Aliexpress na eriri rọba nke jikọtara ya; enweghị nsogbu na iwepu etiti ahụ. Ewepụrụ m iko iko ahụ mgbe ejiri igwe na-ehicha ntutu na-ekpo ọkụ mgbe niile.
Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Ihe na-agbasa maka ọkụ azụ LED bụ teepu nwere akụkụ abụọ nwere nrapado acrylic 3M 9088-200. Maka ọkụ fluorescent enwere ọtụtụ ihe ịhọrọ site na, teepu nrapado nke China na akwụkwọ nrapado bee n'ime teepu sitere na ụlọ ọrụ ụlọ Luminofor. Emere nhọrọ ahụ maka onye na-emepụta ụlọ; dị ka mmetụta m siri dị, ọ na-egbuke egbuke na ogologo oge. Akara mpempe akwụkwọ nwere pigmenti fluorescent n'elu ya na teepu 3M 9088-200 nwere akụkụ abụọ.

Eji teepu nwere akụkụ abụọ nwere 3M VHB 4910 acrylic adhesive jikọtara iko ahụ na ahụ mgba ọkụ.
Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

A na-edozi ihe mkpuchi ahụ na nkedo M 1,4 X 5 mm.

Ọnụ ego nke ngwaọrụ ahụ bụ 890 rubles.

Ọzọ, akụkụ mmemme bịara. Enwere nsogbu ụfọdụ. Ọ tụgharịrị na ibe ihe mmetụta TTP223 na-arụ ọrụ dị ukwuu na ike ọkụ 3.3V kwụsiri ike na ọ bụghị nke ọma mgbe ejiri batrị chajịrị nke ọma. Mgbe ị na-amalite ngwaọrụ ahụ na ọkụ ọkụ gburugburu 2.5v, gbakwunyere mgbe mgbakwunye "drawdown" ọzọ mgbe ị na-arụ ọrụ ngosi Mysensors, TTP223 microcircuit (ozugbo mgbe nhazichara) kpatara nkwụsị nke MK ebe ọ bụ na ọ bụ ihe na-arụ ọrụ.

Agbanwere sekit na-enye ike na microcircuit (njikwa ike TTP223 na gpio MK), agbakwunyere ala ọzọ, a na-edochikwa ndị resistors nwere nguzogide dị elu na ahịrị rgb led (nke na-agba n'akụkụ nke ọzọ nke bọọdụ ihe mmetụta capacitive). E tinyekwara ya na ngwanrọ: ịgbalite ike maka microcircuit capacitive mgbe ịmalitere usoro Mysensors na ịrụpụta ihe ngosi. Ịla oge maka nhazi akpaaka nke mgbawa TTP223 mgbe etinyere ike ejirila okpukpu abụọ. Mgbanwe ndị a niile wepụrụ nsogbu a kpamkpam.

Tupu ịlele koodu mmemme, ana m akwado ka ị mara onwe gị nke ọma na usoro ihe osise dị na 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()
{

}

Koodu ule mgbanwe mgbanwe mmetụ: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

Mgbanwe ahụ nwere bọtịnụ mmetụ na bọtịnụ tact n'azụ ngwaọrụ ahụ. A ga-eji bọtịnụ akọ a maka ụdị ọrụ, ọnọdụ njide ikuku, na nrụpụta ngwaọrụ. Bọtịnụ ahụ nwere njirimara mgbochi mgbaba ígwè. A na-ejikọta ahịrị nke ihe mmetụta capacitive na ahịrị nke bọtịnụ tact site na Schottky diodes wee jikọọ na pin p0.05 analog, yana site na ihe mmetụta capacitive na bọtịnụ tact enwere ahịrị na pin MK p0.25 na p0.27. .0.05 maka ịgụ akwụkwọ ka emechara nkwụsịtụ na pin p0.05. XNUMX. Na pin pXNUMX, nkwụsịtụ site na comparator (NRF_LPCOMP) site na EVENTS_UP na-arụ ọrụ. Enwetara m mmụọ nsọ iji dozie nsogbu ahụ ebe a и ebe a.

Agbakwunyere mgba ọkụ ahụ na netwọk Mysensors, nke onye njikwa ụlọ mara mma Majordomo (na-achịkwa).nwere ike)

Koodu PHP maka ịgbakwunye mgbanwe na usoro ọnọdụUpdate

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

Hụ nsonaazụ na vidiyo

Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Mgbe e mesịrị, a na-eme nhọrọ site na ihe ntụgharị nkwalite, mana nke a emetụtaghị ọrụ nke microcircuit capacitive TTP223; enwere mmasị maka ọkụ dị mma na otu mgbe ị na-agbanye igodo n'oge ndụ batrị niile.

LeleeMgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Github Project - github.com/smartboxchannel/EFEKTA_WIRELESS_TOUCH_SWITCH

na-asụ Russian saịtị obodo Mysensors

Mysensors nkata Telegram - ngwọta ngwa ngwa maka nsogbu na Mysensors, ndụmọdụ, aghụghọ, ịwụnye mbadamba, na-arụ ọrụ na atmega 328, stm32, nRF5 microcontrollers na Arduino IDE - @mysensors_rus

Foto ụfọdụMgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

Mgbanwe mmetụ ikuku ikuku nwere ọkụ azụ fluorescent ọzọ

isi: www.habr.com

Tinye a comment