Daftar Isi:

[15mnt] Indikator Weasley Clock / Who Is Home - Berdasarkan TR-064 (beta): 4 Langkah (dengan Gambar)
[15mnt] Indikator Weasley Clock / Who Is Home - Berdasarkan TR-064 (beta): 4 Langkah (dengan Gambar)

Video: [15mnt] Indikator Weasley Clock / Who Is Home - Berdasarkan TR-064 (beta): 4 Langkah (dengan Gambar)

Video: [15mnt] Indikator Weasley Clock / Who Is Home - Berdasarkan TR-064 (beta): 4 Langkah (dengan Gambar)
Video: Hot Shots! Part Deux (3/5) Movie CLIP - Limo Lovin' (1993) HD 2024, Juli
Anonim
Image
Image
[15mnt] Indikator Weasley Clock / Who Is Home - Berdasarkan TR-064 (beta)
[15mnt] Indikator Weasley Clock / Who Is Home - Berdasarkan TR-064 (beta)

PEMBARUAN: Lihat langkah 3.

Cerita panjang (TL; DR di bawah): Beberapa waktu lalu saya menulis skrip bash kecil di komputer saya yang akan memindai jaringan untuk perangkat terdaftar dan membandingkan nama host mereka dengan daftar dengan nama terkait. Setiap kali perangkat akan masuk atau keluar jaringan, saya akan mendapatkan pemberitahuan. Seperti ini, saya punya ide siapa yang ada di rumah (tidak hanya menyenangkan mengetahui siapa yang ada di rumah untuk bertanya apakah mereka ingin bergabung dengan makan atau semacamnya, tetapi juga berpotensi membantu Anda menghindari situasi canggung). Masalahnya adalah, bahwa metode ini tidak terlalu dapat diandalkan. Sayangnya beberapa perangkat tidak membalas ping (misalnya ponsel cerdas) dan tampaknya beralih ke mode hemat daya sehingga tidak dapat dideteksi secara andal dengan perintah seperti nmap. Saya mencoba mengatasi ini dengan meminta setidaknya 10 negatif sebelum akhirnya mengumumkan bahwa perangkat meninggalkan jaringan. Secara keseluruhan itu berhasil, tetapi lambat, tidak dapat diandalkan, dan tidak terlalu baik. Saya juga ingin dapat memeriksa siapa yang ada di rumah, tanpa membuka komputer saya. Jadi saya memiliki ESP8266 yang tergeletak di sekitar - dan ingin bermain dengan mereka. Tapi saya tidak ingin membangun stasiun cuaca berbasis ESP 10.120.124.812 atau semacamnya (mengapa Anda ingin memantau cuaca dengan termometer ±2°C jelek Anda ketika Anda hanya dapat mengunjungi beberapa situs web?). Jadi rencana itu dibuat. Sayangnya ternyata ESP tampaknya tidak dilengkapi untuk melakukan ping dengan benar (yang awalnya buruk, ingat?) apalagi melakukan pemindaian jaringan penuh. Saya mempertimbangkan untuk menulis beberapa perpustakaan untuk itu - tetapi karena C++ saya sangat terbatas, ini adalah proyek ESP pertama saya dan saya bukan seorang jenius dengan hal-hal jaringan, saya membatalkan ide itu. Setelah melakukan riset, saya menemukan, bahwa saya router (merek Fritz!Box) sebenarnya memiliki API! YA!!!! Protokolnya disebut TR-064. Nama yang menginspirasi, kan? Melakukan penelitian tentang masalah ini, saya menemukan dokumentasi online (agak jelek). Butuh beberapa waktu untuk menyelesaikannya. Saya mungkin memposting lebih banyak instruksi langsung di hari-hari berikutnya (dan cara berkomunikasi dengan/menguji API ini menggunakan addon browser). Setelah saya memahami API, saya mulai menggunakannya dari ESP saya. Singkat cerita: Saya menjalankan solusi duck-tape-and-wd40 dan melakukan apa yang saya inginkan (meminta API untuk perangkat yang terhubung, membandingkannya dengan daftar alamat MAC dan mengganti LED yang sesuai). Tetapi saya menginginkan yang lebih kuat dan solusi fleksibel dan API ini memiliki lebih banyak untuk ditawarkan (Anda dapat mengubah pengaturan (menghidupkan/mematikan wifi, mengubah kata sandi, membuka/menutup wifi tamu, mengubah kekuatan sinyal), restart router, menanyakan kecepatan koneksi, …) - jadi saya memutuskan untuk membuat perpustakaan TR-064 universal!TL;DR;Perangkat yang menunjukkan melalui LED yang saat ini ada di rumah. Berfungsi dengan baik, belum memiliki perumahan yang bagus (hei - perhatikan beta dalam judul?). Menggunakan protokol SOAP untuk berkomunikasi dengan router. Menulis perpustakaan Arduino untuk mewujudkannya. Pengetahuan yang diperlukan• Pengetahuan dasar Arduino/ESP• Jika Anda mengumpulkan contoh Blink dengan ESP Anda, Anda akan baik-baik saja!• Jika tidak, Anda dapat mengikuti dua langkah pertama dari instruksi ini• Solder mungkin berguna, jika Anda ingin meninggalkan tahap papan tempat memotong roti• Beberapa desain 3D dan/atau pengerjaan kayu mungkin berguna untuk tautan proyek housingGithub [https://github.com/Aypac/Arduino-TR-064-SOAP-Library] untuk referensi cepat.

Perlengkapan

  • ESP8266 atau ESP32 pada Development-Board atau dengan programmer lain (2~6€)
  • Kabel USB sesuai dengan programmer
  • Adaptor daya (mis. USB atau baterai ~2€)
  • Beberapa LED dan resistor (~1€)
  • (Selubung)

=> Sekitar 4-6€ untuk desain minimal. Itu berarti bagi saya, saya dapat dengan mudah menggantung beberapa di sekitar rumah. Jika Anda malas, Anda juga dapat menggunakan papan pengembangan dengan LED yang disertakan (lihat langkah 4 untuk detail lebih lanjut).

Langkah 1: Atur Router Anda (opsional, Tapi Disarankan)

Atur Router Anda (opsional, Tapi Disarankan)
Atur Router Anda (opsional, Tapi Disarankan)
Atur Router Anda (opsional, Tapi Disarankan)
Atur Router Anda (opsional, Tapi Disarankan)

Protokol ini dirancang sebagai protokol umum untuk router, tetapi saya hanya tahu bahwa (sebagian besar) router Fritz!Box (sangat umum setidaknya di Eropa) menggunakannya. Tidak tahu tentang merek lain. Jadi saya akan berasumsi, bahwa Anda menggunakan Fritz!Box. Jika Anda dapat membuat ini berfungsi (atau gagal melakukannya) di router lain, saya akan dengan senang hati menambahkannya ke instruksi ini (bahkan mungkin memulai daftar kompatibilitas singkat?).

Langkah ini tidak perlu, Anda juga bisa menggunakan akun admin Anda, tetapi itu tidak disarankan karena alasan yang jelas (mungkin disadap atau diekstraksi dari ESP Anda, Anda mungkin secara tidak sengaja mengubah hal-hal yang tidak Anda inginkan, …) - jadi saya menyarankan Anda untuk melakukannya.

Bagaimanapun, ini dia:

  1. Masuk ke Fritz!Box Anda dengan mengetikkan fritz.box di url-bar browser favorit Anda.
  2. Temukan halaman untuk membuat pengguna FRITZ!Box baru (Anda harus memilikinya di bagian Sistem, jika Anda tidak dapat menemukannya, coba perbarui perangkat Anda).
  3. Buat akun baru seperti yang Anda lihat di gambar (menggunakan nama pengguna/kata sandi yang berbeda!).
  4. Keluar.

Langkah 2: Kode

Image
Image
Perangkat keras (beta)
Perangkat keras (beta)
  1. Anda bisa mendapatkan perpustakaan dari Github.

  2. Dalam contoh Anda akan menemukan file bernama home-indicator.ino, yang merupakan kode untuk proyek ini. Tempatkan folder contoh di folder rumah proyek arduino IDE Anda dan folder lainnya ke dalam folder perpustakaan di folder rumah proyek yang sama.
  3. (Re) Mulai Anda IDE.
  4. Buka home-indicator.ino di IDE dan masukkan pengaturan Anda. Seharusnya cukup jelas apa yang terjadi di mana. Jika Anda memiliki pertanyaan, beri tahu saya!
  5. Sekarang Anda dapat mengkompilasinya dan mentransfernya ke ESP Anda!

Langkah 3: Perangkat Keras (beta)

Perangkat keras (beta)
Perangkat keras (beta)
Perangkat keras (beta)
Perangkat keras (beta)
Perangkat keras (beta)
Perangkat keras (beta)

Ya… Ini adalah langkahnya, di mana saya masih harus bekerja lagi. Tapi saya kira ada cukup bahan di web untuk mencari tahu:) Pengaturan seperti pada gambar hanyalah dioda dengan resistor ~100Ohm yang dihubungkan ke GPIO{5, 4, 0, 2}, yang merupakan D1, D2, D3, D4 (dalam urutan itu) pin papan MCU ESP8266 saya dan kabel oranye kecil yang membawa katoda ke GND (bertanda G di papan saya). Jika Anda malas, Anda dapat melakukan apa yang Anda lihat pada gambar kedua. Cukup gunakan papan pengembangan dengan LED yang disertakan (seperti "ESP-202", lihat gambar - sekitar 3,50-5,00€ termasuk pengiriman). Anda kemudian dapat menghubungkannya ke daya USB atau menggunakan baterai yang disertakan, menggambar antarmuka di selembar kertas dan menempelkannya ke dinding. Selesai. Untuk papan khusus ini, portnya adalah:

