Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Salaan dhamaan akhristayaasha qaybta "DIY ama samee naftaada" qaybta Habr! Maqaalka maanta wuxuu ku saabsan yahay taabashada taabashada ee TTP223 chip | xaashida xogta. Dabooluhu wuxuu ku shaqeeyaa nRF52832 microcontroller | xaashida xogta, module YJ-17103 leh anteeno daabacan iyo xiriiriyaha anteenada MHF4 ee dibadda ah ayaa la isticmaalay. Taabashadu waxay ku shaqaysaa baytariyada CR2430 ama CR2450. Isticmaalka habka gudbinta kama badna 8 mA, qaabka hurdada kama badna 6 µA.
Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Sida dhammaan mashruucyadii hore, kani sidoo kale waa mashruuc Arduino, barnaamijku wuxuu ku qoran yahay Arduino IDE. Hirgelinta softiweerka aaladda waxay ku saleysan tahay borotokoolka Mysensors | GitHub maktabadaha, nRF5 guddiga taageer GitHub ee Mysensors. Golaha bulshada ee luqadda Ingiriisiga - http://forum.mysensors.org, golaha bulshada ee luqadda Ruushka - http://mysensors.ru/forum/
(Kuwa doonaya inay wax bartaan - Dukumentiyada, Borotokool Taxane ah, API, Protocol, falanqeeye | kuwa raba inay caawiyaan (waxtarka) horumarinta mashruuca - Dukumentiyada)

