Isi kandungan:
- Bekalan
- Langkah 1: Mari Buat Suapan di Adafruit
- Langkah 2: Sekarang Mari Buat Papan Pemuka
- Langkah 3: Dapatkan Kunci Kami
- Langkah 4: Buka Contoh Feed Feed
- Langkah 5: Mari Siapkan Sambungan Kita
- Langkah 6: Periksa Sambungan ke Adafruit IO
- Langkah 7: Mari LED
- Langkah 8: Tambahkan Pemasa ke Pemasa
- Langkah 9: Kira-kira
- Langkah 10: Jadikannya Dikawal Jauh: Bahagian I
- Langkah 11: Jadikannya Dikawal Jauh: Bahagian II
- Langkah 12: Main di Sekitar! Kita Selesai… atau Adakah Kita?
- Langkah 13: EKSTRA: Buat Butang Sekejap
- Langkah 14: EKSTRA: Tambahkan Fungsi Tetapkan Semula
Video: Pemasa Jarak Jauh Dengan NodeMCU: 14 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Di sini kita akan membuat pemasa menggunakan NodeMCU dan Adafruit. Kami akan memaparkan pemasa kami dengan jalur LED dan kami dapat mengawalnya menggunakan telefon atau komputer kami!
Matlamat kami:
Buat pemasa menggunakan jalur LED yang kita dapat: mulakan, jeda dan tetapkan semula menggunakan telefon atau komputer kita.
Bekalan
Perkakasan:
- NodeMCU ESP 8266
- Jalur LED Adafruit NeoPixel
Perpustakaan:
- Adafruit_NeoPixel.h
- AdafruitIO_WiFi.h
Lain-lain:
Sambungan WiFi yang baik
Langkah 1: Mari Buat Suapan di Adafruit
Setelah mendapat semua yang kami perlukan, kami sudah bersedia untuk mula membina! Pertama sekali kita mesti membuat suapan di Adafruit. Adafruit adalah perkhidmatan yang menjadikan kami sangat mudah untuk menghubungkan Arduino kami ke internet dan menjadikan ciri kawalan jauh yang berguna. Sekiranya anda belum melakukannya, daftar ke Adafruit.
Sekarang mari buat suapan baru
Kami boleh menamakan suapan kami apa sahaja yang kami mahukan, saya memanggilnya 'pemasa'.
Suapan yang dilakukan adalah merekod semua yang kami lakukan di papan pemuka kami (yang akan kami buat hanya dalam satu minit) dan menghantar data tersebut ke papan kami, tetapi itulah sesuatu yang akan kami perhatikan setelah kami mempunyai data yang akan dihantar.
Langkah 2: Sekarang Mari Buat Papan Pemuka
Sekarang dengan cara yang sama seperti membuat suapan, kami akan membuat Papan Pemuka baru. Saya akan memanggil papan pemuka saya: 'antara muka pemasa' kerana pada dasarnya itulah papan pemuka kami: antara muka dengan butang untuk mengawal pemasa kami.
Langkah 3: Dapatkan Kunci Kami
Sekiranya kami ingin menyambungkan Arduino ke suapan kami, kami perlu mendapatkan kunci Adafruit kami, ini adalah kata laluan rahsia anda yang akan memastikan hanya anda yang dapat menyambung ke suapan anda.
Anda boleh mendapatkan kunci anda dengan mengklik butang Kunci AIO kuning di kanan atas skrin anda di Adafruit.
Simpan kunci ini di suatu tempat, kita akan memerlukannya kemudian.
Jangan berkongsi kunci anda! Jika tidak, orang yang mempunyai niat buruk boleh menyambung ke suapan dan peranti anda.
Langkah 4: Buka Contoh Feed Feed
Sekarang mari buka Arduino IDE kami dan mulakan proses pengekodan. Pertama sekali, kita perlu memasang perpustakaan Adafruit IO Arduino.
Tidak tahu cara memasang perpustakaan? ini adalah panduan hebat Adafruit: Arduino Libraries
Adafruit menawarkan banyak contoh yang telah dibuat untuk kita gunakan dan pelajari. Salah satu contoh ini ialah: adafruitio_21_feed_read. Anda boleh mendapatkan contoh ini di sini: Fail - Contoh Adafruit IO Arduino adafruitio_21_feed_read
(maafkan antara muka Belanda saya dalam gambar)
Langkah 5: Mari Siapkan Sambungan Kita
Sekiranya anda berjaya membuka sketsa adafruitio_21_feed_read, anda akan melihat 2 tab dalam lakaran anda: adafruitio_21_feed_read dan config.h. Sketsa ini dibuat supaya kita dapat menyambung ke umpan yang kita buat pada langkah 1.
Untuk menyambung ke suapan ini, kami perlu mengisi beberapa butiran mengenai WiFi dan akaun Adafruit kami,
Mari pergi ke config.h, di sini kita akan mengisi butiran berikut:
Nama pengguna Adafruit anda:
#tentukan IO_USERNAME "joopert"
Kunci Adafruit anda:
#tentukan IO_KEY "1234567890abcdefghijklmnop"
Nama WiFi anda:
#tentukan WIFI_SSID "MyWifi"
Dan kata laluan WiFi anda:
#tentukan WIFI_PASS "aVerySecretPassword"
Sekarang mari kita kembali ke tab adafruitio_21_feed_read dan isikan:
Nama pengguna Adafruit anda … sekali lagi:
#tentukan FEED_OWNER "joopert"
Dan akhirnya nama umpan anda (dari suapan yang kami buat pada langkah 1):
AdafruitIO_Feed * sharedFeed = io.feed ("pemasa", FEED_OWNER);
Langkah 6: Periksa Sambungan ke Adafruit IO
Untuk memeriksa apakah langkah-langkah yang kita ambil sebelumnya telah dilaksanakan dengan betul, kita akan memuat naik lakaran kita ke NodeMCU. Sekiranya anda membuka monitor bersiri anda, ia akan kelihatan seperti gambar di atas. Mula-mula monitor bersiri menunjukkan bahawa ia cuba menyambung ke WiFi anda dan Adafruit. jika lengkap, ia mesti mengatakan:
Adafruit IO bersambung
Ini adalah berita hebat! Sekarang kita boleh mula menambahkan fungsi pada pemasa kita …
Langkah 7: Mari LED
Kini tiba masanya untuk menghidupkan jalur LED kami!
Sambungkan jalur LED anda ke PIN D5 (jika anda tidak dapat menemukan D5 sambungkannya ke PIN lain dan ubah LED_PIN dalam kodnya).
Tentukan jalur LED
Kod berikut akan menambah perpustakaan NeoPixel (ketahui lebih lanjut mengenai perpustakaan ini di sini: https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-use) dan pastikan Arduino kami mengetahui di mana jalur LED kami dan berapa banyak lampu yang dimilikinya. Sekiranya jalur LED anda mempunyai spesifikasi yang berbeza, ubah dalam kodnya.
Tambahkan kod berikut DI ATAS persediaan kosong ():
// sediakan sambungan NeoPixel # include #ifdef _AVR_ #include #endif
#define LED_PIN D5 // Di manakah jalur LED disambungkan?
#define LED_COUNT 30 // Berapa piksel yang dimilikinya?
#tentukan BRIGHTNESS 50 // Kecerahan NeoPixel, 0 (min) hingga 255 (maksimum)
Jalur Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
Mulakan jalur LED
Sekarang kita akan memulakan jalur LED kita dan menetapkan kecerahan (kecerahan berlangsung dari 0 min hingga 255 maksimum, tetapi saya cadangkan 50… 255 sangat terang).
Tambahkan kod berikut DALAM persediaan kosong ():
jalur.begin (); // INISIASI objek NeoPixel strip (DIPERLUKAN) strip.show (); // Matikan semua piksel ASAP strip.setBrightness (50); // Tetapkan BRIGHTNESS kepada kira-kira 1/5 (maksimum = 255)
ledsOn (); // Memanggil fungsi untuk menghidupkan setiap LED satu persatu
Hidupkan lampu
Mungkin anda sudah menyedari bahawa kami memanggil fungsi yang belum ada, itu akan menjadi bahagian pengekodan kami yang seterusnya. Sekiranya kita mahu menyalakan lampu kita harus membuat 'untuk gelung' yang menyalakan setiap LED LED satu persatu (tidak tahu apa itu gelung? Lihat di sini: www.arduino.cc/reference/ en / bahasa / struktur / kawalan-struktur / untuk /).
Sekarang kita akan membuat fungsi: ledsOn ();
Tambahkan kod berikut di BAWAH pemegang kosongMesej ():
kekosongan ledsOn () {untuk (int i = 0; i <strip.numPixels (); i ++) {// Untuk setiap piksel dalam jalur… strip.setPixelColor (i, 0, 0, 255); // Tetapkan warna piksel ke jalur biru.show (); // Kemas kini jalur agar sepadan}}
Muat naik
Sekarang adalah bahagian yang menyeronokkan, mari memuat naik kod kami ke NodeMCU … Sekiranya semuanya berfungsi dengan betul jalur LED anda kini harus menjadi biru sepenuhnya!
Tidak ada piksel yang muncul?: Adakah anda telah menyambungkan jalur ke PIN yang betul? Atau mungkin sambungan internet anda terputus.
Adakah hanya beberapa piksel yang tidak muncul?: Periksa sama ada anda menetapkan jumlah piksel yang betul!
Langkah 8: Tambahkan Pemasa ke Pemasa
Sekarang kita akan memastikan bahawa pemasa kita sebenarnya … baik … kali, sesuatu.
Terdapat pelbagai cara untuk melakukan penentuan waktu dengan Arduino, salah satunya adalah kelewatan (), ini menghentikan pemprosesan papan kami untuk jangka masa yang ditentukan. Kami tidak akan menggunakannya kerana Arduino kami pada dasarnya membeku semasa penundaan, dan kami mahu papan kami sentiasa dikemas kini. Oleh itu, kita akan menggunakan Millis (), ini adalah cara yang lebih elegan untuk melakukan pemasaan di Arduino, dengan Millis () kita masih dapat menjalankan kod di antara selang waktu.
Sekiranya anda berminat dengan cara ini, anda boleh membaca artikel ini:
Mari tambah kod untuk Millis ():
Letakkan kod ini DI ATAS persediaan kosong ()
lama tidak ditandatangani sebelumnyaMillis = 0; // akan menyimpan kali terakhir jalur LED dikemas kini selang = 1000; // selang pemasa kami (milisaat)
Dan mari masukkan kod ini DI gelung kosong ():
arus panjang yang tidak ditandatanganiMillis = millis ();// mulakan TIMER RYTHM ********************************************* ********* if (currentMillis - sebelumnyaMillis> = selang) {sebelumnyaMillis = currentMillis;
// tamat RYTHM TIMER ********************************************* ***********
Yang kami buat hanyalah membuat irama agar jalur LED kami mematikan LED, pada langkah seterusnya kami akan menambahkan kod untuk melakukan begitu sahaja.
Langkah 9: Kira-kira
Dalam langkah ini: kami akan membuat fungsi yang akan memastikan bahawa setiap saat (atau selang apa pun yang anda tetapkan) kami mematikan SATU LED di hujung jalur sehingga semua LED kami mati.
Kami akan membuat 'int' di bahagian atas yang disebut 'leds'. Ini kemudian akan memberitahu pemasa kita berapa banyak petunjuk yang masih perlu dimatikan.
Tambahkan kod berikut DI ATAS persediaan kosong ():
int led = LED_COUNT-1; // tels berapa piksel yang harus dinyalakan
Sekarang mari kita tambahkan fungsi 'timer ();', ini akan mematikan lampu setiap saat
Tambahkan kod berikut DI BAWAH led kosongOn ():
pemasa tidak sah () {strip.setPixelColor (leds, 0, 0, 0);
jika (leds> -1) {leds--; } lain {blinkie (); }}
Kami ingin memberi maklum balas kepada pengguna bahawa pemasa selesai setelah semua lampu mati. Dengan 'blinkie ();' LED akan berkelip merah setelah pemasa selesai!
Tambahkan kod berikut DI ATAS persediaan kosong ():
int blinkStatus = 1; // memberitahu blinkie (); berfungsi sama ada lampu harus menyala atau mati
Tambahkan kod berikut DI BAWAH pemasa kosong ():
batal blinkie () {if (blinkStatus == 1) {
blinkStatus = 0; strip.clear (); } lain {blinkStatus = 1; untuk (int i = 0; i <strip.numPixels (); i ++) {// Untuk setiap piksel dalam jalur… strip.setPixelColor (i, 255, 0, 0); // Tetapkan warna pixel (dalam RAM) strip.show (); // Kemas kini jalur agar sepadan}}}}
Akhirnya kita harus memanggil fungsi dalam gelung kosong kita ();, Masih ingat dengan TIMER RYTHM yang kita tambahkan pada langkah 8? Dalam pernyataan if ini, kami akan memanggil fungsi pemasa ();.
TIMER RYTHM kini kelihatan seperti ini:
// mulakan TIMER RYTHM ********************************************* *********
if (currentMillis - sebelumnyaMillis> = selang) {sebelumnyaMillis = currentMillis; pemasa (); strip.show ();} // akhir RYTHM TIMER ************************************** ******************
Sekarang muat naik kod ini!
Sekarang jalur LED anda harus mematikan 1 LED setiap saat dan berkelip merah apabila selesai…
Sekarang mari kita buat kawalan jauh ibu kekasih ini!
Langkah 10: Jadikannya Dikawal Jauh: Bahagian I
Kami mempunyai pemasa kami, semuanya baik-baik saja dan bagus tetapi saya berjanji bahawa anda akan dapat mengawalnya dengan telefon anda bukan? Mari memasuki peringkat akhir projek kami: menjadikan pemasa kami dikawal jauh.
Masih terbuka tab Adafruit anda? Mari pergi ke kembali ke io.adafruit.com dan mari pergi ke papan pemuka antara muka pemasa kami dan buat blok baru: TOGGLE
- Sambungkan togol ke suapan TIMER
- Tetapkan nilai ON ke: 1
- Tetapkan nilai OFF ke: 0
Sebabnya ialah Adafruit tidak menghantar data teks ke NodeMCU kami, tetapi hanya nombor.
Anda juga boleh memberikan nama Toggle jika anda suka, mungkin: 'Suis hidup / mati'
Sekarang mari kita kembali ke Arduino IDE
Hanya untuk memastikan kod kami terkini, mari kita MENGGUNAKAN kod kita sekali lagi.
BUKA PEMANTAU SERIUS setelah selesai memuat naik dan TEKANKAN TOGGLE di papan pemuka Adafruit kami beberapa kali. Kita seharusnya melihat sesuatu seperti ini muncul di monitor bersiri kami:
diterima <- 0 diterima <- 1 diterima <- 0 diterima <- 1 diterima <- 0
Ini bermaksud bahawa kita sebenarnya boleh menghantar kawalan ke NodeMCU kita!
Sekiranya anda tidak menerima mesej ini, periksa apakah Data Adafruit anda di config.h anda masih betul.
Langkah 11: Jadikannya Dikawal Jauh: Bahagian II
Sekarang yang tinggal hanyalah melakukan sesuatu dengan kawalan yang kami terima.
Untuk melakukan itu, kita mesti mengubah TIMER RYTHM jika penyataan dalam gelung kosong (); sedikit.
Kami akan memberitahu NodeMCU kami bahawa ia hanya boleh memulakan pemasa setelah kami menerima '1' (yang bermaksud: AKTIF) dari Adafruit.
Pertama mari kita mengumpulkan data yang dihantar oleh Adafruit kepada kita
Tambahkan kod berikut DI ATAS persediaan kosong ():
int adaData; // mengumpulkan data yang AdaFruit hantar kepada kami
Sekarang mari kita mengumpulkan data itu
Tambahkan kod berikut INSIDE the void handleMessage ():
adaData = data-> toInt ();
Mari ubah gelung kekosongan kami ();
TIMER RYTHM kini kelihatan seperti ini:
// mulakan TIMER RYTHM ********************************************* ********* if (currentMillis - sebelumnyaMillis> = selang) {sebelumnyaMillis = currentMillis; if (adaData == 0) {Serial.println ("Saya tidak berjalan"); } lain jika (adaData == 1) {pemasa (); } strip.show (); } // tamat RYTHM TIMER ******************************************** ************
TINGKATKAN kod anda …
Sekarang anda seharusnya dapat menghidupkan dan mematikan pemasa dengan menggunakan suis di Adafruit!
Langkah 12: Main di Sekitar! Kita Selesai… atau Adakah Kita?
Sekarang anda mesti mempunyai pemasa jarak jauh yang berfungsi sepenuhnya! Sekiranya itu untuk anda, terima kasih kerana menyertai projek ini!
Sekiranya anda ingin meneruskan sedikit lebih lama, dalam beberapa langkah seterusnya kami akan menambah butang RESET untuk pemasa kami!
Langkah 13: EKSTRA: Buat Butang Sekejap
Mari kembali ke papan pemuka kami. Sekarang kita mahu MEMBUAT BLOK BARU lagi.
- Buat butang Momentary
- Sambungkannya ke suapan 'pemasa'
- Tetapkan nilai tekan ke: 2
- HILANGKAN nilai pelepasan
- Beri warna yang bagus!
Dengan senang butang sekejap sudah dipanggil 'Reset'!
Setelah anda membuat ujian blok ini, butang berfungsi jika anda menerima:
diterima <- 2
Di monitor bersiri anda.
Sekiranya anda tidak melihat mesej ini, cuba muat naik semula lakaran tersebut
Langkah 14: EKSTRA: Tambahkan Fungsi Tetapkan Semula
Untuk membuat butang reset melakukan apa sahaja, kita perlu menambah fungsi yang menetapkan semula semua LED kembali ke keadaan semula.
Tambahkan kod berikut DI BAWAH blinkie kekosongan ():
jalankan semula tidak sah () {leds = LED_COUNT; ledsOn (); }
Sekarang yang tinggal hanyalah memanggil fungsi kita, untuk itu kita mesti menukar TIMER RYTHM untuk kali terakhir
TIMER RYTHM kini kelihatan seperti ini:
// mulakan TIMER RYTHM ********************************************* ********* if (currentMillis - sebelumnyaMillis> = selang) {sebelumnyaMillis = currentMillis if (adaData == 0) {Serial.println ("im tidak berjalan"); } lain jika (adaData == 1) {pemasa (); } lain jika (adaData == 2) {jalankan semula (); } strip.show (); } // tamat RYTHM TIMER ******************************************** ************
TINGKATKAN kod anda …
Sekarang anda juga boleh mengatur semula pemasa dengan menekan butang!
Disyorkan:
ESP8266 - Pengairan Taman Dengan Pemasa dan Alat Kawalan Jauh Melalui Internet / ESP8266: 7 Langkah (dengan Gambar)
ESP8266 - Pengairan Taman Dengan Pemasa dan Alat Kawalan Jauh Melalui Internet / ESP8266: ESP8266 - Pengairan jarak jauh dikendalikan dan dengan masa untuk kebun sayur, kebun bunga dan rumput. Ia menggunakan litar ESP-8266 dan injap hidraulik / elektrik untuk suapan penyiram. Kelebihan: Akses cepat kos rendah (~ US $ 30,00) Perintah
Esp32-Ubidots-Wireless-jarak jarak jauh-dan-kelembapan: 6 Langkah
Esp32-Ubidots-Wireless-jarak jarak jauh-dan-kelembapan: Dalam tutorial ini, kita akan mengukur data suhu dan kelembapan yang berbeza menggunakan sensor Temp dan kelembapan. Anda juga akan belajar bagaimana menghantar data ini ke Ubidots. Supaya anda dapat menganalisisnya dari mana sahaja untuk aplikasi yang berbeza
Mikrokontroler AVR. LED Flasher Menggunakan Pemasa. Gangguan Pemasa. Mod CTC Pemasa: 6 Langkah
Mikrokontroler AVR. LED Flasher Menggunakan Pemasa. Gangguan Pemasa. Mod CTC Pemasa: Halo semua! Pemasa adalah konsep penting dalam bidang elektronik. Setiap komponen elektronik berfungsi berdasarkan jangka masa. Pangkalan masa ini membantu memastikan semua kerja disegerakkan. Semua mikrokontroler berfungsi pada frekuensi jam yang ditentukan
Pemasa NE555 - Mengkonfigurasi Pemasa NE555 dalam Konfigurasi Astable: 7 Langkah
Pemasa NE555 | Mengkonfigurasi Pemasa NE555 dalam Konfigurasi Astable: Pemasa NE555 adalah salah satu IC yang paling biasa digunakan di dunia elektronik. Ini dalam bentuk DIP 8, yang bermaksud bahawa ia mempunyai 8 pin
Cara Mengendalikan Peralatan Rumah Tangga Dengan Jauh TV Dengan Fungsi Pemasa: 7 Langkah (dengan Gambar)
Cara Mengendalikan Peralatan Rumah Tangga Dengan TV Jauh Dengan Fungsi Pemasa: Walaupun setelah 25 tahun diperkenalkan ke pasaran pengguna, komunikasi inframerah masih sangat relevan dalam beberapa hari terakhir. Sama ada televisyen 4K 55 inci atau sistem bunyi kereta anda, semuanya memerlukan alat kawalan jauh IR untuk memberi respons kepada