int userPins[numUser] = {5, 4, 2, 14, 16};

dari atas ke bawah.

Langkah 4: Outlook/Referensi

Inilah yang masih saya rencanakan: 1. Membuat housing yang bagus (jelas) 2. Menambahkan GUI yang bagus untuk mengelola pengguna/LED/MAC/perangkat yang dikenal 3. Meningkatkan perpustakaan (lihat Github untuk itu) 4. Perbaiki: terkadang LED bereaksi lamban (dibutuhkan sedikit sampai mereka mati, setelah perangkat ditinggalkan) tanpa alasan yang jelas 5. Kaitkan benda itu di lorong dan mungkin beberapa lagi di sekitar rumahIngin mendapat masukan dari kalian! Dan seperti biasa, saya sangat senang melihat orang lain membuat apa yang Anda pikirkan, jadi luangkan waktu sebentar untuk berkomentar dan memposting gambar!:):) Beberapa referensi lagiSaya akan menautkan beberapa hal di sini, yang mungkin bisa membantu Anda: • Referensi TR-064 • Beberapa pria bermain-main dengan shell dan TR-064 (bagus untuk memahami API) • Wikipedia Harry Potter: Entri Jam Weasley • Beberapa orang membuat Jam Weasly yang indah, tetapi rumit*_*Ini didasarkan pada aplikasi untuk ponsel Anda yang mengambil lokasi Anda. Jika Anda berada di area tertentu yang telah ditentukan sebelumnya, lampu yang sesuai pada jam akan menyala. Bagi saya itu terlalu rumit dan harus banyak tempat di mana itu bisa rusak/gagal: • Aplikasi harus terus diperbarui • Setiap orang harus menggunakan aplikasi ini • Dan baik-baik saja dengan dampaknya pada privasi • Aplikasi hanya berfungsi dengan internet koneksi • Anda harus menggunakan server perantara untuk menghubungkan komunikasi (kecuali jika Anda ingin mengatur Anda terutama sebagai server dan membuka jaringan rumah Anda untuk lalu lintas luar - yay, perangkat IOT lain yang tidak aman langsung terhubung ke internet!) • The layanan perantara mungkin akan offline suatu hari nanti/mengubah API-nya, • …Anda memerlukan lebih banyak perangkat lunak. Lebih banyak perangkat lunak berarti lebih banyak tempat untuk melakukan kesalahan;) Tetapi, mereka melakukan pekerjaan yang luar biasa dan jika Anda ingin melakukan sesuatu seperti itu, kunjungi situs mereka, itu benar-benar hebat!

Direkomendasikan: