Kami sedang mengembangkan perangkat Z-Wave untuk mengendalikan penyedot debu iRobot Roomba



Tanpa pendahuluan berlebihan langsung ke titik. Apartemen ini diotomatisasi oleh teknologi Z-Wave, dan penyedot debu iRobot Roomba 770 tidak terhubung ke jaringan dengan cara apa pun dan dibersihkan sesuai dengan jadwalnya. Saatnya menambahkan penghisap debu ke jaringan Z-Wave! Papan Z-Wave untuk pengembang, Z-Uno, akan membantu saya dengan ini .
Apa manfaat otomatisasi penyedot debu dengan Z-Wave?
  • Kemampuan untuk dengan mudah mengkonfigurasi jadwal dari antarmuka Web
  • Dapatkan data dari penyedot debu tentang baterai dan sensor
  • Kelola dari aplikasi seluler
  • Gunakan dalam skenario mensimulasikan kehadiran seseorang di rumah


Dokumentasi manajemen untuk iRobot Roomba terbuka. Oleh karena itu komunikasi dengan penyedot debu terjadi melalui konektor Mini-DIN sesuai dengan UART dengan kecepatan 115200, TTL level 5V.



Semua dokumentasi pada Z-UNO tersedia di http://z-uno.z-wave.me/ , itu termasuk deskripsi dari semua fungsi yang tersedia, contoh, dan diagram.



Z-Uno menggunakan UART dengan level TTL 3.3V, jadi Anda perlu meletakkan pembagi tegangan dari resistor 1 kOhm dan 2.2 kOhm pada jalur Rx Z-UNO.



Saat menghubungkan Roomba ke Arduino, ada masalah bahwa Roomba menghasilkan arus yang sangat kecil pada Tx, sehingga data dapat hilang jika masalah serupa terjadi pada Z-UNO, maka Anda perlu menggunakan transistor dengan pembagi tegangan:


http://www.irobot.com/ ~ / media / MainSite / PDFs / Tentang / STEM / Buat / Arduino_Tutorial.pdf

Z-Uno dapat diaktifkan dari 3.3V, dari 5V melalui regulator tegangan standar dan dari 7 - 20V melalui regulator tegangan standar kedua. Selama pembersihan, tegangan suplai RoomR iRobot adalah sekitar 14V, ketika penyedot debu di pangkalan, tegangan naik menjadi 20V. Jika Anda menghubungkan Z-Uno ke RoomR iRobot secara langsung, regulator tegangan linier pada Z-Uno mulai memanas sangat banyak, yang akan mematikan daya dengan suhu, sehingga Anda perlu menggunakan radiator atau regulator tegangan Switching. Saya memilih opsi kedua dan menggunakan pengatur tegangan Cina MP1584EN yang sangat ringkas .



Karakteristik singkat dari regulator tegangan MP1584EN:
  • Tegangan input: 4.5-28V
  • Tegangan output: 0.8-20V (disesuaikan)
  • Output Saat Ini: 3A
  • Efisiensi: 96%

Regulator tegangan dan pembagi tegangan cocok di bagian belakang Z-UNO, sementara tidak meningkatkan dimensi papan.



Hubungkan Z-Uno ke iRobot Roomba 770:



Membersihkan Stasiun Dock


Dengan Sketch Cleaning-Dock, stasiun Z-Uno menerima perintah ON / OFF oleh radio dan mengirimkan perintah Clean and Seek Dock ke penyedot debu menggunakan penyedot debu UART. Saat menerima perintah radio, Z-Uno berkedip sekali dengan LED terintegrasi. Perintah radio on-off dapat dikirim oleh perangkat Z-Wave: key fob, switch, controller, dll.



Sketch Cleaning-Dock Station untuk Z-Uno Roomba
#define LED_PIN 13
byte roombaState = 0;
ZUNO_SETUP_CHANNELS(ZUNO_SWITCH_BINARY(getter, setter));

void setup() {
   pinMode(LED_PIN, OUTPUT);
   Serial1.begin(); 
}

void loop() { /*Empty*/ }

void setter(byte value) {
  digitalWrite (LED_PIN, HIGH); // Turn On LED
  if (value) {
    Serial1.write(128);  // Roomba START Communication
    Serial1.write(131);  // SAFE MODE
    Serial1.write(135);  // Clean
    roombaState = 1;
  }
  else {
    digitalWrite (LED_PIN, LOW);
    Serial1.write(128);  // Roomba START Communication
    Serial1.write(131);  // SAFE MODE
    Serial1.write(143);  // Seek Dock
    roombaState = 0;
  }
}
 
byte getter() {
  return roombaState;
}



Setelah mengisi sketsa, Anda perlu menambahkan Z-Uno ke pengontrol Z-Wave. Z-Uno muncul sebagai sakelar dengan tombol Nyala dan Mati.



Pembacaan baterai


Tambahkan ke fungsi mengaktifkan / menonaktifkan fungsi penyedot debu untuk membaca pengisian daya baterai. Dengan sketsa Reading, muatan baterai Z-Uno secara berkala atau atas permintaan mengirimkan daya baterai penyedot debu Roomba ke pengontrol Z-Wave.


Sketch Reading Roomba Vacuum Cleaner Baterai dan Stasiun Dermaga Pembersih untuk Z-Uno
#define LED_PIN 13
byte roombaState = 0;
word batteryValue = 0;

ZUNO_SETUP_CHANNELS(ZUNO_SWITCH_BINARY(getter, setter),ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_VOLTAGE, SENSOR_MULTILEVEL_SCALE_VOLT, SENSOR_MULTILEVEL_SIZE_ONE_BYTE, 1, getterBattery));

void setup() {
   pinMode(LED_PIN, OUTPUT);
   Serial1.begin(); 
}

void loop() { 
  // Get battery value every 1 minute
  byte data[2] = {0,0}; // array to store data from battery
  byte i = 0;
  Serial1.write(142); // Send a packet of sensor data bytes
  Serial1.write(22);  // Get battery value
  delay(200);
  while (Serial1.available()) { 
    data[i++] = Serial1.read();
  }

  // highbyte is shifted left eight bits, lowbyte is added to highbyte    
  // encoder_count=highbyte<<8+lowbyte
  batteryValue= (data[0]<<8)+data[1];

  zunoSendReport(2); // Send Battery every 30 seconds
  delay(30000);
}

void setter(byte value) {
  if (value) {
    digitalWrite (LED_PIN, HIGH);
    Serial1.write(128);  // Roomba START Communication
    Serial1.write(131);  // SAFE MODE
    Serial1.write(135);  // Clean
    roombaState = 1;
  }
  else {
    digitalWrite (LED_PIN, LOW);
    Serial1.write(128);  // Roomba START Communication
    Serial1.write(131);  // SAFE MODE
    Serial1.write(135);  // Stop Clean
    roombaState = 0;
  }
}
 
byte getter() {
  return roombaState;
}

byte getterBattery() {
  return batteryValue;
}



Sekarang Z-Uno ditampilkan sebagai perangkat 2-saluran dengan fungsi sakelar dan sensor multi-level, mis. Tombol Nyala / Mati dan pengisian dalam volt ditampilkan.



Jika perlu, Anda dapat menambahkan kontrol langsung, menerapkan pembacaan sensor suhu, laporan pertemuan dengan dinding dan pemberitahuan jika tidak mungkin untuk dilewati. Anda dapat menambahkan fitur yang memungkinkan Anda menemukan macet di bawah sofa Roomba dengan mengirimkan perintah untuk memainkan melodi.

Z-Uno tentu bukan satu-satunya pilihan untuk kontrol radio Roomba, ada RooWiFi dan banyak proyek seperti Arduino + ESP8266, tetapi jika Anda sudah memiliki jaringan Z-Wave, maka mengapa tidak menggunakan Z-Uno untuk mengontrol Roomba Anda!



Bagi mereka yang ingin menghemat uang, toko 5smart.ru memberikan diskon 10% untuk Z-Uno dan semua peralatan Z-Wave. Kupon GT_SUMMER .

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


All Articles