Orodha ya maudhui:

Mdhibiti wa Relay ya Raspberry Pi: Hatua 6
Mdhibiti wa Relay ya Raspberry Pi: Hatua 6

Video: Mdhibiti wa Relay ya Raspberry Pi: Hatua 6

Video: Mdhibiti wa Relay ya Raspberry Pi: Hatua 6
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Novemba
Anonim
Mdhibiti wa Relay ya Raspberry Pi
Mdhibiti wa Relay ya Raspberry Pi
Mdhibiti wa Relay ya Raspberry Pi
Mdhibiti wa Relay ya Raspberry Pi
Mdhibiti wa Relay ya Raspberry Pi
Mdhibiti wa Relay ya Raspberry Pi

Niliunda hii Inayoweza kufundishwa kushiriki uzoefu wangu na kuunganisha vifaa vya IOT na Alexa ya Amazon.

Mradi huu unaruhusu bodi ya relay iliyounganishwa na pi ya raspberry kudhibitiwa kutoka kwa mtawala wa smarthome.

Imejaribiwa na Alexa lakini pia inaonekana inafanya kazi vizuri na Samsung Smartthings na njia zingine za kudhibiti wakati inaleta safu kadhaa za soketi za Belkin Wemo.

Kuna mifano mingi kulingana na nambari bora ya FAUXMO lakini hii ilimaanisha kujifunza chatu na haikunipa udhibiti wa kina niliohitaji kwa vifaa vyangu na kwa hivyo niliamua kuunda tena kutoka mwanzoni kwa kutumia C kama lugha yangu ya msingi ya kuweka alama.

Sikutaka pia kwenda kwa kina cha nambari ya lambda kwenye Amazon.com kwa hivyo nimeiweka rahisi sana.

Nimechapisha chanzo na maelezo kwenye Github:

github.com/Switchdoctorstu/StuPiMo

Mafunzo ni kweli kufunika jinsi ya kuifanya iweze kufanya kazi na kuchapisha maelezo yangu iwapo itasaidia wengine.

Hatua ya 1: Ugavi na Uunganisho

Ugavi na Uunganisho
Ugavi na Uunganisho
Ugavi na Uunganisho
Ugavi na Uunganisho
Ugavi na Uunganisho
Ugavi na Uunganisho

Vitu unavyohitaji vinapatikana kwa urahisi kwenye Amazon / EBay:

  • Raspberry PI *
  • Ugavi wa umeme wa Pi
  • Viunganisho vya Dupont
  • Bodi ya Kupeleka
  • Uongozi wa zamani wa USB ndogo (kukata nusu kwa nguvu kwa kadi ya kupokezana)

Pi yoyote ya rasipberry itafanya kazi, nimejaribu hii kwenye Model B na Zero.

* Ikiwa unatumia Pi Zero utahitaji adapta ya Mtandao ya OTG (isipokuwa ununue toleo la 'W' na buit katika WiFi)

Utahitaji kuunganisha Pi kwenye mtandao.

Tumia dontont connetors kuunganisha kadi ya kupeleka kwa Pi.

Kumbuka kuwa kadi ya relay inapaswa kutumia nguvu ya nje (ondoa kiunga na unganisha kwa 5v ya nje). Itafanya kazi kwa kutumia PI lakini haishauriwi kwa utengenezaji wa uzalishaji.

Kwa usanidi wangu nilitumia USB HUB inayotumiwa nje. Hii inatoa nguvu kwa PI.

Pia nilikata mwisho wa kebo ya zamani ya USB na nikapeana relay kutoka unganisho la 2 la USB kwenda kwenye kitovu ili kukaa salama. Toleo langu la 'uzalishaji' hutumia usambazaji mdogo wa hali ya kubadili 5V 5A. Tena nilikata tu risasi ya USB kwa nusu ili kuwezesha Pi kupitia Micro-USB na kukata viungio viwili vya dupont kuwezesha bodi ya kupeleka tena. Kuna waya 4 kwenye risasi ya USB, nyingi hutumia nyekundu / nyeusi kuashiria usambazaji wa 5v lakini ikiwa kwa shaka tumia mita kuhakikisha unapata waya sahihi.

Pini za kupeleka kwenye ubao zimeunganishwa na pini zinazofaa za GPIO kwenye kichwa cha PI.

