Orodha ya maudhui:

Kitufe cha Mlango wa Kutumia Mongoose OS na XinaBox: Hatua 10
Kitufe cha Mlango wa Kutumia Mongoose OS na XinaBox: Hatua 10

Video: Kitufe cha Mlango wa Kutumia Mongoose OS na XinaBox: Hatua 10

Video: Kitufe cha Mlango wa Kutumia Mongoose OS na XinaBox: Hatua 10
Video: 28 панфиловцев. Самая полная версия. Panfilov's 28 Men (English subtitles) 2024, Novemba
Anonim
Kitufe cha Mlango wa Kutumia Mongoose OS na XinaBox
Kitufe cha Mlango wa Kutumia Mongoose OS na XinaBox

Kutumia Mongoose na xChips kadhaa, tulifanya kitufe cha mlango halisi. Badala ya kitufe cha mwili kwa wafanyikazi wa buzz, sasa wanaweza kuifanya wenyewe.

Hatua ya 1: Vitu vinavyotumiwa katika Mradi huu

Vipengele vya vifaa

  • XinaBox CW02 x 1 Unaweza kutumia CW01 badala yake
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Unaweza kutumia tu IP01 kwa nguvu, ikiwa hautaki kupanga moduli zaidi.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 "Gundi" ambayo inafanya yote kufanya kazi!

Programu za programu na huduma za mkondoni

Mongoose OS Chombo cha kukuza IoT cha kushangaza na rahisi… na bure

Hatua ya 2: Hadithi

Katika mapokezi yetu wafanyikazi wetu walihitaji kupigwa kelele, kwa hivyo tuliamua kuchukua dawa yetu wenyewe na tengeneza kitufe. Nambari hii hukuruhusu kutuma RPC (Njia ya Kijijini ya Utaratibu), ambayo inaonekana kama simu ya kawaida ya HTTP kutoka kwa kivinjari chochote. Tulitumia Mongoose, kwa kuwa ni rahisi sana na haraka kufanya kazi nayo na imejengwa katika sasisho la nambari la OTA (Zaidi ya Hewa), inamaanisha tunaweza kusanikisha teknolojia yetu na bado tuboreshe firmware, bila kuisambaza kwa reprogramming.

Hatua ya 3: Maandalizi

  • Sakinisha Mongoose-OS: Moja kwa moja mbele, fuata tu hatua hizi rahisi kwa OS yako hapa:
  • Bonyeza IP01 na CW02 pamoja kwa kutumia kiunganishi cha XC10. Tazama picha hapa chini:
Picha
Picha
  • Ingiza IP01 kwenye bandari yako ya USB
  • Hakikisha swichi za IP01 ziko katika nafasi B na DCE.
  • Piga Mongoose-OS hadi CW02 kutoka kwa laini yako ya amri. Kama hii:

cd

kuuza nje MOS_PORT = bin / mos flash esp32

Unaweza pia kuingiza koni na kufanya mengi kutoka hapo, lakini hapa tunaifanya kutoka kwa laini ya amri, kwa hivyo kazi imefanywa haraka. Kuingiza koni:

cd

bin / mos

Hatua ya 4: Usanidi

Wakati hatua hizi zingeweza kufanywa kwa taarifa moja ndefu, tuliamua kuzigawanya, na kwa kuwa unazinakili na kuzibandika, basi iwe rahisi:

Weka pini za I2C kwa kiwango cha xChips:

seti ya bin / mos i2c.scl_gpio = 14 i2c.sda_gpio = 2

Unganisha CW02 yako na WiFi yako:

bin / mos wifi

Tenganisha WiFi katika hali ya AP na usanidi jina la kikoa, ili uweze kuungana na CW01 kwa jina la mwenyeji badala ya kupata anwani sahihi ya IP. Hii itafanya kazi tu ikiwa:

  • Unakata WiFi katika hali ya AP kama tunavyofanya hapa chini.
  • Ama utumie Mac au usakinishe Bonjour kwenye mashine yako ya Windows.

bin / mos piga simu Config. Set '{"config": {"wifi": {"ap": {"wezesha": uongo}}}}'

bin / mos piga Config. Set '{"config": {"dns_sd": {"wezesha": kweli}}}' bin / mos piga Config. Set '{"config": {"dns_sd": {"host- jina ":" xinabox_switch "}}}

Na mwishowe unapaswa kuwasha tena CW02 ili usanidi ufanye kazi

bin / mos piga simu Config. Save '{"reboot": true}'

Haraka sana baada ya hii unapaswa kuwa na uwezo wa kupiga pini xinabox_switch.local

Hatua ya 5: Kufunga

Chomoa IP01 kutoka kwa kompyuta yako na kukusanya mzunguko kulingana na picha ya juu.

Chomeka PU01 (au ikiwa umeamua kushikamana na IP01) kwenye chanzo cha umeme cha USB. Unganisha waya sambamba na swichi yako iliyopo (acha hiyo, ikiwa tu) kwa OC03 (polarity haijalishi). Tazama kuchora Fritzing.

Mara baada ya kuwezeshwa na kuona kuwa unazungumza na xCW02 yako, vipi kuhusu skanning BUS, aka basi ya I2C:

bin / mos - bandari ws: //xinabox_switch.local/rpc piga simu I2C. Scan

Ikiwa yote inafanya kazi na xOC03 yako imewekwa kwa usahihi, unapaswa kuona nambari '56' imerudishwa. Hiyo ni anwani ya I2C ya OC03 katika desimali (katika hex ni 0x38).

Hatua ya 6: Programu

  • Sasa fungua Mongoose katika hali ya kiweko, angalia hapo juu. Inapaswa kufungua na Dirisha ambapo inauliza nambari ya bandari, ingiza: ws: //xinabox_switch.local/rpc
  • Itawasiliana na CW02, na kugundua kuwa kitengo tayari kimeangaza na kushikamana na WiFi, kwa hivyo itatoa tu alama 3 za kuangalia. Funga dirisha na uburudishe orodha ya faili
  • Nakili na ubandike nambari hapa chini kwenye init.js, na bonyeza bonyeza + reboot
  • Mzunguko wako sasa umepangwa.

Hatua ya 7: Jaribu

Sasa umetekeleza simu nyingine ya RPC kwa hivyo kutoka kwa terminal yako unaweza kuingia:

bin / mos - bandari ws: //xinabox_switch.local/rpc piga simu Badilisha

… Na buzzer yako inapaswa kwenda kwa sekunde 2. Unaweza pia kuifanya kutoka - karibu - kivinjari chochote:

xinabox_switch.local/rpc/Switch

… Na athari sawa.

Hatua ya 8: Hatua inayofuata

Unaweza kutumia zana yoyote inayoweza kuzima URL. Ninaifanya kutoka kwa Apple App inayoitwa Workflow, ambayo inaniruhusu kuifanya kutoka kwa simu yangu au kama shida kutoka kwa Apple Watch yangu, lakini kuna chaguzi zingine nyingi huko nje. Huu ndio hati yangu ya Utaftaji wa Kazi, lakini na anwani ya IP iliyo na maandishi ngumu: Furahiya!

Picha
Picha

Programu ya Apple: Utiririshaji wa kazi - hapa na anwani ya IP iliyo na maandishi

Hatua ya 9: Skematiki

Mzunguko wa Buzzer Sakinisha OC03 sambamba na kitufe kilichopo cha kushinikiza.

Pakua hapa.

Mzunguko wa OC03 Sakinisha OC03 sambamba na kitufe kilichopo cha kushinikiza.

Pakua hapa.

Picha
Picha

Hatua ya 10: Kanuni

init.js JavaScript Nambari yako kuu na ya pekee ya mradi huu.

mzigo ('api_config.js');

mzigo ('api_gpio.js'); mzigo ('api_i2c.js'); mzigo ('api_net.js'); mzigo ('api_sys.js'); mzigo ('api_timer.js'); mzigo ("api_rpc.js"); let led = Cfg.get ('pini zilizopigwa'); hebu adr = 0x38; basi basi = I2C.get (); AndikaRegB (basi, adr, 3, 0); AndikaRegB (basi, adr, 1, 0); / * zima tu ili kuwa na hakika * / wacha kuchelewesha = 2000; GPIO.set_mode (iliyoongozwa, GPIO. MODE_OUTPUT); RPC.addHandler ('switch', function (args) {GPIO.toggle (led); I2C.writeRegB (basi, adr, 3, 0); / * endapo OC03 itaunganishwa tena / I2C., 1, 1); Timer.set (kuchelewesha, uwongo, kazi () {GPIO.toggle (led); I2C.writeRegB (basi, adr, 1, 0);}, null); rudi kweli;});

Ilipendekeza: