Membuat jaringan sendiri perangkat buatan sendiri berdasarkan Arduino (Bagian 1)

Selamat siang, habravchane! Hari ini saya akan memberi tahu Anda tentang integrasi Arduino dengan PC di Windows dan perangkat lain. Sudah tahun 2018, papan Arduino saya dari berbagai model akhirnya datang kepada saya.

Saya sudah lama ingin membangun rumah yang cerdas, dan memutuskan untuk menggunakan platform khusus ini. Mengapa Yah, saya tahu C # cukup baik dan sedikit C ++, tetapi seperti yang Anda tahu, firmware untuk Arduino ditulis pada plus yang diubah. Selain itu, platform ini memiliki konverter digital-ke-analog, yang menyederhanakan pekerjaan dengan sensor analog. Selain itu, platform ini sangat terkenal dan memiliki basis modular yang besar.

Dengan semua kecintaan saya pada mikrokontroler, saya lebih suka menghitung semuanya di Windows, dan semua kekuatan saya ada dalam aplikasi .NET. Ini masalah saya. Saya tidak bisa memahami lingkungan pengembangan IDE Arduino. Saya harus terbiasa dengan hal itu. Namun, proyek pemanasan sederhana masih bekerja sebagian besar di PC. Yang tertarik dengan topik ini, saya minta potongan!

Eksperimen pertama saya adalah pertukaran informasi sederhana melalui USB (port serial), di mana saya mengirim paket dengan perintah sederhana untuk melakukan tindakan pada mikrokontroler. Sebagai contoh, saya menggunakan model Arduino UNO.



Ini adalah antarmuka program untuk Windows. "Squeak" - memberikan sinyal ke pin (pin Arduino) pada nomor 10 dari sinyal listrik konstan, yang ditenagai oleh buzzer yang saya sambungkan. "LED" - pasokan arus searah ke pin 13, yang secara default pada pengontrol terhubung ke LED bawaan, yang berfungsi untuk men-debug sketsa (firmware).



Namun, semua fungsi ini justru terletak pada controller.

Apa yang dilakukan program? Cukup kirim nomor ke port! "0" berarti menonaktifkan
LED, β€œ1” - nyalakan LED, β€œ2” - matikan bel, β€œ3” - nyalakan
bel. Semuanya dilakukan menggunakan elemen dasar Windows Forms. Jika
yang tertarik, nilai tukar data 115200 baud. Terima kasih
Untuk ini, saya dapat dengan mudah melihat isi pesan dari mikrokontroler di
IDE Arduino.



Saya pikir sekarang banyak yang ingin tahu apa yang ada dalam firmware mikrokontroler. Karena itu sudah lama sekali, tidak mudah untuk mencari kode firmware Arduino, tetapi file itu masih ditemukan!

Seluruh kode
Makan sesuatu, ini adalah versi lama file, tanpa bel, hanya dengan LED.

int i = 0; //       int led = 13; void setup() {  Serial.begin(115200);   //      pinMode(led, OUTPUT); //    13-      } void loop() {  i = i + 1; //         String stringOne = "Info from Arduino ";  stringOne +=i; //  Serial.println(stringOne); //     char incomingChar;  if (Serial.available() > 0)  {    //           incomingChar = Serial.read();   //        LED    switch (incomingChar)    {      case '1': digitalWrite(led, HIGH);        break;      case '0': digitalWrite(led, LOW);        break;    }  }  delay(300); } 


Namun, ini hanyalah sebuah contoh. Satu-satunya - sistem ini harus memiliki hub - yaitu, titik persimpangan semua perangkat. Dan ini secara instan menghancurkan seluruh sistem desentralisasi.

Oleh karena itu kesimpulan - metode penggunaan hub hanya cocok untuk pengumpulan dan manajemen informasi. Hub diperlukan, misalnya, untuk mengakses perangkat di Internet, tetapi bukan sebagai titik komunikasi utama di antara mereka.

Misalkan kita dapat menghubungkan semua perangkat menggunakan I2C atau menggunakan protokol kita sendiri. Tetapi bagaimana cara menjatuhkan data di hub? Dan secara umum, apa yang akan berfungsi sebagai hub? Opsi 3:

  • Hub dari router.
  • Hub dari papan Arduino lain.
  • Hub dari Raspberry Pi.

Mari kita pertimbangkan semuanya pada gilirannya. Jadi, routernya. Untuk memulainya, router diperlukan tidak hanya, tetapi dengan Linux on board dan port USB untuk menghubungkan papan Arduino dari sistem. Apa pun karena jaringan akan terdiri dari sejumlah besar perangkat dan "obrolan" umum, tempat semua perangkat mengirim pesan tentang statusnya. Dari router, misalnya, "Linksys E2100L 802.11b / g / n" cocok.



Seperti yang Anda lihat, router ini memiliki konektor USB, dan karakteristik menunjukkan bahwa semuanya berputar di Linux. Saya pribadi tidak menggunakannya, tetapi sesuai dengan karakteristik itu akan cocok untuk kita. Dan ini BUKAN iklan.

Dalam kasus router, Anda dapat menjatuhkan data pada port serial, seperti pada Windows, dan menjalankan skrip - penangan pesan di Linux (maaf, jika sesuatu tidak disebut demikian, saya tidak terbiasa dengan Linux).

Pertimbangkan opsi 2. Papan Arduino lain. Model Nano, Mini, Mikro tidak lagi cocok di sini. Perlu model Arduino, baik UNO atau MEGA. Tapi jangan menghubungkan papan ke jaringan. Sebagai pilihan, gunakan Arduino UNO WI-FI, atau apa yang lebih dapat diandalkan Arduino Yun atau Tian. Masalah yang terakhir adalah pengunduhan dan harga yang relatif lama, dan secara fungsional mereka terlihat seperti router yang sama, karena mereka bekerja di Linux.

Cara terbaik adalah menggunakan Ethernet Shield. Ini adalah papan ekspansi untuk Arduino, yang dikenakan di atas dan memungkinkan Anda untuk meningkatkan server WEB sederhana di perangkat Anda dengan skrip PHP sederhana untuk memproses informasi dari perangkat lain di jaringan.



Beberapa model papan ekspansi ini dilengkapi dengan slot untuk kartu memori micro-sd, yang memungkinkan untuk logging lokal selain remote control.

Opsi 3. Hampir sama dengan yang sebelumnya dan yang paling tidak saya sukai. Menggunakan komputer mikro Raspberry Pi. Ini adalah komputer. Setuju, untuk menutup seluruh komputer untuk tugas ini, meskipun sangat lemah - pemborosan sumber daya tambahan. Baik moneter dan komputasi. Secara pribadi, saya akan menggunakan Raspberry Pi hanya sebagai server pengawasan video atau sebagai program manajemen rumah pintar yang sudah jadi seperti Major DoMo dan sejenisnya. Anda juga dapat membawanya ke tugas-tugas seperti bot dalam pesan instan dan algoritma kompleks untuk mengendalikan iklim mikro, atau dalam kasus yang paling tidak mungkin, Anda dapat menempatkan kecerdasan buatan di sana.



Seperti yang Anda lihat, Raspberry Pi 3 memiliki:

  • 4 port USB
  • 1 port Ethernet;
  • 1 port HDMI
  • Wi-Fi
  • Antarmuka DSI untuk menghubungkan layar Raspberry Pi dengan layar sentuh;
  • Slot untuk kartu micro-sd.

Dan masih banyak lagi. Namun terlepas dari semua kelebihannya, Raspberry Pi tidak cocok sebagai hub.

Kesimpulan: Arduino UNO + Ethernet Shield lebih cocok sebagai hub bagi saya secara pribadi. Dari semua opsi yang dipertimbangkan, ini adalah yang termurah dan termudah untuk diterapkan.



Dalam konfigurasi ini, operabilitas sistem tidak bergantung pada hub. Dan bahkan jika hub macet, itu tidak akan mempengaruhi kinerja jaringan itu sendiri. Jaringan hanya akan kehilangan akses ke Internet.

Saya pikir bagian pertama dapat diselesaikan dalam hal ini. Sampai ketemu lagi!

Source: https://habr.com/ru/post/id414225/


All Articles