Mündəricat:
- Addım 1: Bunu necə edəcəyik
- Addım 2: Lazımi avadanlıq
- Addım 3: Jura Protokolu
- Addım 4: Sökmə
- Addım 5: Zəmanətin ləğv edilməsi
- Addım 6: Məntiq tərəfini naqilləşdirin
- Addım 7: Modulun proqramlaşdırılması
- Addım 8: Bir şeylər etmək …
- Addım 9: İnkişaf/Todo
Video: IoT Aktiv Qəhvə Maşını: 9 Addım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Bu təlimat IoT yarışmasına daxil edilmişdir - İstəsəniz, zəhmət olmasa ona səs verin
YENİLƏNİB: İndi 2 yollu mesaj və OTA yeniləmələrini dəstəkləyir
Bir müddətdir ki, bir Jura qəhvə maşını aldım və həmişə onu bir şəkildə avtomatlaşdırmaq istəyirdim.
Bir neçə ildir ki, əsas ev avtomatlaşdırma sistemi ilə işləyirəm, amma qəhvə maşını sadə bir şey deyildi (və ya düşündüm). Jura qəhvə maşınlarında ümumiyyətlə 'Diaqnostik port' və/və ya maşına ödəniş sistemi əlavə etmək üçün istifadə olunan bir liman var, lakin bunun necə istifadə ediləcəyi ilə bağlı heç bir məlumat tapa bilmədim. Bu yaxınlarda, protokol bəzi şəxslər tərəfindən tərs tərtib edildi və ictimaiyyətə açıqlandı. Problem, mövcud funksiyalara istinadların çoxu mənimkindən daha böyük maşınlar üçün idi (Ena 7).
Üstəlik, maşınım daha böyük maşınlar kimi daimi bir gözləmə gücünə malik deyil, bunun əvəzinə enerji təchizatı 'kilidini açan' bir HV açarı var. Maşındakı fiziki düymə əslində 2 açarı işə salır - Bir aşağı volt (məntiq tərəfi, söndür) və bir Yüksək Volt (Güc aç). Hər iki açar bir anlıqdır.
Maşının hələ də heç bir idarəetmə mexanizmindən 100% müstəqil işlədiyinə əmin olmalıydım, yəni maşın hələ də IoT -nin aktiv olmadığı kimi normal işləyir.
Maşını avtomatlaşdırmaq üçün iki şey lazımdır: 1) Maşının gücünü idarə edə bilmək üçün 2) Qəhvə hazırlamaq, durulama və s. Funksiyalarını aktivləşdirmək üçün maşınla ünsiyyət qura bilmək.
Addım 1: Bunu necə edəcəyik
Ev wifi-yə qoşulmaq və əmrləri dinləmək üçün MQTT serverinə/mövzuya abunə olmaq üçün ESP8266 'ESP-01' modulundan istifadə edəcəyik. İstifadə etdiyim 'Ön Uç' OpenHAB2 -dir, ancaq HTTP Al əmrlərini istəsəniz və ya istəsəniz cihazdakı veb interfeysinə əlavə edə bilməməyinizə və idarə etməyinizə heç bir səbəb yoxdur.
ESP8266, güc düyməsi ilə əlaqəli 2 röleyi idarə edəcək və eyni zamanda qəhvə maşınından gələn/gələn əmrləri işləyəcək.
XƏBƏRDARLIQ - Bu təlimat Jura Ena7 qəhvə maşınının ev avtomatlaşdırılması vasitəsi ilə idarə olunmasını dəyişdirmək üçün istifadə etdiyim proseduru təsvir edir. Yanlış yerinə yetirildikdə təhlükəli ola biləcək bir elektrik cihazının dəyişdirilməsi ilə məşğul olur. Buradakı məlumatlar natamam, qeyri -dəqiq və təhlükəli ola bilər. Ehtiyatla davam edin. Heç bir məsuliyyət qəbul edilmir.
Addım 2: Lazımi avadanlıq
Hissələri
- ESP-01 modulu və onu proqramlaşdırma yolu (Arduino IDE və proqramlaşdırma üçün fiziki adapter)
- 2 tərəfli röle modulu EBAY
- 5v -> 3.3v EBAY tənzimləyicisi
- Kiçik 5v şəbəkədən işləyən telefon şarj cihazı
- Məntiq səviyyəsi çeviricisi* Freetronics
- Hər şeyi birləşdirmək üçün müxtəlif tellər, pin başlıqları, istilik daralma və s.
Alətlər
- İncə uclu lehimləmə dəmiri
- Lehim
- Tel çıxarıcılar əlverişlidir
- Torx t15 sürücü
- Oval təhlükəsizlik vasitəsi (və ya düzəldin, yalnız bir neçə dəqiqə çəkir)
*Əvvəlcə maşının bütün seriyalı əmrlərini sınaqdan keçirərkən bir arduino UNO istifadə etdim və qüsursuz işləyirdi, lakin ESP modulu işləməkdən imtina etdi. Kodu üç dəfə yoxladım və ESP modulundan çıxan əmrlərin arduino ilə eyni olduğuna əmin idim, amma bu heç bir iş deyil. Bunu 5V yox, yalnız 3.3v məntiqlə işləyən ESP moduluna qoydum. Məntiq çeviricisini qoyduqdan sonra yaxşı işləyir. Digər maşınlarda bu tələb oluna bilər və ya olmaya da bilər.
İdeal olaraq, MQTT protokolunu (məsələn, openhab) dəstəkləyən mövcud bir ev avtomatlaşdırma sisteminiz olardı, çünki layihənin məqsədi budur. Heç bir dəstəkləyici sistem olmadan bir veb səhifədəki düymələr vasitəsilə idarə etmək istəyirsinizsə, quraşdırılmış veb səhifə kodunda bəzi dəyişikliklər etməlisiniz. Buna nail olmaq çox çətin deyil (bəlkə rev2..)
Addım 3: Jura Protokolu
Maşına olan/gələn məlumatlar sadəcə 9600 seriyalıdır, amma Juranın da qollarını qaldırmaq üçün bəzi hiylələri var. Protokol ya bunu əlavə ECC üçün və/və ya ünsiyyəti ləkələmək üçün istifadə edir. Sadə dillə desək, hər bir bayt məlumat (xarakter) 8 ms fasilə ilə izlənilən 4 standart serial baytın 2 və 5 -ci bitlərinə bölünür. Bunun necə işlədiyini öyrənmək istəyirsinizsə, buradakı bağlantılarda çoxlu məlumatlar var.
Protokol Məlumatı:
Arduino kodu, bunu sadələşdirir və standart Jura protokoluna köçürdüyü insan tərəfindən oxunan əmrləri ötürməyə imkan verir.
Kodum, https://github.com/oliverk71/Coffeemaker-Payment-… https://github.com/psct/sharespresso kodunun birləşməsidir
Yuxarıdakı saytlarda istinad edilən əmrlər maşınım üçün doğru deyildi, amma sınaq və səhv üsulu ilə aşağıdakıları ortaya qoya bildim:
FA: 01 - söndürür (lakin lazım olsa belə durulamır) FA: 02 - "tamam" cavabını verir, amma nə etdiyindən əmin deyil. FA: 03 - Durulama Mesajı (Ekranda 'durulama' mesajını məcbur edir, fırlanan durulama maşını basaraq) FA: 04 - Durulama Fəaliyyəti - 'Rotary düyməsinə basın' mesajı görünəndə durulayır, əks halda heç bir iş görmür FA: 05 - Ekranda güclü (FA: 06 - Ekranda güclü (Çox güman ki, bunu güclülər üçün qəhvə hazırlamaqla birləşdirin) FA: 07 - Ekranda 'Xüsusi' amma əslində heç nə etmir, bununFA üçün nə olduğunu bilmir: 08 - Buxar FA: 09 - Kiçik Qəhvə FA: 0A - Böyük Qəhvə
Başqa əmrlər var, amma bu mənim üçün çoxdur …
Naməlum əmrlər verərkən ehtiyatlı olun, məsələn, görünür AN: 0A, maşının EEPROMunu siləcək …
Addım 4: Sökmə
Maşının özünü açmaq o qədər də asan deyil, çünki bir az xüsusi vasitələrə ehtiyacınız var, amma həvəsli bir insan bir yol tapacaq - T15 Torx ucu və 2 vint üçün 'oval açar' lazımdır. Artıq sahib olduğum Torx, 4 mm -lik bir baş cıvatasından düzəltdiyim oval alət, çəkiclə bir az düzəldildi.
Buradakı təlimatlar kifayət qədər yaxşı təqdim edilmişdir-https://marius.me.uk/blog/2015/03/open-jura-ena-5/
Addım 5: Zəmanətin ləğv edilməsi
Maşına daxil olduqdan sonra əsas komponentləri görəcəksiniz. Əsas güc girişinin altında 5v şarj cihazını əlavə etmək üçün gözəl bir yer var.
Maşının girişindəki terminal blokuna tellər əlavə etdim və bunları 5v şarj cihazının elektrik pinlərinə lehimlədim/qızdırdım. Xüsusi modelim bir USB portu tipi deyil, həmişəki olaraq qurğunu bağlayan bir model idi. Həqiqi bir USB kabelindən istifadə edə biləcəyiniz bir usb portu üçün kifayət qədər yeriniz olmaya bilər, ancaq şarj cihazını açsanız, USB portunu çıxarıb 5v və Gnd nöqtələrinə standart bir tel ilə əvəz edə bilərsiniz.
İstəsəniz 5v gücündə başqa bir elektrik şəbəkəsi ilə əvəz edə bilərsiniz. 500ma çox olmalıdır.
Taşlama cihazının yanında röle modulu üçün çox yer var. Əsas güc açarları ilə paralel olaraq çalışmaq üçün iki röleyi bağlamalıyıq. Mövcud telləri kəsdim, soydum, qalayladım, əlavə bir tel əlavə etdim və yenidən birlikdə lehimlədim (istilik daralmasını unutmayın). Bunu etmək üçün tellərdə kifayət qədər boşluq var idi.
Röle modulu yaxşı keyfiyyətli iki tərəfli lentlə yerində tutulur. Bağlanan tellər və hərəkət üçün yalnız məhdud yer olduqda, lent tutuşunu itirsə belə, modul çox uzağa getməyəcək və heç bir metal əşya ilə təmasda ola bilməz.
Tamamilə gizli bir inteqrasiya əldə etmək üçün daxili əlaqələrin yerini təyin etmək üçün maşınımdakı diaqnostik portu yenidən hazırladım. Yalnız tx, rx və Gnd telləri istifadə olunur.
Gözləmə gərginliyini dəstəkləyən daha çox ticarət maşınınız varsa və/və ya maşınınızda zəmanəti ləğv etmək istəmirsinizsə, bunun əvəzinə birbaşa diaqnostik porta qoşula bilərsiniz, ancaq bu cihazı istifadə edərək maşını işə sala bilməyəcəksiniz.
Cihazım 7 pinli bir bağlayıcıdan istifadə edir. Soldan sağa:
NC Tx G Rx NC 5v NC
Anakartdakı müvafiq sancaqlar: Qırmızı = Gnd Turuncu = Rx Qara = Tx
Daha çox məlumatı buradakı pinoutlarda tapa bilərsiniz:
Addım 6: Məntiq tərəfini naqilləşdirin
Diaqramı nəzərdən keçirin - Çox mürəkkəb görünür, amma əslində belə deyil.
Səviyyə çeviricisini bir neçə tərəfli lentlə (tükənmiş) gərginlik tənzimləyicisinin arxasına quraşdırdım. Səviyyə çeviricisinin hər iki tərəfindəki güc və torpaq sancaqlarını müvafiq güc modulu pinlərinə lehimləmək üçün bəzi komponent ayaqlarından istifadə etdim. Bütün bu modul daha sonra ESP-01 üçün bütün məntiq və enerji təchizatı üçün 'keçid' kimi işləyir.
Seriya məlumatları üçün iki orta çeviricini və röle sürücülük siqnalları üçün xarici ikisini istifadə etdim, amma hansından istifadə etməyinizin əhəmiyyəti yoxdur.
Bu röle modulları ilə 5 V məntiqi işə salmaq lazım deyil, çünki onlar LOW aktivdirlər, amma çox gözəl işləyirdi, buna görə də bunu etdim.
ESP moduluna qoşulmaq üçün 4x2 dişi başlıqdan istifadə etdim. Bu, kodu asanlıqla yükləməyə və ya modulu dəyişdirməyə imkan verir.
Diaqramda 5V girişi göstərilməmişdir - minanı birbaşa röle moduluna bağladım (ikinci şəkilə baxın). Şəklin sol alt hissəsindəki qara tel, ana kartdakı serial məlumatlarıdır. Məlumat xəttinə müdaxilə şansını azaltmaq üçün ekranlaşdırılmış 3,5 mm qulaqlıq uzatma kabelinin bir hissəsini istifadə etdim.
12f kodu, hardware seriyası əvəzinə SoftwareSerial istifadə edir - Bu, modulun normal serial vasitəsilə geri çəkilmə vəziyyətini bildirməsinə imkan verir. Bağlantılar 4 və 5 -ci pinlər vasitəsilə aparılır. Eyni başlığı ESP12F-ni ESP-01 üçün dəyişdirmə fişinə çevirmək üçün uyğunlaşdırdım, sadəcə bu seriyalı pinləri dəyişdirin
Addım 7: Modulun proqramlaşdırılması
Kod Arduino 1.8.1 əleyhinə ESP8266 lövhə addon və PubSubClient 2.6.0 (MQTT Kitabxanası) ilə tərtib edilmişdir.
Kodu ehtiyaclarınıza uyğun olaraq dəyişdirin və kodu ESP-01 moduluna yükləyin və maşına qoşulun. Pimlərin istiqamətinə diqqət yetirin!
Konfiqurasiya
Seçim 1)
Yalnız zipdəki əsas kodda. ESP modulu ilk açıldıqda AP rejiminə keçir və IP -ni 192.168.4.1 olaraq təyin edir. Daha sonra modula qoşula və IP -ni dəyişə və öz giriş nöqtənizə qoşula bilərsiniz. Modulda DHCP olmadığı üçün bu aralıqda maşınınız üçün bir IP təyin etməlisiniz.
Varsayılan AP SSID 'ESPSwitch' və parol '12345678' dir
Varsayılan olaraq AP rejimində 2 dəqiqə qalır. Bu ayarı 'global.h' də dəyişə bilərsiniz - 'adminTimeout' adlanır və milisaniyələrdədir. EEPROM -da etibarlı bir konfiqurasiya əldə etdikdən sonra bunu aşağı bir şeyə dəyişdirməyi məsləhət görürəm, əks halda cihazın açılışında lazımsız gecikmələrə səbəb olacaq.
Seçim 2)
Bu, 2 yollu əlaqəni dəstəkləyən daha yeni kod üçün standart rejimdir, seçim 1 mövcud deyil. Siz də əsas ino faylında standart SSID/Şifrə parametrlərini dəyişə bilərsiniz ('// VARSAYILAN KONFİG' ə baxın), beləliklə yüklənəcək. bu parametrləri ilk açılışda EEPROM -a daxil edin və idarəetmə rejiminin gecikməsini 'global.h' -də aşağı bir şeyə dəyişdirin. Bu, müvəqqəti AP -yə qoşulmaqda çətinlik çəkməyin qarşısını alır.
Cihaz avtomatik olaraq MQTT id (və abunəlik yolunu) modulların seriya nömrəsinin son 4 rəqəminə təyin edəcək. Varsayılan yol ha/mod //#-dir, uyğun gördüyünüz kimi dəyişin, lakin uyğun serialın düzgün uzunluğa malik olduğundan əmin olmaq üçün koddakı şərhləri oxuyun.
Bunu edirəm, çünki şəbəkədəki hər modul üçün unikal bir şəxsiyyət kodu yaratmaq məcburiyyətində deyiləm.
Cihaz identifikatoru görünür və MQTT serveri daxili veb serverdəki MQTT server səhifəsi vasitəsi ilə təyin edilə bilər
Addım 8: Bir şeylər etmək …
MQTT əmrləri belədir
ha/mod/xxxx/0 və ya 1 = Gücü dəyişdirin
Hər hansı digər simli bir əmr olaraq qəbul ediləcək və serial port vasitəsilə göndəriləcək. HEX -də /ha /kofe vəziyyət bildirilir
OpenHAB ilə
qəhvə maşını. maddələr
Sayı Coffee_Machine_Power "Güc" {mqtt = "> [nəzarət: ha/mod/8002/: əmr:*: default]"} Qəhvə_Maşın_Statusu {mqtt = "<[nəzarət: ha/qəhvə: vəziyyət: standart]"}
Sayt xəritəsi
Qrup maddəsi = "Qəhvə Maşını" {Switch item = Coffee_Machine_Power label = "Power" mappings = [1 = "Toggle"] Switch item = Coffee_Machine_Cmd label = "" mappings = ["FA: 09" = "Small"] Maddəni dəyişdir = Coffee_Machine_Cmd label = "" mappings = ["FA: 0A" = "Large"] Maddəni dəyişdir = Coffee_Machine_Cmd label = "" eşlemeler = ["FA: 04" = "Durulama"] Mətn maddəsi = Coffee_Status etiketi = "Status [%s] "}
səs idarəetmə qaydaları
idxal org.openhab.model.script.actions.* idxal org.openhab.core.kitabxana.tiplər.* idxal java.util.
qayda "Səs əmri qaydaları"
Item VoiceCommand əmri aldıqdan sonra var String əmri = VoiceCommand.state.toString.toLowerCase logInfo ("Voice. Rec", "VoiceCommand alındı"+əmri)
if (əmr. tərkibində ("qəhvə maşını yandır") || əmr. ehtiva edir ("qəhvə maşını söndür")) {
sendCommand (Coffee_Machine_Power, 1)} if (command.contains ("me a small coffee")) {sendCommand (Coffee_Machine_Cmd, "FA: 09")} if (command.contains ("me a large coffee")) { sendCommand (Coffee_Machine_Cmd, "FA: 0A")} if (command.contains ("qəhvə maşını yaxalamaq")) {sendCommand (Coffee_Machine_Cmd, "FA: 04")}} son
Qaydalar (HEX cavablarını 'real' dəyərlərə şərh etmək üçün):
Item Coffee_Machine_Status yeniləmə aldıqda "Coffee Machine Status" qaydası var String answer = Coffee_Machine_Status.state.toString () if (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 (sayı)). əvəz edin ('', '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)
əgər (trayBit == "0") {
postUpdate (Coffee_Status, "Tray Missing")} if (tankBit == "1") {postUpdate (Coffee_Status, "Fill Tank")} if (rinseBit == "1") {postUpdate (Coffee_Status, "Press Rotary")} əgər (trayBit == "1" && tankBit == "0" && rinseBit == "0") {postUpdate (Coffee_Status, "Hazır")}
}
əgər (cavab == "Off") {postUpdate (Coffee_Status, "Off")} son
Addım 9: İnkişaf/Todo
Wi -Fi -ya qoşulmaq üçün ilkin quraşdırmanı sadələşdirin - Bitti. Sinir bozucu olduğu üçün 'admin rejimi' fikrindən imtina etdi. İndi koda SSID və şifrənizi daxil edin. Veb interfeysi vasitəsilə yeniləsəniz/dəyişdirsəniz EEPROM -da saxlayır.
Daha yeni kod OTA yeniləmələrini də dəstəkləyir, lakin bunun üçün uyğun OTA maddələrini işlətmək və ya şərh etmək üçün ESP-01 modulunda EEPROM-u təkmilləşdirməlisiniz
Maşından gələn cavabları emal etmək üçün kod əlavə edin və heç bir tepsi, boş yer və doldurma tankı kimi vəziyyəti oxuyun - Bitti. Vəziyyəti geri oxumaq və ha/coffee -də dərc etmək üçün kod əlavə etdim. Bu, yalnız xam cavablardır və mən hələ də onları şərh etmək üzərində işləyirəm, amma indiyə qədər Tepsinin itməsi və Tankın boş işlənməsi var. Hər 9 saniyədə bir maşın sorğu keçirir və MQTT cavabını dərc edir
Cavab HEX -dədir, lakin fərdi bitlər sensorları göstərir
HTTP GET əmrləri ilə birbaşa nəzarət etmək üçün veb səhifələrə kod əlavə edin.
Əşyaların İnterneti 2017 Müsabiqəsində Birinci Mükafat
Tövsiyə:
Ağıllı Qəhvə Maşını - SmartHome Ekosisteminin bir hissəsi: 4 addım
Ağıllı Qəhvə Maşını - SmartHome Ekosisteminin bir hissəsi: Hacked Qəhvə Maşını, SmartHome Ekosisteminin bir hissəsinə çevrildi Yaxşı bir köhnə Delonghi Qəhvə Maşına (DCM) sahibəm (bir tanıtım deyil və "ağıllı" olmasını istəyirəm. ESP8266 quraşdıraraq onu sındırdım) istifadə edərək beyninə/mikro nəzarətçisinə interfeysi olan modul
Raspberry Pi və Google Sheets ilə Qəhvə Maşını İzləyicisi: 5 addım
Qəhvə Maşını İzləyicisi Raspberry Pi və Google Vərəqləri ilə: Bu təlimat, ofis yerinizdə paylaşılan qəhvə maşını üçün Raspberry Pi əsaslı bir izləyicinin necə qurulacağını sizə göstərəcək. İzləyicinin OLED displeyi və mexaniki açarları istifadə edərək, istifadəçilər qəhvə istehlakını qeyd edə, tarazlığını görə bilər və
Alexa Dragonboard, Android tətbiqi və qəhvə maşını ilə necə əlaqə qurmaq olar: 7 addım
Alexa Dragonboard, Android Tətbiqi və Qəhvə Maşını ilə necə əlaqə qurmaq olar: Bu təlimat, Qəhvə Maşınının Alexa Dragonboard və Android Tətbiqi ilə əlaqələndirilməsi, inteqrasiyası və istifadəsi üçün lazımi addımları təqdim edir. Qəhvə maşını haqqında daha ətraflı məlumat üçün bu təlimatı yoxlayın
JavaStation (Özünü Dolduran Tam Avtomatik IoT Qəhvə Makinası): 9 Addım (Şəkillərlə birlikdə)
JavaStation (Öz-özünə Doldurulan Tam Avtomatik IoT Qəhvə Hazırlayıcısı): Bu layihənin məqsədi özünü avtomatik olaraq su ilə dolduran tam avtomatik səslə idarə olunan qəhvə hazırlayıcısı etmək idi və həqiqətən etməli olduğunuz şey müştərilərinizi dəyişdirmək və qəhvənizi içməkdir; )
Saç qurutma maşını necə hazırlanır - DIY Evdə Saç qurutma maşını: 6 addım (şəkillərlə)
Saç qurutma maşını necə hazırlanır - DIY evdə qurudulmuş saç qurutma maşını: ❄ BURADA ABUNƏ OLUN ➜ https://www.youtube.com/subscription_center?add_us…❄ BÜTÜN VİDEOLAR BURADA ➜ http://www.youtube.com/user/fixitsamo /videolar❄ BİZİ TAKİB EDİN: FACEBOOK ➜ https://www.facebook.com/fixitsamo PINTEREST ➜ https://www.facebook.com/fixitsamo