Orodha ya maudhui:

Nano 33 IoT + EC / pH / ORP + WebAPK: 8 Hatua
Nano 33 IoT + EC / pH / ORP + WebAPK: 8 Hatua

Video: Nano 33 IoT + EC / pH / ORP + WebAPK: 8 Hatua

Video: Nano 33 IoT + EC / pH / ORP + WebAPK: 8 Hatua
Video: pH Meter на Ардуино Uno или Nano своими руками! Как сделать за 5 минут? 2024, Julai
Anonim
Nano 33 IoT + EC / pH / ORP + WebAPK
Nano 33 IoT + EC / pH / ORP + WebAPK

Fuata Zaidi na mwandishi:

Hifadhi na Grafu EC / pH / ORP Takwimu na Tick Stack na NoCAN Platform
Hifadhi na Grafu EC / pH / ORP Takwimu na Tick Stack na NoCAN Platform
Hifadhi na Grafu EC / pH / ORP Takwimu na Tick Stack na NoCAN Platform
Hifadhi na Grafu EC / pH / ORP Takwimu na Tick Stack na NoCAN Platform
Ufuatiliaji wa Dimbwi la IoT na ThingsBoard
Ufuatiliaji wa Dimbwi la IoT na ThingsBoard
Ufuatiliaji wa Dimbwi la IoT na ThingsBoard
Ufuatiliaji wa Dimbwi la IoT na ThingsBoard
IoT Hydroponics - Kutumia IBM's Watson kwa Vipimo vya PH na EC
IoT Hydroponics - Kutumia IBM's Watson kwa Vipimo vya PH na EC
IoT Hydroponics - Kutumia IBM's Watson kwa Vipimo vya PH na EC
IoT Hydroponics - Kutumia IBM's Watson kwa Vipimo vya PH na EC

Kuhusu: Ongeza uwezo wa kupima pH, ORP, EC au chumvi kwenye mradi wako wa Arduino au Raspberry Pi. Zaidi Kuhusu ufire »

Kifaa cha kupima EC, pH, ORP, na joto. Inaweza kutumiwa kufuatilia bwawa au usanidi wa hydroponic. Itawasiliana kupitia Nishati ya chini ya Bluetooth na kuonyesha habari kwenye ukurasa wa wavuti ukitumia Bluetooth ya Wavuti. Na kwa kujifurahisha, tutageuza hii kuwa Programu ya Wavuti inayoendelea ambayo unaweza kusakinisha kutoka kwa wavuti.

Hatua ya 1: Je! Masharti Yote Hayo Ni Nini?

EC / pH / ORP / joto ni baadhi ya vipimo vya kawaida vya ubora wa maji. Uendeshaji wa umeme (EC) hutumiwa katika hydroponics kupima suluhisho la virutubisho, pH kwa jinsi asidi / msingi wa maji, na ORP inatumiwa kusaidia kujua uwezo wa maji kujidharau yenyewe

  • Nishati ya chini ya Bluetooth ni itifaki isiyo na waya ya kutuma na kupokea habari kwa urahisi. Bodi ya Arduino inayotumiwa katika mradi huu ni Nano 33 IoT na inakuja na miingiliano ya WiFi na BLE.
  • Bluetooth ya Wavuti ni seti ya API zinazotekelezwa kwenye kivinjari cha Google cha Chrome (na Opera) ambazo huruhusu ukurasa wa wavuti kuwasiliana moja kwa moja na kifaa cha BLE.
  • Programu za Wavuti zinazoendelea kimsingi ni kurasa za wavuti ambazo hufanya kama programu za kawaida. Android na iPhone hushughulikia tofauti, na ni tofauti kwenye dawati, kwa hivyo utahitaji kusoma kidogo kwa maalum.

Hatua ya 2: Vifaa

Vifaa
Vifaa
Vifaa
Vifaa

Kabla ya kukusanya vifaa, kuna jambo moja la kushughulikia. Vifaa vya sensorer vya uFire ISE vinakuja na anwani sawa ya I2C na tunatumia mbili, kwa hivyo moja itabidi ibadilishwe. Kwa mradi huu, tutachukua bodi moja ya ISE na kuitumia kupima ORP. Kufuatia hatua hapa, badilisha anwani kuwa 0x3e.

Sasa kwa kuwa anwani imebadilishwa, kuweka vifaa pamoja ni rahisi. Vifaa vyote vya sensorer hutumia mfumo wa unganisho wa Qwiic kwa hivyo unganisha kila kitu pamoja kwa mnyororo. Utahitaji Qwiic moja kwa waya wa Kiume ili unganishe sensorer moja kwa Nano 33. Waya ni sawa na rangi ya rangi. Unganisha nyeusi kwa GND ya Nano, nyekundu iwe pini ya + 3.3V au + 5V, bluu kwa pini ya SDA ambayo ni A4, na manjano kwa pini ya SCL kwenye A5.