Nambari hukuruhusu kuchagua pini za GPIO lakini chaguo-msingi nilichotumia ni:

  1. Peleka tena 1 - Ground
  2. Peleka tena 2 - Peleka 1 - GPIO 0
  3. Peleka tena 3 - Pitisha 2 - GPIO 1
  4. Peleka tena 4 - Peleka tena 3 - GPIO 2
  5. Peleka tena 5 - Peleka tena 4 - GPIO 3
  6. Peleka tena 6 - Peleka tena 5 - GPIO 4
  7. Peleka tena 7 - Peleka tena 6 - GPIO 5
  8. Peleka tena 8 - Peleka tena 7 - GPIO 6
  9. Peleka tena 9 - Peleka tena 8 - GPIO 7
  10. Peleka tena Pin 10 - + 5v kwa mantiki

Hatua ya 2: Usanidi wa PI

Sitaunda tena mafunzo juu ya jinsi ya kupata PI yako na kuendesha na kushikamana na mtandao.

Kuna miongozo mingi pamoja na inayofaa kufundishwa kwa:

www.instructables.com/id/Ultimate-Raspberr…

Utahitaji kujifikia mahali ambapo PI inaonekana kwenye mtandao na unaweza kuiunganisha.

Haijalishi ikiwa hii ni kupitia Ethernet au Wireless.

Mradi huu unaweza kukamilika na Raspberry PI tu kwa kutumia Mhariri wa Wahandisi wa Geany lakini mimi mwenyewe nirahisi kufanya utayarishaji wa nambari yangu kwenye PC kwa kutumia Studio ya Visual au Eclipse (au hata Notepad ++) na kisha kuipakia kwa PI kwa utatuaji kwa kutumia Uunganisho wa VNC. Tena sitashughulikia hiyo hapa kwani kuna mafundisho mengi bora juu ya kuanzisha VNC kwenye RPi.

Unachohitaji ni kufika mahali ambapo unaweza kupakia na kukusanya nambari hiyo.

Ujumbe mmoja ambao ni muhimu ni kwamba kwa kuwa mshughulikiaji wa UPNP anahitaji UDP multicast, viungio vilivyotumika lazima viwekwe kwa modi ya 'Uasherati'.

Hii inaweza kufanywa kwenye mstari wa amri:

pi @ raspberrypi: ~ $ ifconfig eth0 promisc

na / au

pi @ raspberrypi: ~ $ ifconfig wlan0 promisc

Hii inahitaji kufanywa ya kudumu kwa hivyo nilihariri /etc/rc.local

sudo nano / n / rc.local

kujumuisha laini:

Sudo ifconfig eth0 promisc

baada ya seti ya kwanza ya mabango # mistari ili kuhakikisha kuwa viungio viliwekwa wakati wa kuanza.

Hatua ya 3: Kupakua na Kukusanya Nambari

Nambari yenyewe inakaa katika eneo langu la Github;

github.com/Switchdoctorstu/StuPiMo/blob/ma…

wakati kuna njia "sahihi" za kuweka kumbukumbu. niliona ni rahisi tu kufungua mhariri wa Geany kwenye eneo-kazi la Pi na kubandika nambari hiyo ndani.

Vivyo hivyo, ikiwa unatumia laini ya amri;

Unda saraka mpya

mkdir Stu

Badilisha kwa hiyo

cd Stu

Tengeneza faili mpya ya maandishi

nano StuPiMo.c

Nakili nambari kutoka kwa mbichi ya Github na ibandike kwenye faili mpya

Hifadhi na uondoke.

Mara baada ya kuwa na faili kama kitu cha msimbo wa chanzo C unaweza kukusanya kwa kutumia

gcc -o StuPiMo StuPiMo.c -l wiringPi

kumbuka "-l wiringPi" inahitajika ili kuhakikisha kuwa viunganishi vya kiunganishi kwenye maktaba ya wiringPi inayohitajika.

Nambari inaweza kuendeshwa kwa kutumia

./StuPiMo

Tena, ikiwa unataka hii ianze, tumia amri:

Sudo nano /etc/rc.local

kuongeza laini ifuatayo

sudo / nyumbani / pi / Stu / StuPiMo &

kwa faili yako /etc/rc.local. Usisahau kuhifadhi faili yako wakati wa kutoka.

Kumbuka '&' ni muhimu kuhakikisha kuwa mchakato mdogo umewekwa ili kuhakikisha kuwa hati haijazuiliwa wakati huu.

Hatua ya 4: Kutumia

Mara tu msimbo unapoendeshwa, muulize alexa ili 'Kugundua Vifaa' na anapaswa kupata vifaa vyote 8 vya Wemo.

Halafu ni kesi tu ya kusema: "Alexa washa tundu 1" au "Alexa imezima tundu 6" nk na relay husika itabadilishwa.

Hatua ya 5: Jinsi Kanuni inavyofanya kazi

Nambari inafanya kazi kwa kuiga mfululizo wa vifaa vya tundu la Belkin Wemo.

Ili kushughulikia hii inapaswa kushughulikia kazi mbili kuu

  • mshughulikiaji wa matangazo ya ugunduzi wa UPNP
  • 'kifaa cha kushughulikia' (moja kwa kila kifaa halisi) kudhibiti maagizo yaliyotumwa kwa kifaa na majibu yanayotakiwa.

Kipengele cha 'ziada' ni kwamba pia inachapisha ukurasa wa wavuti kuruhusu utaftaji wa vifaa.

Mshughulikiaji wa UPNP

Mshughulikiaji wa UPNP anafungua tundu kufuatilia pakiti za itifaki za SSDP kwenye bandari ya 239.255.255.250 1900.

Inajibu maswali yoyote ya 'M-SEARCH' yanayokuja na pakiti ya majibu ya ugunduzi ambayo inawapa emulators wa kibinafsi wa wemo kwa mtu yeyote anayeuliza.

Mshughulikiaji wa Kifaa

Vishikiliaji vya kifaa (moja kwa kila kifaa halisi) hufuatilia safu ya bandari za IP na hujibu maombi.

Itatumika jibu la setup.xml ulipoulizwa

Itatumika faili ya maelezo ya tukio ukiulizwa

Itajibu ombi la GETBINARYSTATE

Itashughulikia na kujibu ombi la SETBINARYSTATE

Seva ya Wavuti

Seva ya wavuti ni kawaida rahisi ambayo huunda fomu ya HTML iliyo na kitufe kwa kila relay.

Itajibu vifungo vinavyobanwa na kugeuza hali ya relay ipasavyo.

Hatua ya 6: Ugeuzaji kukufaa na Majina ya Kirafiki

Ubinafsishaji na Majina ya Kirafiki
Ubinafsishaji na Majina ya Kirafiki

Sijaenda wazimu na nambari kuifanya iwe rahisi na inayoweza kuhaririwa.

Misingi inaweza kubadilishwa na ufafanuzi mwanzoni mwa nambari:

// ufafanuzi wa ulimwengu # fafanua WEBPORT 5353 // bandari ya kuendesha seva ya wavuti

#fafanua NUMDEVICES 8 // Idadi ya vifaa halisi vya kuunda

#fafanua PORTBASE 43450 // bandari ya IP ya msingi ili kuongezeka kutoka

WEBPORT ni nambari ya bandari ambayo seva ya wavuti iliyojengwa inaendesha. Hii inaweza kufanywa kukaa 80 ili kufanya mambo iwe rahisi lakini nimeona kuwa inapingana na tomcat au huduma zingine zinazoendesha ndani.

NUMDEVICES inafafanua idadi ya emulators ya WEMO ya kibinafsi kuzindua. Ikiwa una kadi ya kupitisha bandari 2 kisha weka hii kuwa 2, 4 bandari = 4 nk.

Majina ya kirafiki ya vifaa yamewekwa katika utaratibu unaoitwa setup_names:

majina ya usanidi_ni (char friendly [NUMDEVICES] [NAMELEN]) {int i = 0;

// tumia kitanzi hiki

kwa (i = 0; i <NUMDEVICES; i ++) {

sprintf (kirafiki , "Soketi% d", i + 1);

}

// au meza ifuatayo ya mwongozo ili kujaza majina ya vifaa

/*

strcpy (rafiki [0], "Chumba cha kulala");

strcpy (rafiki [1], "Blangeti ya Umeme");

strcpy (rafiki [2], "Taa ya Chumba cha kulala");

strcpy (rafiki [3], "Soketi 4");

strcpy (rafiki [4], "Soketi 5");

strcpy (rafiki [5], "Soketi 6");

strcpy (rafiki [6], "Tundu 7");

strcpy (rafiki [7], "Tundu 8");

*/

kurudi i;

}

Nilitumia kitanzi kuita kila moja ya vifaa 'Socket n' lakini unaweza kufuta kitanzi hiki na kuongeza majina yako ya urafiki badala yake (hakikisha tu unaongeza nambari sawa na NUMDEVICES) ikiwa utafuta / * * /

Kumbuka kukusanya tena nambari ikiwa utafanya mabadiliko yoyote.

Ilipendekeza: