Orodha ya maudhui:

Mashine ya Kahawa Iliyowezeshwa ya IoT: Hatua 9 (na Picha)
Mashine ya Kahawa Iliyowezeshwa ya IoT: Hatua 9 (na Picha)

Video: Mashine ya Kahawa Iliyowezeshwa ya IoT: Hatua 9 (na Picha)

Video: Mashine ya Kahawa Iliyowezeshwa ya IoT: Hatua 9 (na Picha)
Video: MAIDS WAINGIA BILA VIATU UKUMBINI !! NA WANAVYOJUA KURINGA SASA! |GadsonAndSalome |MCKATOKISHA 2024, Julai
Anonim
Image
Image
Vifaa vinahitajika
Vifaa vinahitajika

Hii inaweza kufundishwa kwenye mashindano ya IoT - Ikiwa unaipenda, tafadhali ipigie kura

Kimesasishwa: Sasa inasaidia njia 2 za comms na sasisho za OTA

Kwa muda sasa nimekuwa na mashine ya kahawa ya Jura na nimekuwa nikitaka kuibadilisha kwa njia fulani.

Nimekuwa nikiendesha mfumo wa msingi wa otomatiki wa nyumbani kwa miaka kadhaa lakini mashine ya kahawa haikuwa kitu ambacho kilikuwa rahisi mod (au ndivyo nilifikiri). Mashine za kahawa za Jura kwa ujumla zina 'bandari ya uchunguzi' na / au bandari inayotumiwa kuongeza mfumo wa malipo kwenye mashine, hata hivyo sikuweza kupata habari yoyote juu ya jinsi inavyoweza kutumiwa. Hivi karibuni, itifaki hiyo ilibadilishwa-nyuma na watu wengine na kuwekwa hadharani. Shida ilikuwa, marejeleo mengi ya kazi zilizopatikana zilikuwa za mashine kubwa zaidi kuliko yangu (Ena 7).

Juu ya hayo, mashine yangu haina nguvu ya kudumu ya kusubiri kama mashine kubwa, badala yake ina swichi ya HV ambayo inafanya usambazaji wa umeme 'latch'. Kitufe cha mwili kwenye mashine kweli huamsha swichi 2 - Volt moja ya chini (upande wa mantiki, zima) na Volt moja ya Juu (Power on). Swichi zote ni za kitambo.

Nilihitaji pia kuhakikisha kuwa mashine bado inaendesha 100% huru ya utaratibu wowote wa kudhibiti, kwa mfano mashine bado inafanya kazi kama kawaida kana kwamba haikuwezeshwa IoT.

Kubadilisha mashine inahitaji vitu viwili: 1) Kuweza kudhibiti nguvu kwa mashine 2) Kuweza kuwasiliana na mashine kuamsha kazi za kutengeneza kahawa, suuza nk.

Hatua ya 1: Jinsi Tutaifanya

Tutatumia moduli ya ESP8266 'ESP-01' kuungana na wifi ya nyumbani na kujisajili kwa seva ya MQTT / kusikiliza mada kwa amri. 'Mbele ya Mwisho' niliyotumia ni OpenHAB2 lakini hakuna sababu hauwezi kuongeza kwenye kiolesura cha wavuti kwenye kifaa na kudhibiti moja kwa moja ikiwa unataka au kupitia HTTP Pata amri.

ESP8266 itashughulikia kudhibiti relay 2 zinazohusiana na kitufe cha nguvu na pia kusindika amri za serial kwenda / kutoka kwa mashine ya kahawa.

ONYO - Hii inaelezea utaratibu ambao nilitumia kurekebisha mashine yangu ya kahawa ya Jura Ena7 kudhibitiwa kupitia kiotomatiki cha nyumbani. Inashughulikia kurekebisha kifaa kikuu cha umeme ambacho kinaweza kuwa hatari ikiwa kitatekelezwa vibaya. Habari hapa inaweza kuwa haijakamilika, isiyo sahihi na isiyo salama. Endelea kwa tahadhari. Hakuna dhima iliyokubaliwa.

Hatua ya 2: Vifaa vinahitajika

Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika

Sehemu

  • Moduli ya ESP-01 na njia ya kuipangilia (Arduino IDE na adapta ya mwili ya programu)
  • Njia 2 ya kupitisha moduli EBAY
  • 5v -> 3.3v Mdhibiti EBAY
  • Chaja ndogo ya simu ya 5v
  • Kiwango cha mantiki kibadilishaji * Freetronics
  • Waya tofauti, vichwa vya pini, kupungua kwa joto nk kwa kuunganisha yote.

