Menghubungi Arduino melalui internet tanpa port forward


13

Saya memiliki papan Arduino yang terhubung ke jaringan Wifi yang memiliki akses internet. Yang saya inginkan adalah, saya perlu menghubungi papan Arduino ini dari jaringan lain tanpa bantuan port forwarding di jaringan rumah Arduino. Saat ini yang saya lakukan adalah membuat Arduino melakukan ping ke server web saya dalam setiap interval dua detik, yang menurut saya tidak praktis.

Bagaimana cara perangkat seperti lampu LED wifi pintar terhubung ke Internet? Kami dapat mengoperasikannya dengan ponsel kami tanpa penerusan port atau penyesuaian konfigurasi router lainnya, bukan? Bagaimana mereka melakukannya?


Lihatlah CoAP, dan mungkin beberapa protokol IOT lainnya.
Sean Houlihane

Jawaban:


9

Untuk menghindari keharusan berada di jaringan yang memungkinkan lalu lintas masuk , Anda harus menyambungkan keluar ke server yang akan menyampaikan permintaan dari klien yang juga membuat koneksi keluar ke sana.

Ini pada dasarnya seperti model satelit komunikasi. Baik komputer atau telepon pengguna atau apa pun, dan perangkat IoT, memelihara tautan "naik" ke server ini di cloud, dan ia mengambil setiap pesan yang muncul di satu sisi dan mengirimkannya ke sisi lain, dan sebaliknya.

Ada banyak cara yang mungkin untuk mengimplementasikan server semacam itu. Salah satu yang saat ini sedang trendi adalah menjadikannya sebagai MQTT Broker . Di MQTT, klien (baik perangkat IoT dan perangkat pengguna) membuat koneksi keluar ke broker, dan pesan bagi-pakai yang dibagikan yang "dipublikasikan" pada "topik" oleh satu klien ke semua klien yang telah "berlangganan" ke "topik" " tema.

  • Karena sudah ada koneksi yang dibuat, broker dapat mengirimkan lalu lintas yang tidak diminta tanpa latensi interval jajak pendapat

  • Untuk menjaga koneksi tetap terhubung, lalu lintas keep-hidup sesekali dikirim

  • Jika koneksi terputus ada aturan untuk mencoba membangun kembali itu

  • Pada dasarnya, latensi yang terlihat hanya terjadi jika pialang mencoba menyampaikan pesan ke bawah, dan koneksi ternyata terputus dan belum diperbaiki, dalam hal ini pesan akan ditunda hingga koneksi kembali dilakukan. (Ada opsi untuk menyimpan pesan, menjatuhkannya, dll).


1
MQTT sepanjang jalan. Terima kasih untuk petunjuknya Chris. NodeJS + MQTT adalah caranya.
Jithesh Kt
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.