Salaan dhamaan akhristayaasha qaybta "DIY ama samee naftaada" qaybta Habr! Maqaalka maanta wuxuu ku saabsan yahay taabashada taabashada ee TTP223 chip | . Dabooluhu wuxuu ku shaqeeyaa nRF52832 microcontroller | , 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.

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 | , ee Mysensors. Golaha bulshada ee luqadda Ingiriisiga - , golaha bulshada ee luqadda Ruushka -
(Kuwa doonaya inay wax bartaan - , , , , | kuwa raba inay caawiyaan () horumarinta mashruuca - )
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).

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.


Naqshadeynta jirka aaladda waxaa lagu sameeyay tifaftiraha naqshadeynta naqshadeynta saddex-geesoodka ah ee kumbuyuutarka. Cabirka kiiska 78,5mm X 78,5mm X 12mm.

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.

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.


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.

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
}
Mudnaan madhan ()
{
}
joogo()
{
//Halkan noodhka iyo dareemayaasha ayaa loo soo bandhigay kontaroolaha iyada oo loo marayo router
sendSketchInfo ("Magaca noodhka dareemayaasha", "1.0"); // soo bandhigida magaca noodhka, nooca software
jooga (CHILD_ID, S_WHATEVER, "Description"); // soo bandhigida dareemayaasha noodhka, sharaxaadda dareemayaasha
}
loox madhan ()
{
}
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;
# qeex MY_RADIO_NRF5_ESB
//# qeex MY_PASSIVE_NODE
#Qeex_ID_IDEYGA 30
#Qeex_Aqoonsiga_WAALIDKAYGA 0
#Qeex_WAALIDKAYGA_NODE_WAA_STATIC
#Qeex_Garaacayga_UPLINK_Check_Nan
# qeex IRT_PIN 3 // (PORT0, gpio 5)
#ku dar
// eeg https://www.mysensors.org/download/serial_api_20
# qeex SENS_CHILD_ID 0
#Qeex ILMO_ID_VOLT 254
MyMessage sensMsg (SENS_CHILD_ID, V_VAR1);
// MyMessage voltMsg (CHILD_ID_VOLT, V_VOLTAGE);
madhan preHwInit() {
hurdo (2000);
pinMode (RED_LED, OUTPUT);
digitalWrite (RED_LED, SARE);
pinMode (GREEN_LED, OUTPUT);
digitalWrite (GREEN_LED, HIGH);
pinMode (BLUE_LED, OUTPUT);
digitalWrite(BLUE_LED, HIGH);
pinMode (MODE_PIN, INPUT);
pinMode (SENS_PIN, INPUT);
}
maran ka hor ()
{
NRF_POWER->DCDCEN = 1;
NRF_UART0-> AQOONSIGA = 0;
hurdo (1000);
digitalWrite (BLUE_LED, LOW);
hurdo (150);
digitalWrite(BLUE_LED, HIGH);
}
joogo () {
sendSketchInfo ("EFEKTA Sens 1CH Sensor", "1.1");
jooga
// hadda (CHILD_ID_VOLT, S_MULTIMETER, "Batari");
}
Mudnaan madhan () {
digitalWrite (BLUE_LED, LOW);
hurdo (100);
digitalWrite(BLUE_LED, HIGH);
hurdo (200);
digitalWrite (BLUE_LED, LOW);
hurdo (100);
digitalWrite(BLUE_LED, HIGH);
lpComp ();
ogaanshaha = been;
SLEEP_TIME_W = SLEEP_TIME;
pinMode (31, OUTPUT);
digitalWrite (31, SARE);
/*
halka (wakhtiga <10) {
saacadeeyaha ++;
digitalWrite (GREEN_LED, LOW);
sug (5);
digitalWrite (GREEN_LED, HIGH);
sug (500);
}
saacada = 0;
*/
hurdo (7000);
halka (wakhtiga <3) {
saacadeeyaha ++;
digitalWrite (GREEN_LED, LOW);
hurdo (15);
digitalWrite (GREEN_LED, HIGH);
hurdo (85);
}
saacada = 0;
hurdo (1000);
}
loox madhan () {
haddii (la ogaado) {
haddii (digitalRead(MODE_PIN) == 1 && button_calan == 0 && digitalRead(SENS_PIN) == 0) {
ogaanshaha badhanka dhinaca dambe
button_calan = 1;
hurdo la'aan = 1;
}
haddii (digitalRead(MODE_PIN) == 1 && button_calan == 1 && digitalRead(SENS_PIN) == 0) {
digitalWrite (RED_LED, LOW);
sug (10);
digitalWrite (RED_LED, SARE);
sug (50);
}
haddii (digitalRead(MODE_PIN) == 0 && button_calan == 1 && digitalRead(SENS_PIN) == 0) {
hurdo la'aan = 0;
button_calan = 0;
digitalWrite (RED_LED, SARE);
lpComp_reset ();
}
haddii (digitalRead(SENS_PIN) == 1 && sens_flag == 0 && digitalRead(MODE_PIN) == 0) {
// dareemida ogaanshaha
dareenka_calanka = 1;
hurdo la'aan = 1;
newmilis = milli ();
interrupt_time = newmilis - oldmillis;
SLEEP_TIME_W = SLEEP_TIME_W - waqtiga joojinta;
haddii (diro (sensMsg.set (ogaanshaha))) {
calan dir = 1;
}
}
haddii (digitalRead(SENS_PIN) == 1 && sens_flag == 1 && digitalRead(MODE_PIN) == 0) {
haddii (dir_calanka == 1) {
halka (wakhtiga <10) {
saacadeeyaha ++;
digitalWrite (GREEN_LED, LOW);
sug (20);
digitalWrite (GREEN_LED, HIGH);
sug (30);
}
saacada = 0;
} kale {
halka (wakhtiga <10) {
saacadeeyaha ++;
digitalWrite (RED_LED, LOW);
sug (20);
digitalWrite (RED_LED, SARE);
sug (30);
}
saacada = 0;
}
}
haddii (digitalRead(SENS_PIN) == 0 && sens_flag == 1 && digitalRead(MODE_PIN) == 0) {
dareenka_calanka = 0;
hurdo la'aan = 0;
calan dir = 0;
digitalWrite (GREEN_LED, HIGH);
hurdo (500);
lpComp_reset ();
}
haddii (SLEEP_TIME_W <60000) {
SLEEP_TIME_W = SLEEP_TIME;
sendBatteryStatus();
}
}
kale {
//haddii (ogaanshaha == -1) {
SLEEP_TIME_W = SLEEP_TIME;
sendBatteryStatus();
}
hadday (noqoto == 0) {
oldmilis = milli ();
hurdo(SLEEP_TIME_W);
}
}
madhan sendBatteryStatus() {
sug (20);
BatteryVoltage = hwCPUVoltage ();
sug (2);
haddii (batteriVoltage>batteri_vcc_max) {
currentBatteryPercent = 100;
}
Haddii kale (battery Voltage <batteri_vcc_min) {
currentBatteryPercent = 0;
} kale {
currentBatteryPercent = (100 * (batteriVoltage - batari_vcc_min)) / (battery_vcc_max - batari_vcc_min);
}
dirBatteryLevel (currentBatteryPercent, 1);
sug (2000, C_INTERNAL, I_BATTERY_LEVEL);
// dir (powerMsg.set (batteriVoltage), 1);
// sug (2000, 1, V_VAR1);
}
madhan lpComp() {
NRF_LPCOMP->PSEL = IRT_PIN;
NRF_LPCOMP->ANADETECT = 1;
NRF_LPCOMP->INTENSET = B0100;
NRF_LPCOMP-> AQOONSIGA = 1;
NRF_LPCOMP->TASKS_START = 1;
NVIC_SetPriority (LPCOMP_IRQn, 15);
NVIC_ClearPendingIRQ(LPCOMP_IRQn);
NVIC_EnableIRQ(LPCOMP_IRQn);
}
madhan s_lpComp() {
haddi (((NRF_LPCOMP-> LA FURAN) && (NRF_LPCOMP-> DHACDOOYINKA_READY)) {
NRF_LPCOMP->INTENCR = B0100;
}
}
madhan r_lpComp() {
NRF_LPCOMP->INTENSET = B0100;
}
#haddii __CORTEX_M == 0x04
# qeex NRF5_RESET_EVENT(dhacdo)
dhacdo = 0;
dhacdo
#se kale
# qeex NRF5_RESET_EVENT(dhacdo) dhacdo = 0
#nadiif
dibadda "C" {
madhan LCOMP_IRQHandler(wax madhan) {
ogaanshaha = run;
NRF5_RESET_EVENT(NRF_LPCOMP->EVENTS_UP);
NRF_LPCOMP-> DHACDOOYINKA_UP = 0;
MY_HW_RTC-> CC[0] = (MY_HW_RTC-> COUNTER + 2);
}
}
madhan lpComp_reset() {
s_lpComp ();
ogaanshaha = been;
NRF_LPCOMP-> DHACDOOYINKA_UP = 0;
r_lpComp ();
}
MyBoardNRF5.cpp
#ifdef MYBOARDNRF5
#include <variant.h>
/*
*Tilmaanta biinanka Sifooyinka waa la iska indhatiray kala duwanaanshaha arduino-nrf5.
* Qeexitaan laga soo qaatay Arduino Primo Core oo leh dekedo la dalbaday
*/
const PinDescription g_APinDescription[]=
{
{ NOT_A_PORT, 0, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // LFCLK
{ NOT_A_PORT, 1, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_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, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT3
{ PORT0, 7, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT4
{ PORT0, 8, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), Maya_ADC_Channel, PWM10, NOT_ON_TIMER}, //USER_LED
{ PORT0, 9, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // NFC1
{ PORT0, 10, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // NFC2
{ PORT0, 11, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TX
{ PORT0, 12, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // RX
{ PORT0, 13, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SDA
{ PORT0, 14, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SCL
{ PORT0, 15, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SDA1
{ PORT0, 16, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SCL1
{ PORT0, 17, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TP4
{ PORT0, 18, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TP5
{ PORT0, 19, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT2
{ PORT0, 20, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT1
{ PORT0, 21, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT1
{ PORT0, 22, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), Maya_ADC_Channel, PWM9, NOT_ON_TIMER},
{ PORT0, 23, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), Maya_ADC_Channel, PWM8, NOT_ON_TIMER},
{ PORT0, 24, PIO_DIGITAL, PIN_ATTR_DIGITAL, Maya_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT
{ PORT0, 25, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), Maya_ADC_Channel, PWM11, NOT_ON_TIMER}, //RED_LED
{ PORT0, 26, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), Maya_ADC_Channel, PWM11, NOT_ON_TIMER}, //GREEN_LED
{ PORT0, 27, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), Maya_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}
};
// Ha saarin khadkan
#ku dar
#nadiif
MyBoardNRF5.h
#ifndef _MYBOARDNRF5_H_
#define _MYBOARDNRF5_H_
#ifdef__cplusplus
dibadda "C"
{
#endif // __cplusplus
// Tirada biinanka lagu qeexay array PinDescription
# qeex PINS_COUNT (32u)
# qeex NUM_DIGITAL_PINS (32u)
# qeex NUM_ANALOG_INPUTS (8u)
# qeex NUM_ANALOG_OUTPUTS (8u)
/*
* LEDs
*
* Tani waa ikhtiyaari
*
* Dareemayaashayda, waad isticmaali kartaa
* hwPinMode () beddelkii pinMode()
* hwPinMode() waxay ogolaataa in la isticmaalo hababka horumarsan sida OUTPUT_H0H1 si loo wado LEDs.
* https://github.com/mysensors/MySensors/blob/development/drivers/NRF5/nrf5_wiring_constants.h
*
*/
# qeex PIN_LED1 (16)
# qeex PIN_LED2 (15)
# qeex PIN_LED3 (17)
#qeex RED_LED (PIN_LED1)
# qeex GREEN_LED (PIN_LED2)
# qeex BLUE_LED (PIN_LED3)
# qeex INTERRUPT_PIN (5)
# qeex MODE_PIN (25)
# qeex SENS_PIN (27)
/*
* dekedaha Analog
*
* Haddii aad bedesho g_APinDescription, ku beddel PIN_AIN0
* nambarada dekeda oo lagu sawiray g_APinDescription Array.
* Waxaad ku dari kartaa PIN_AIN0 g_APinDescription Array haddii
* waxaad rabtaa inaad siiso dekedaha analogga ah ee MCU, waad ku dari kartaa
*PIN_AIN0
* lagu qeexay 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;
/*
* Interfaces taxane ah
*
* RX iyo TX ayaa loo baahan yahay.
* Haddii aadan lahayn deked taxane ah, isticmaal biinanka aan la isticmaalin
* CTS iyo RTS waa ikhtiyaari.
*/
# qeex PIN_SERIAL_RX (11)
# qeex PIN_SERIAL_TX (12)
#ifdef__cplusplus
}
#nadiif
#nadiif
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 и .
Beddelka waxaa lagu daray shabakadda Mysensors, oo uu maamulo maamulaha guriga smart Majordomo ()
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


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.
Eeg

Mashruuca Github -
Ruush ku hadla Mysensors
- Xalka degdega ah ee dhibaatooyinka Mysensors, tabaha, tabaha, rakibida looxyada, la shaqaynta atmega 328, stm32, nRF5 microcontrollers ee Arduino IDE -
Sawirada qaar




Source: www.habr.com