Zana

  • Chuma laini cha kutengeneza chuma
  • Solder
  • Waya Strippers ni rahisi
  • Dereva wa Torx T15
  • Zana ya usalama wa mviringo (au tengeneza moja, inachukua dakika chache tu)

* Mwanzoni nilitumia arduino UNO katika upimaji wangu wa amri zote za serial kwa mashine na ilifanya kazi bila kasoro, hata hivyo moduli ya ESP ilikataa kufanya kazi. Niliangalia nambari hiyo mara tatu na nilikuwa na hakika kwamba maagizo yanayotoka kwenye moduli ya ESP yalikuwa sawa na arduino hata hivyo haikuwa kwenda. Niliweka hii chini kwa moduli ya ESP inayofanya kazi tu kwa mantiki 3.3v na sio 5V. Mara tu nilipoweka kibadilishaji cha Mantiki, ilifanya kazi vizuri. Hii inaweza kuhitajika au haiwezi kuhitajika katika mashine zingine.

Kwa kweli, ungekuwa na mfumo wa kiotomatiki uliopo nyumbani unaounga mkono itifaki ya MQTT (kama vile openhab) kwani hii ndio lengo la mradi. Ikiwa unataka tu kuidhibiti kupitia vifungo kwenye ukurasa wa wavuti bila mifumo yoyote inayounga mkono, utahitaji kufanya mabadiliko kadhaa kwenye nambari ya ukurasa wa wavuti iliyoingizwa. Sio ngumu sana kufikia (labda rev2..)

Hatua ya 3: Itifaki ya Jura

Itifaki ya Jura
Itifaki ya Jura

Takwimu kwenda / kutoka kwa mashine ni serial @ 9600 lakini Jura ana ujanja juu ya mikono yao pia. Itifaki inaweza kutumia hii kwa ECC ya ziada na / au kuzuia mawasiliano. Kuweka tu, kila baiti ya data (tabia) imegawanywa kwa baiti 2 na 5 kati ya ka 4 za kawaida zinazofuatwa na pause ya 8ms. Ikiwa unajali kujifunza jinsi hii inavyofanya kazi, kuna habari nyingi kwenye viungo hapa.

Habari ya Itifaki iliyotolewa kutoka:

Nambari ya arduino inarahisisha hii, kukuwezesha kupitisha amri za kawaida, zinazosomeka kwa wanadamu ambazo huingia kwenye itifaki ya Jura.

Nambari yangu ni mchanganyiko wa nambari kutoka kwa:

Amri zilizorejelewa kwenye wavuti hapo juu hazikuwa sahihi kwa mashine yangu lakini kupitia njia ya kujaribu na makosa, niliweza kupata hapa chini:

FA: 01 - Inazima (lakini haionekani kama suuza, hata ikiwa inahitajika) FA: 02 - Anajibu 'sawa' lakini hajui inachofanya. FA: 03 - Suuza Ujumbe (Inalazimisha ujumbe wa 'suuza' kwenye skrini, bonyeza mashine ya rinses ya rotary) FA: 04 - Suuza Kitendo - Rinses wakati ujumbe wa 'Bonyeza kitufe cha Rotary' unapoonekana, vinginevyo haifanyi chochote FA: 05 - Nguvu kwenye skrini (Labda unganisha hii na kutengeneza kahawa kali) FA: 06 - Nguvu kwenye skrini (Labda unganisha hii na kutengeneza kahawa kali) FA: 07 - 'Maalum' kwenye skrini lakini haifanyi chochote, bila hakika ni nini FA: 08 - FAam Steam: 09 - Kahawa Ndogo FA: 0A - Kahawa Kubwa

Kuna amri zingine lakini hii ni mengi kwangu…

Kuwa mwangalifu wakati wa kutoa amri zisizojulikana, kwa mfano, inaonekana AN: 0A itafuta EEPROM ya mashine …

Hatua ya 4: Kutenganisha

Kupata mashine yenyewe sio rahisi kupita kiasi kwani unahitaji zana maalum lakini mtu mwenye nia atapata njia - Unahitaji T15 Torx kidogo na 'ufunguo wa mviringo' wa visu 2. Torx nilikuwa tayari nayo, chombo cha mviringo nilichokifanya kutoka kwa bolt ya kichwa cha 4mm kilichombwa na kubanwa kidogo na nyundo.

Maagizo hapa yamewasilishwa vizuri -

Hatua ya 5: Kupitisha Udhamini

Kupitisha Udhamini
Kupitisha Udhamini
Kupitisha Udhamini
Kupitisha Udhamini
Kupitisha Udhamini
Kupitisha Udhamini
Kupitisha Udhamini
Kupitisha Udhamini

Mara tu ndani ya mashine, utaona vifaa kuu. Ghuba kuu ya umeme ina mahali pazuri chini yake kwa kuongeza chaja ya 5v.

Niliongeza (waya zilizokadiriwa) waya kwenye kituo cha kuingilia kwenye kuingilia kwa mashine na nikazinyunyizia kwenye pini kuu za chaja ya 5v. Mtindo wangu haswa haukuwa aina ya bandari ya USB lakini ile ambayo risasi ilikuwa imeambatanishwa kabisa. Labda huna nafasi ya kutosha ya bandari ya usb aina moja kuweza kutumia kebo halisi ya USB lakini ikiwa ulifungua chaja, unaweza kuondoa bandari ya USB na kuchukua nafasi ya waya wa kawaida kwa alama za 5v na Gnd.

Unaweza kubadilisha umeme mwingine uliokadiriwa umeme wa 5v ukipenda. 500ma inapaswa kuwa mengi.

Kuna nafasi nyingi kwa moduli ya kupeleka tena karibu na grinder. Tunalazimika kuweka waya kwa relay mbili ili kufanya kazi sambamba na swichi kuu za nguvu. Nilikata tu waya zilizopo, nikachomoa, nikapiga mabati, nikaongeza waya wa ziada na nikaunganisha pamoja (usisahau unywaji wa joto). Kulikuwa na uvivu wa kutosha kwenye waya kufanya hivyo.

Moduli ya kupokezana hufanyika na mkanda mzuri wa pande mbili. Pamoja na nyaya zilizounganishwa na zenye nafasi ndogo tu ya kusonga, hata kama mkanda unapoteza mtego, moduli haitapita sana na haiwezi kuwasiliana na vitu vyovyote vya chuma.

Pia nilizuia bandari ya uchunguzi kwenye mashine yangu kuamua eneo la unganisho la ndani ili niweze kufikia ujumuishaji uliofichika kabisa. Tu tx, rx na waya za Gnd hutumiwa.

Ikiwa una mashine ya kibiashara zaidi inayounga mkono voltage ya kusubiri na / au hautaki kubatilisha dhamana kwenye mashine yako, unaweza kuunganisha moja kwa moja kwenye bandari ya uchunguzi badala yake lakini hauwezi kuwezesha mashine inayotumia kifaa hiki.

Mashine yangu hutumia kontakt 7 ya pini. Kutoka kushoto kwenda kulia ni:

NC Tx G Rx NC 5v NC

Pini zinazofanana kwenye ubao kuu: Nyekundu = Gnd Orange = Rx Black = Tx

Maelezo zaidi yanaweza kupatikana kwenye pinouts hapa:

Hatua ya 6: Wiring Upande wa Mantiki

Wiring Upande wa Mantiki
Wiring Upande wa Mantiki
Wiring Upande wa Mantiki
Wiring Upande wa Mantiki
Wiring Upande wa Mantiki
Wiring Upande wa Mantiki

Pitia mchoro - Inaonekana ngumu sana lakini sio kweli.

Niliweka kibadilishaji cha kiwango nyuma ya kidhibiti cha (kilichopunguzwa) na mkanda wa pande mbili. Kisha nikatumia miguu ya sehemu kugeuza pini za nguvu na ardhi kwa upande wowote wa kibadilishaji cha kiwango hadi pini za moduli za nguvu zinazolingana. Moduli hii yote inafanya kazi kama 'kupitisha njia' kwa mantiki yote na usambazaji wa umeme kwa ESP-01.

Nilitumia waongofu wawili wa kati kwa data ya serial na mbili za nje kwa ishara za kuendesha tena lakini haijalishi unatumia.

Sio lazima sana na moduli hizi za kupeleka ili kuendesha mantiki ya 5v kwani zinafanya kazi LOW lakini ilifanya kazi vizuri tu kwa hivyo niliifanya hata hivyo.

Nilitumia kichwa cha kike cha 4x2 kwa kuungana na moduli ya ESP. Hii inaruhusu upakiaji rahisi wa nambari au kubadilisha moduli.

Haionyeshwi kwenye mchoro ni uingizaji wa 5V - nilitia waya yangu moja kwa moja kwenye moduli ya kupokezana (tazama picha ya pili). Waya mweusi chini kushoto mwa picha ni data ya serial kutoka kwa bodi kuu. Nilitumia sehemu ya kebo ya upanuzi wa vichwa vya kichwa 3.5mm kusaidia tu kupunguza nafasi za kuingiliwa kwenye laini ya data.

Nambari ya 12f hutumia SoftwareSerial badala ya serial ya vifaa - Hii inaruhusu moduli kuripoti hali ya utatuzi wa nyuma kupitia serial ya kawaida. Uunganisho ni kupitia pini 4 na 5 badala yake. Nilibadilisha kichwa kimoja kufanya ESP12F kuziba ubadilishane kwa ESP-01, nikibadilisha tu pini hizo za serial

Hatua ya 7: Kupanga Moduli

Kupanga Moduli
Kupanga Moduli

Nambari iliundwa dhidi ya Arduino 1.8.1 na bodi ya ESP8266 addon na PubSubClient 2.6.0 (ambayo ni Maktaba ya MQTT)

Rekebisha nambari kulingana na mahitaji yako na pakia nambari kwenye moduli ya ESP-01 na unganisha kwenye mashine. Kuwa mwangalifu na mwelekeo wa pini!

Usanidi

Chaguo 1)

Tu juu ya nambari ya msingi katika zip. Wakati moduli ya kwanza ya ESP, inaingia kwenye hali ya AP na inaweka IP hadi 192.168.4.1. Kisha unaweza kuungana na moduli na ubadilishe IP na uunganishe kwa kituo chako cha kufikia. Utahitaji pia kuweka IP kwa mashine yako katika anuwai hiyo kwani hakuna DHCP kwenye moduli.

Chaguo-msingi AP SSID ni 'ESPSwitch' na nywila ni '12345678'

Inakaa katika hali ya AP kwa dakika 2 kwa chaguo-msingi. Unaweza kubadilisha mpangilio huu kuwa 'global.h' - Inaitwa 'adminTimeout' na iko katika milliseconds. Ninapendekeza kubadilisha hii kuwa kitu cha chini mara tu uwe na usanidi halali katika EEPROM kwani itasababisha ucheleweshaji usiohitajika kwenye buti ya kifaa vinginevyo.

Chaguo 2)

Hii ndio hali chaguomsingi ya nambari mpya inayounga mkono njia mbili, chaguo 1 haipatikani. Unaweza pia kubadilisha mipangilio ya SSID / Nenosiri katika faili kuu ya ino (tafuta '// DEFAULT CONFIG') kwa hivyo itapakia mipangilio hiyo kwenye EEPROM kwenye buti ya kwanza na ubadilishe ucheleweshaji wa hali ya msimamizi kuwa kitu cha chini katika 'global.h'. Hii inepuka kuharibika kuzunguka kuungana na AP ya muda mfupi.

Kifaa kitaweka kiatomati kitambulisho cha MQTT (na njia ya usajili) kwa nambari 4 za mwisho za nambari za serial za moduli. Njia kwa chaguo-msingi ni ha / mod // #, badilika unavyoona inafaa lakini soma maoni kwenye nambari ili kuhakikisha safu inayofaa ina urefu sahihi.

Nafanya hivi kwa sababu inamaanisha sio lazima nitengeneze kitambulisho cha kipekee kwa kila moduli kwenye mtandao wangu.

Kitambulisho cha kifaa kinaonekana na seva ya MQTT inaweza kuwekwa kupitia ukurasa wa seva ya MQTT kwenye seva ya ndani ya wavuti

Hatua ya 8: Kuifanya ifanye vitu…

Amri za MQTT ni

ha / mod / xxxx / 0 au 1 = Kubadilisha nguvu

Kamba nyingine yoyote itachukuliwa kama amri na kutumwa kupitia bandari ya serial. Hali imeripotiwa kwa / ha / kahawa katika HEX

Na OpenHAB

kahawa.mashine

Nambari Kahawa_Mashine_Power "Nguvu" {mqtt = "> [kudhibiti: ha / mod / 8002 /: amri: *: chaguo-msingi]"} Kamba ya Kahawa_Machine_Status {mqtt = "<[control: ha / coffee: state: default]"}

Ramani