Kwa mradi huu, itatarajia habari ya joto kutoka kwa sensorer ya EC, kwa hivyo hakikisha kuambatisha sensorer ya joto kwa bodi ya EC. Bodi zote zina uwezo wa kupima joto ingawa. Usisahau kuambatisha uchunguzi wa EC, pH na ORP kwa sensorer zinazofaa. Zinashikamana kwa urahisi na viunganisho vya BNC.

Ikiwa una kizuizi, kuweka yote ndani itakuwa wazo nzuri, haswa ukizingatia maji yatahusika.

Hatua ya 3: Programu

Sehemu ya programu hii imegawanywa katika sehemu kuu mbili: firmware kwenye Nano 33, na ukurasa wa wavuti.

Mtiririko wa kimsingi ni huu:

  • Ukurasa wa wavuti unaunganishwa na Nano kupitia BLE
  • Ukurasa wa wavuti hutuma amri za maandishi kuuliza habari au kuchukua hatua
  • Nano husikiliza amri hizo, huzifanya, na kurudisha habari
  • Ukurasa wa wavuti hupokea majibu na inasasisha UI ipasavyo

Usanidi huu huruhusu ukurasa wa wavuti kufanya kazi zote zinazohitajika unazotarajia, kama kuchukua kipimo au kusawazisha sensorer.

Hatua ya 4: Huduma za BLE na Tabia

Moja ya mambo ya kwanza ya kujifunza ni misingi ya jinsi BLE inavyofanya kazi.

Kuna milinganisho mingi, kwa hivyo wacha kuchukua kitabu. Huduma itakuwa kitabu, na tabia itakuwa kurasa. Katika "kitabu hiki cha BLE", kurasa hizi zina mali isiyo ya kitabu kama vile kuweza kubadilisha kile ukurasa unasema na kupokea arifa inapotokea.

Kifaa cha BLE kinaweza kutoa huduma nyingi kama inavyotaka. Baadhi yamefafanuliwa na hufanya kama njia ya kusanikisha habari inayotumiwa kama Tx Power au kupoteza muunganisho, kwa vitu maalum kama Insulin au Pulse Oximetry. Unaweza pia kutengeneza moja na kufanya chochote unachotaka nayo. Wao hufafanuliwa katika programu na hutambuliwa na UUID. Unaweza kutengeneza UUID hapa.

Katika firmware ya kifaa hiki, kuna huduma moja, inayojulikana kama:

Huduma ya BLESFire_Service ("4805d2d0-af9f-42c1-b950-eae78304c408");

na sifa mbili:

Tabia ya BLEString tx_Characteristic ("50fa7d80-440a-44d2-967a-ec7731ec736a", BLENotify, 20);

Tabia ya BLEString rx_Characteristic ("50fa7d80-440b-44d2-967b-ec7731ec736b", BLEWrite, 20);

Tx_Characteristic itakuwa mahali vifaa vinapotuma habari, kama vipimo vya EC, kwa ukurasa wa wavuti kuonyesha. Rx_Characteristic ni pale itakapopokea amri kutoka kwa ukurasa wa wavuti kutekeleza.

Mradi huu unatumia maktaba ya ArduinoBLE. Ukiangalia, utaona kuna michache tofauti ilikuwa kutangaza tabia. Mradi huu unatumia BLEStringCharacteristic kwa sababu tutashughulika na aina ya String na ni rahisi tu, lakini unaweza pia kuchagua BLECharCharacteristic au BLEByteCharacteristic kutoka kwa watu wengine wachache.

Kwa kuongezea, kuna mali kadhaa unaweza kutoa tabia. tx_Character ina BLENotify kama chaguo. Hiyo inamaanisha kuwa ukurasa wetu wa wavuti utapokea arifa wakati thamani yake itabadilika. rx_Character ina BLEWrite ambayo itaruhusu ukurasa wetu wa wavuti kuibadilisha. Kuna wengine.

Halafu kuna nambari kidogo ya gundi ya kufunga vitu hivi vyote pamoja:

BLE.setLocalName ("uFire BLE");

BLE.setAdvertisedService (uFire_Service); uFire_Service.addSifa (tx_Characteristic); uFire_Service.addSifa (rx_Characteristic); Huduma ya BLE.add (uFire_Service); rx_Characteristic.setEventHandler (BLEWritten, rxCallback); Tangazo la BLE ();

Inaelezea zaidi au chini, lakini wacha tugusie vidokezo vichache.

rx_Characteristic.setEventHandler (BLEWritten, rxCallback);

Je! Ni pale unapotumia fursa ya kuarifiwa juu ya thamani inayobadilishwa. Mstari unaambia darasa kutekeleza kazi rxCallback wakati thamani inabadilishwa.

Tangazo la BLE ();

ndio huanza jambo lote kwenda. Kifaa cha BLE kitatuma pakiti ndogo ya habari mara kwa mara ikitangaza kuwa iko nje na inapatikana kuunganishwa nayo. Bila hiyo, haitaonekana.

Hatua ya 5: Amri za Nakala

Kama ilivyoelezwa hapo awali, kifaa hiki kitazungumza na ukurasa wa wavuti kupitia amri rahisi za maandishi. Jambo zima ni rahisi kutekeleza kwa sababu kazi ngumu tayari imefanywa. Sensorer za Fire huja na maktaba ya JSON na MsgPack ya kutuma na kupokea amri. Unaweza kusoma zaidi juu ya amri za EC na ISE kwenye kurasa zao za nyaraka.

Mradi huu utatumia JSON kwa sababu ni rahisi kufanya kazi na kusomeka, tofauti na fomati ya MsgPack ambayo ni ya kibinadamu.

Hapa kuna mfano wa jinsi inavyoungana pamoja:

  • Ukurasa wa wavuti huuliza kifaa kwa kipimo cha EC kwa kutuma ec (au haswa kuandika ec kwa tabia ya rx_Characteristic)
  • Kifaa hupokea amri na kuitekeleza. Halafu inarudisha majibu yaliyoumbizwa ya JSON ya {"ec": 1.24} kwa kuandika kwa tx_Characteristic tabia.
  • Ukurasa wa wavuti hupokea habari na kuionyesha

Hatua ya 6: Ukurasa wa wavuti

Ukurasa wa wavuti wa mradi huu utatumia Vue.js kwa mwisho wa mbele. Hakuna backend inahitajika. Kwa kuongezea, kuweka vitu rahisi kidogo, hakuna mfumo wa ujenzi unatumiwa. Imegawanywa katika folda za kawaida, js kwa javascript, css kwa CSS, mali kwa ikoni. Sehemu ya html yake sio kitu maalum. Inatumia bulma.io kwa mtindo na inaunda kiolesura cha mtumiaji. Utaona mengi katika sehemu hiyo. Inaongeza css na ikoni zote, lakini pia inaongeza laini moja haswa.

Hiyo inapakia faili yetu ya manifest.json ambayo ndio inafanya mambo yote ya PWA kutokea. Inatangaza habari ambayo inaambia simu yetu ukurasa huu wa wavuti unaweza kubadilishwa kuwa programu.

Javascript ni mahali ambapo vitu vingi vya kupendeza hufanyika. Imegawanywa kuwa faili, app.js ina misingi ya kupata ukurasa wa wavuti wa Vue unaenda pamoja na anuwai zote zinazohusiana na UI na vitu vingine vichache. ble.js ina vitu vya bluetooth.

Hatua ya 7: Javascript na Bluetooth ya Wavuti

Kwanza, hii inafanya kazi tu kwenye Chrome na Opera. Natamani vivinjari vingine vingeunga mkono hii, lakini kwa sababu yoyote, hawana. Angalia app.js na utaona hizo UUIDs zile zile tulizotumia kwenye firmware yetu. Moja ya Huduma ya uFire, na moja kila moja kwa sifa za tx na rx.

Sasa ukiangalia kwenye ble.js, utaona kazi za unganisha () na ukate ().

Kazi ya kuungana () ina mantiki ya kuweka UI katika usawazishaji, lakini inaweka zaidi vitu ili kutuma na kupokea habari juu ya sifa.

Kuna upotovu wakati wa kushughulika na Wavuti ya Wavuti. Uunganisho lazima uanzishwe na aina fulani ya mwingiliano wa mtumiaji wa mwili, kama kugonga kitufe. Kwa mfano, huwezi kuunganisha kwa mpango wakati ukurasa wa wavuti umepakiwa.

Nambari ya kuanzisha unganisho inaonekana kama hii:

hii.device = subiri navigator.bluetooth.requestDevice ({

vichungi: [{namePrefix: "uFire"}], hiariServices: [this.serviceUuid]});

Vichungi: na sehemu ya huduma ya hiari inahitajika ili kuzuia kuona kila kifaa cha BLE huko nje. Utafikiria tu kwamba sehemu ya kichujio itakuwa sawa, lakini unahitaji pia sehemu ya Huduma za hiari pia.

Nambari iliyo hapo juu itaonyesha mazungumzo ya unganisho. Ni sehemu ya kiolesura cha Chrome na haiwezi kubadilishwa. Mtumiaji atachagua kutoka kwenye orodha. Hata ikiwa kuna kifaa kimoja tu ambacho programu ingeunganisha, mtumiaji bado anahitaji kupitia mazungumzo haya ya uteuzi, kwa sababu ya wasiwasi wa usalama.