Boodhka beddelka taabashada waxaa lagu soo saaray barnaamijka Deeptrace, iyadoo la tixgalinayo wax soo saarka xiga iyadoo la adeegsanayo habka Laser Ironing Technology (LUT). Looxa waxaa lagu sameeyay cabbir dhan 60x60mm (guul dhalo ah oo caadi ah ayaa cabbirkeedu yahay 80x80mm). Wareegga waxaa lagu daabacay bogga joornaalka Antenna waxaana lagu wareejiyay birta Bosch oo leh goobta "Len" (awoodda ugu badan) dusha sare ee muraayadda muraayadda laba-geesoodka ah 1.5mm, 35µm (la'aanta mid kale).
Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Etching waxaa lagu fuliyay xal of ferric chloride, hore loo diyaariyey in qiyaasta 1.5 qaado shaah halkii 250 ml oo biyo diiran. Hawshu waxay qaadatay 15 daqiiqo.
Daloolada qodista ee fiisaha interlayerka iyo xidhidhiyaha batteriga waxaa lagu sameeyay DREMEL 3000 mini-drill oo lagu rakibay istaajin DREMEL 220 ah. . Goynta xudduudaha looxa waxaa lagu sameeyay isla qalab-yar oo la mid ah DREMEL 0,4 (Gooynta goobada d=1,1mm). Manjooyinku waxa lagu sameeyay qalabka neefsiga.
Tinning ee looxa xardhan waxaa lagu sameeyey iyadoo la isticmaalayo Rose Alloy in xal aqueous (1 qaado oo ah citric acid crystallized per 300 ml oo biyo ah).

Habka alxanku waxa uu qaatay ilaa hal saac, wakhtiga intiisa badan waxa lagu lumiyay alxanka silig (masaacadaysan, dhexroor 0.4 mm ah) godadka dhexroorka.

Looxa waxa lagu maydhay FLUX OFF aerosol nadiifiye.
Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Naqshadeynta jirka aaladda waxaa lagu sameeyay tifaftiraha naqshadeynta naqshadeynta saddex-geesoodka ah ee kumbuyuutarka. Cabirka kiiska 78,5mm X 78,5mm X 12mm.
Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Qaabka la dhammaystiray ee kiiska iyo daboolka qaybta batteriga ayaa lagu keydiyay qaabka STL, ka dib waxaa lagama maarmaan noqotay in la diyaariyo moodooyinkan daabacaadda SLA (ku dar taageerooyinka, jihaynta). Marxaladdan, dhibaato yar ayaa kacday, maadaama aagga daabacaadda ee daabacayaasha SLA ay yar yihiin. Qaabka kiiska qalabka ee booska ugu fiican marka loo eego wakhtiga daabacaadda kuma haboona cabbirrada goobta daabacaadda. Marka la dhigo qaabka 45 digrii, waxay sidoo kale bixisay natiijo niyad jab leh; miisaanka taageerada wuxuu la mid yahay miisaanka qaabka jirka. Waxaa la go'aansaday in la daabaco qaabka si toos ah, iyada oo taageero ka samaynaysa mid ka mid ah dhinacyada hore, iyada oo horey loogu heshiiyey xaqiiqda ka dib-socodka. Daabacaadda jidhku waxay qaadatay 5 saacadood iyada oo lakabka lakabka ah ee 50 microns. Marka xigta, habaynta ayaa lagu fuliyay iyadoo la adeegsanayo warqad ciid ah oo aad u fiican (ma qori doono lambarka sababtoo ah ma aqaano :)). Daboolka batteriga wuxuu qaatay 40 daqiiqo in la daabaco.
Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Dhalooyinka ka soo baxa Aliexpress waxaa lagu iibiyaa jir balaastiig ah oo horeyba loogu dhejiyay; wax dhibaato ah kama qabin ka saarista jir. Waxaan ka saaray muraayadda muraayadda ka dib markii aan ku sii kululeeyay timo-qallajiye caadi ah.
Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Diffuser-ka iftiinka dambe ee LED wuxuu ka samaysan yahay cajalad laba-geesood leh oo leh koollo akril ah 3M 9088-200. Iftiinka fluorescent waxaa jiray dhowr walxood oo laga soo xusho, sharooto xabag ah oo Shiinees ah iyo warqad xabag ah oo laga gooyay cajalado laga sameeyay shirkadda gudaha ee Luminofor. Doorashada waxaa lagu door biday soo saaraha gudaha; marka loo eego dareenkayga, waxay u iftiimaysay iftiin iyo dheer. Warqad labajibbaaran oo leh midab-fluorescent ayaa lagu dhejiyay dusha oo leh 3M 9088-200 cajalad laba-geesood leh.

Muraayada waxaa lagu dhejiyay jirka beddelka iyadoo la adeegsanayo cajalad laba-geesood leh oo leh 3M VHB 4910 acrylic adhesive.
Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Daboolka waxaa lagu hagaajiyay fur M 1,4 X 5 mm.

Qiimaha qalabku wuxuu ahaa 890 rubles.

Waxaa xigtay qeybtii barnaamijka. Dhibaatooyin baa jiray. Waxaa soo baxday in chips-ka dareemayaasha TTP223 ay si weyn ugu shaqeeyaan sahay koronto oo 3.3V ah oo deggan oo aan aad u fiicneyn marka si toos ah looga sii daayo batari si fiican loo dajiyay. Marka la bilaabayo qalabka korontadu ku wareegsan tahay 2.5v, oo lagu daray ka dib "hoos u dhac" dheeraad ah marka la shaqeynayo soo jeedinta Mysensors, TTP223 microcircuit (oo isla markiiba ka dib markii la saxo) waxay sababtay hakad MK ah maadaama ay la socotay kicin firfircoon.

Wareegga korantada ee microcircuit waa la beddelay (maamulka awoodda TTP223 oo leh gpio MK), dhul dheeri ah ayaa la bixiyay, iyo iska caabiyeyaasha leh caabbinta sare ayaa lagu beddelay khadadka rgb ee hogaaminaya (kaas oo ku socda dhinaca kale ee guddiga dareemayaasha awoodda). Waxaa sidoo kale lagu daray software-ka: kicinta awoodda microcircuit capacitive ka dib markii la bilaabay qaabka Mysensors iyo ka shaqeynta bandhigga. Dib u dhigista ista-calibration ee chip TTP223 marka awoodda la isticmaalo waa la labanlaabay. Dhammaan isbeddelladan ayaa gebi ahaanba meesha ka saaray dhibaatadan.

Kahor intaadan fiirin koodhka barnaamijka, waxaan kugula talinayaa inaad barato naftaada qaab dhismeedka aasaasiga ah ee sawir-gacmeedyada 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()
{

}

Koodhka tijaabada barnaamijka beddelka taabashada: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

Dabooluhu waxa uu leeyahay badhanka taabasho iyo badhanka tabta ee gadaasha qalabka. Badhankan tabta ah waxa loo isticmaali doonaa hababka adeega, habka ku xidhidhiyaha hawada sare, iyo dib u dajinta qalabka. Badhanku waxa uu leeyahay sifo ka hortagta birta. Xariiqda dareemaha awoodda iyo xariiqda badhanka saacaddu waxay ku xidhan yihiin Schottky diodes waxayna ku xidhan yihiin pin-ka analogga ah p0.05, iyo sidoo kale dareemaha capacitive iyo badhanka saacadda waxaa jira xariiqyo biinanka MK p0.25 iyo p0.27 .0.05 akhrinta waxay sheegaysaa ka dib marka la dhaqaajiyo joojinta pin p0.05. XNUMX. On pin pXNUMX, gooyn dhex barbaraha (NRF_LPCOMP) via EVENTS_UP waa la hawlgeliyay. Waxaan helay dhiirigelin si aan u xalliyo dhibaatada halkan и halkan.

Beddelka waxaa lagu daray shabakadda Mysensors, oo uu maamulo maamulaha guriga smart Majordomo (website-ka mashruuca)

Koodhka PHP ee ku darista beddelka habka Cusboonaysiinta

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

Natiijadda ka arag muuqaalka

Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Later, ikhtiyaar ayaa lagu sameeyay beddelka kor u kaca, laakiin tani kuma xirna hawlgalka TTP223 microcircuit capacitive; waxaa jira rabitaan dheeri ah oo iftiin wanaagsan iyo isku mid ah marka la cadaadiyo furayaasha nolosha batteriga oo dhan.

EegTaabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Mashruuca Github - github.com/smartboxchannel/EFEKTA_WIRELESS_TOUCH_SWITCH

Ruush ku hadla goobta bulshada Mysensors

Telegram chat Mysensors - Xalka degdega ah ee dhibaatooyinka Mysensors, tabaha, tabaha, rakibida looxyada, la shaqaynta atmega 328, stm32, nRF5 microcontrollers ee Arduino IDE - @mysensors_rus

Sawirada qaarTaabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Taabasho bilaa fiilo ah oo leh nalka dambe ee fluorescent oo dheeraad ah

Source: www.habr.com

Add a comment