Bidhaa ya kikundi = "Mashine ya kahawa" {Badilisha bidhaa = Kahawa_Machine_Power label = "Nguvu" ramani = [1 = "Toggle"] Badilisha bidhaa = Kahawa_Machine_Cmd label = "" mappings = ["FA: 09" = "Ndogo"] Badilisha bidhaa = Coffee_Machine_Cmd label = "" mappings = ["FA: 0A" = "Kubwa"] Badilisha kitu = Coffee_Machine_Cmd label = "" mappings = ["FA: 04" = "Suuza"] Nakala ya maandishi = Coffee_Status label = "Hali [% s] "}

sauticontrol.rules

kuagiza org.openhab.model.script.actions. * kuagiza org.openhab.core.library.types. * kuagiza java.util. *

sheria "Kanuni za amri ya sauti"

wakati Item VoiceCommand ilipokea amri kisha var String command = VoiceCommand.state.toString.toLowerCase logInfo ("Voice. Rec", "VoiceCommand imepokea" + amri)

ikiwa (command.contains ("washa mashine ya kahawa") || amri. ina ((zima mashine ya kahawa ")) {

sendCommand (Coffee_Machine_Power, 1)} ikiwa (command.inayo ("nifanyie kahawa ndogo")) {sendCommand (Coffee_Machine_Cmd, "FA: 09")} ikiwa (command.inayo ("nifanyie kahawa kubwa")) { sendCommand (Coffee_Machine_Cmd, "FA: 0A")} ikiwa (command.inayo ("suuza mashine ya kahawa")) {sendCommand (Coffee_Machine_Cmd, "FA: 04")}} mwisho

Kanuni (za kutafsiri majibu ya HEX katika maadili 'halisi'):

sheria "Hali ya Mashine ya Kahawa" wakati Bidhaa Kahawa_Machine_Status ilipokea sasisho kisha var String response = Coffee_Machine_Status.state.toString () ikiwa (response.indexOf ("ic:")> -1) {var String hexString = response.substring (3, 5)

var int num = (Integer.parseInt (hexString, 16));

var String binaryString = String.format ("% 8s", Integer.toBinaryString (num)). nafasi ('', '0')

var int trayBit = binaryString.substring (0, 1)

var int tankBit = binaryString.substring (2, 3) var int heatBit = binaryString.substring (7, 8) var int rinseBit = binaryString.substring (6, 7)

ikiwa (trayBit == "0") {

postUpdate (Coffee_Status, "Tray Missing")} ikiwa (tankBit == "1") {postUpdate (Coffee_Status, "Jaza Tank")} ikiwa (suuzaBit == "1") {postUpdate (Coffee_Status, "Press Rotary")} ikiwa (trayBit == "1" && tankBit == "0" && rinseBit == "0") {postUpdate (Coffee_Status, "Tayari")}

}

ikiwa (response == "Off") {postUpdate (Coffee_Status, "Off")} mwisho

Hatua ya 9: Marekebisho / Todo

Kurahisisha usanidi wa awali unaounganisha na wifi - Imekamilika. Iliachana na wazo la 'hali ya msimamizi' kwani ilikuwa ya kukasirisha. Sasa ingiza tu SSID na nywila kwa nambari. Inaokoa kwa EEPROM ikiwa unasasisha / kubadilisha kupitia kiolesura cha wavuti.

Nambari mpya pia inasaidia sasisho za OTA lakini utahitaji kusasisha EEPROM kwenye moduli ya ESP-01 ili hii ifanye kazi au kutoa maoni ya vitu sawa vya OTA

Ongeza nambari ya kusindika majibu kutoka kwa mashine na usome hali kama hakuna tray, sababu tupu na tanki la kujaza - Imekamilika. Nimeongeza nambari kusoma hali tena na kuchapisha kwa ha / kahawa. Haya tu ni majibu mabichi na bado ninafanya kazi ya kuyatafsiri lakini hadi sasa nina Tray haipo na Tank inafanya kazi tupu. Inachagua mashine kila sekunde 9 ikiwasha na kuchapisha majibu kwa MQTT

Jibu liko kwenye HEX lakini bits za kibinafsi zinaonyesha sensorer

Ongeza nambari kwa kurasa za wavuti kwa udhibiti wa moja kwa moja kupitia Amri za HTTP GET.

Mashindano ya Mtandao ya Vitu 2017
Mashindano ya Mtandao ya Vitu 2017
Mashindano ya Mtandao ya Vitu 2017
Mashindano ya Mtandao ya Vitu 2017

Tuzo ya Kwanza kwenye Mashindano ya Mtandao ya Vitu 2017

Ilipendekeza: