Timer Arduino

Selamat siang Nama saya Nikita Sergeevich, saya berusia 14 tahun dan dalam posting ini saya ingin memberi tahu Anda tentang perangkat (dan aplikasi) yang saya kembangkan setengah tahun yang lalu, karena perangkat yang sudah selesai disolder dan dirakit oleh ayah saya. Meskipun Anda mungkin telah melihat perangkat seperti itu lebih dari sekali, tetapi itu tidak mengganggu saya.

Semua ini dibuat untuk secara otomatis menghidupkan dan mematikan lampu di kandang ayam, tetapi juga berlaku untuk tujuan lain.





Perangkat yang sudah jadi dan terpasang dapat mengirim ke pin digital arduino 1 atau 0 yang ditentukan dalam periode dari dan ke waktu yang ditentukan, hingga tepat beberapa menit (di luar periode, nilai yang berlawanan dengan yang ditentukan dalam aplikasi saat menambahkan timer disediakan).

Semua parameter ditunjukkan dalam aplikasi. Tapi dari sini lebih terinci ...

Ada aplikasi untuk android di mana Anda harus terhubung ke modul bluetooth dan menambahkan timer. Aplikasi ini intuitif dan saya pikir tidak akan ada masalah dengannya.





File .apk akan berada di folder proyek ini.

Item yang diperlukan:

  1. Arduino;
  2. modul rtc ds1307;
  3. modul bluetooth HC-05;
  4. elemen penghubung (mis. kabel);
  5. firmware untuk Arduino; sketsa itu rumit menurut saya dan lebih baik tidak masuk ke detail.
  6. aplikasi untuk android;

Kami menangani arduino dan plug-in.

Ya, paragraf 1-4:



arduino - hc-05 5v - vcc gnd - gnd TX1 - RXD RX0 - TXD arduino - ds1307 5v - 5v gnd - gnd A5 - scl A4 - sda 

Jangan lupa untuk melepaskan pin RX0 pada arduino saat memuat sketsa. Apakah Anda mengatakan sketsa?

5. Sketsa ke studio:

 #include <Wire.h> //     i2c #include <iarduino_RTC.h> //  rtc ( c,    (Timer->firmware_for_timer->iarduino_RTC)) #include <EEPROM.h> //      iarduino_RTC time(RTC_DS1307); //        int values; //    unsigned int to_minutes(unsigned int hours, unsigned int minutes)//        { return (60*hours)+minutes; } void setup() { time.begin(); //   Serial.begin(9600); //   } void loop() { if(Serial.available() > 0) // -  { values = Serial.read(); time.settime(0,-1, values); //    delay(50); values = Serial.read(); time.settime(0, values); //    delay(50); //   for (int i = 0 ; i < EEPROM.length() ; i++) { EEPROM.write(i, 0); } ////////////////////////////////// values = Serial.read(); delay(50); //    ,    while (values > 0) //    { for(int i = 0; i < 7; ++i) { EEPROM.write(EEPROM.read(EEPROM.length() - 1) * 7 + i, Serial.read()); delay(50); } EEPROM.write(EEPROM.length() - 1, EEPROM.read(EEPROM.length() - 1) + 1); values = Serial.read(); delay(50); } ///////////////////////////////////////// } //    for(int i = 0; i < EEPROM.read(EEPROM.length() - 1); ++i) { if(EEPROM.read(i * 7 + 0) == 1) //    { bool find = 0; // time.gettime(); if((to_minutes(EEPROM.read(i * 7 + 1), EEPROM.read(i * 7 + 2)) <= to_minutes(time.Hours, time.minutes)) && //     (to_minutes(EEPROM.read(i * 7 + 3), EEPROM.read(i * 7 + 4)) > to_minutes(time.Hours, time.minutes))) { pinMode(EEPROM.read(i * 7 + 5), OUTPUT); //     digitalWrite(EEPROM.read(i * 7 + 5), EEPROM.read(i * 7 + 6)); //     } else //     { //      for (int j = 0; j < EEPROM.read(EEPROM.length() - 1); ++j) { if(EEPROM.read(i * 7 + 5) == EEPROM.read(j * 7 + 5) && (i != j) && (EEPROM.read(j * 7 + 0) == 1)) { //              if((to_minutes(EEPROM.read(j * 7 + 1), EEPROM.read(j * 7 + 2)) <= to_minutes(time.Hours, time.minutes)) && (to_minutes(EEPROM.read(j * 7 + 3), EEPROM.read(j * 7 + 4)) > to_minutes(time.Hours, time.minutes))) //     { pinMode(EEPROM.read(i * 7 + 5), OUTPUT); //     digitalWrite(EEPROM.read(i * 7 + 5), EEPROM.read(j * 7 + 6)); //     find = 1; //  } } } if(find == 0) //        { pinMode(EEPROM.read(i * 7 + 5), OUTPUT); //     digitalWrite(EEPROM.read(i * 7 + 5), !EEPROM.read(i * 7 + 6)); //      } } } } } 

Tetapi semua ini tanpa aplikasi akan menjadi dingin dan tidak bergerak seperti batu, jadi teruskan.

6.
Aplikasi ini intuitif dan saya pikir tidak akan ada masalah dengannya.
Tapi lebih baik langsung mengetahuinya. Saat pertama kali masuk ke aplikasi, Anda harus menyambungkan ke modul bluetooth, untuk ini, klik "sinkronisasi perangkat"
dan pilih modul kami. Dengan kotak centang "sambungkan otomatis", telepon itu sendiri akan mencoba menyambung ke modul bluetooth ketika aplikasi dibuka (chip ini diambil dari alex gyver). "Pengatur Waktu" adalah daftar semua pengatur waktu dan pencarian mereka berdasarkan nama. Mengklik nama timer membuka layar untuk mengubah timer ini. Di sini (di mana daftar pengatur waktu) terletak di sudut kanan bawah "+" dengan mengklik di mana layar pengatur waktu terbuka, di mana ditunjukkan:

  • namanya
  • mulai jam berapa (jam menit)
  • jam berapa (jam menit)
  • pin yang dikendalikan
  • menghargai dia
  • dan nyatakan (apakah Arduino akan menyalakan atau mematikannya pada waktu yang tepat).


Arsip Proyek;
Ada satu aplikasi.

Mengenai hal ini saya ingin mengucapkan terima kasih atas perhatian Anda dan mengatakan bahwa jika Anda menemukan kusen atau bug - jangan ragu untuk menulisnya, kami akan memperbaikinya.

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


All Articles