Nambari iliyobaki inaanzisha huduma na sifa. Kumbuka kuwa tunaanzisha utaratibu wa kupiga tena simu, sawa na upigaji simu wa arifa ya firmware:

huduma = subiri seva.getPrimaryService (this.serviceUuid);

tabia = subiri huduma.pata Tabia (hii.txUuid); subiri tabia. StartNotification (); tabia.addEventListener ("tabia iliyobadilishwa", this.value_update);

hii.value_update sasa itaitwa kila wakati kuna habari mpya juu ya tabia ya tx.

Moja ya mambo ya mwisho ambayo hufanya ni kuweka kipima muda cha kusasisha habari kila sekunde 5.

value_update () ni kazi ndefu tu ambayo inasubiri habari mpya ya JSON kuingia na kusasisha UI nayo.

ec.js, ph.js, na orp.js zina kazi nyingi ndogo ambazo hutuma maagizo ili kupata habari na kusawazisha vifaa.

Ili kujaribu hii, utahitaji kukumbuka kuwa kutumia Bluetooth ya Wavuti, inapaswa kutumiwa juu ya HTTPS. Moja ya chaguzi nyingi kwa seva ya ndani ya HTTPS ni kutumikia-https. Pamoja na firmware iliyopakiwa, kila kitu kimeunganishwa, na ukurasa wa wavuti unatumiwa, unapaswa kuona kila kitu kikifanya kazi.

Hatua ya 8: Sehemu ya PWA

Sehemu ya PWA
Sehemu ya PWA

Kuna hatua chache za kugeuza ukurasa wa wavuti kuwa programu halisi. Programu zinazoendelea za Wavuti zinaweza kufanya mengi zaidi kuliko mradi huu kuzitumia.

  • Ufungaji wa ukurasa wa wavuti
  • Mara tu ikiwa imewekwa, ufikiaji wa nje ya mtandao unawezekana
  • Ilianza na kuendeshwa kama programu ya kawaida na aikoni ya programu inayoonekana mara kwa mara

Ili kuanza, tutahitaji kutengeneza kikundi cha faili. Ya kwanza ni faili ya manifest.json. Kuna tovuti chache ambazo zitakufanyia hii, Jenereta ya Maonyesho ya Programu, kuwa mmoja wao.

Mambo kadhaa ya kuelewa:

  • Upeo wa maombi ni muhimu. Ninaweka ukurasa huu wa wavuti katika ufire.co/uFire-BLE/. Hiyo inamaanisha upeo wangu wa maombi ni / uFire-BLE /.
  • Anzisha URL ni muhimu pia. Ni njia ya kurasa yako ya wavuti na uwanja wa msingi tayari umedhaniwa. Kwa hivyo kwa sababu niliweka hii kwenye ufire.co/uFire-BLE/, URL ya kuanza ni / uFire-BLE / pia.
  • Njia ya Kuonyesha itaamua jinsi programu inavyoonekana, Standalone itaifanya ionekane kuwa programu ya kawaida bila vifungo au kiolesura cha Chrome.

Utaishia na faili ya json. Lazima iwekwe kwenye mzizi wa ukurasa wa wavuti, sawa na index.html.

Jambo linalofuata utahitaji Mfanyikazi wa Huduma. Tena, wanaweza kufanya mengi, lakini mradi huu utatumia tu akiba ili kuruhusu programu hii ipatikane nje ya mtandao. Utekelezaji wa mfanyakazi wa huduma ni boilerplate zaidi. Mradi huu ulitumia mfano wa Google na kubadilisha orodha ya faili ambazo zinaweza kuhifadhiwa. Huwezi kuhifadhi faili nje ya kikoa chako.

Elekea kwenye FavIcon Generator na utengeneze ikoni.

Jambo la mwisho ni kuongeza nambari kadhaa katika kazi ya Vue iliyowekwa ().

imewekwa: function () {if ('serviceWorker' in navigator) {navigator.serviceWorker.register ('service-worker.js'); }}

Hii itasajili mfanyakazi na kivinjari.

Unaweza kuangalia kuwa kila kitu kinafanya kazi, na ikiwa sivyo, labda tambua ni kwanini kwa kutumia Taa ya taa, itachambua wavuti na kukuambia kila aina ya vitu.

Ikiwa kila kitu kilifanya kazi, unapoenda kwenye ukurasa wa wavuti, Chrome itauliza ikiwa unataka kuiweka na bango la kidukizo. Unaweza kuiona ikifanya kazi kwenye ufire.co/uFire-BLE/ ikiwa uko kwenye Chrome ya rununu. Ikiwa uko kwenye eneo-kazi, unaweza kupata kipengee cha menyu kuisakinisha.