Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Amazon Echo Berbasis Arduino Menggunakan 1Sheeld

Komponen dan persediaan

Arduino 101
× 1
1Sheeld
× 1
1Sheeld
× 1
Lampu tempel
× 1
Strip LED RGB
× 1
Papan estafet
× 1
Apple iPhone
× 1
Breadboard (generik)
× 1
Kabel USB-A ke B
× 1
Kabel jumper (generik)
× 30
NPN Transistor Serbaguna
× 3

Alat dan mesin yang diperlukan

Pengebor
Pipa PVC

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Beberapa bulan yang lalu saya mengunjungi teman saya dan saya kagum dengan Amazon Echo yang dia miliki.

Itu dapat memutar musik, mengontrol lampu rumah, memberi tahu saya berita dan status cuaca, dan bahkan tanggal dan waktu, semua itu hanya dengan perintah suara.

Pada saat itu, pembuat di dalam diri saya berteriak "kenapa saya tidak membuatnya sendiri!".

Dan sejak hari itu saya mulai mencari komponen yang dapat membantu saya membuat Amazon Echo berbasis arduino, hingga saya menemukan 1Sheeld yang menakjubkan.

1Sheeld adalah platform untuk Arduino yang memungkinkan Anda memanfaatkan sensor dan kemampuan ponsel cerdas Anda dan memungkinkan Anda menggunakannya dalam proyek Arduino Anda.

Pada dasarnya, ini adalah pelindung perangkat keras yang berada di atas papan Arduino Anda dan berkomunikasi melalui Bluetooth ke aplikasi Android ini, untuk mentransfer data antara itu dan ponsel cerdas Anda.

Anda dapat memeriksa tutorial memulai di situs web 1Sheeld yang akan membawa Anda langkah demi langkah hingga Anda dapat mengoperasikan 1Sheeld dengan sangat lancar dan ini adalah referensi yang luar biasa untuk proyek Arduino yang hebat.

Saya telah menggunakan dalam proyek ini lima perisai dari 40+ perisai di 1Sheeld.

Yang pertama adalah Perisai Pengenalan Suara yang saya gunakan untuk mengontrol seluruh sistem dengan perintah suara, perisai yang sangat sederhana yang dapat saya aktifkan hanya dengan 1 baris kode:VoiceRecognition.start();

Lalu saya menggunakan Perisai Pemutar Musik yang memungkinkan saya untuk masuk ke pemutar musik smartphone dan memilih trek yang ingin saya mainkan dengan sangat lancar, sebenarnya sangat sederhana yaitu saya hanya menggunakan baris ini untuk memutar pelindung pemutar musik:MusicPlayer.play();

Perisai ketiga yang saya gunakan adalah salah satu perisai terpenting dalam proyek ini, yaitu Text to Speech Shield yang menambahkan interaksi humanoid ke proyek bahwa seseorang merespons apa yang Anda katakan, sangat mudah untuk membuat sistem responsif:TextToSpeech.say("time in cairo is");

Setelah mengaktifkan perisai Text to Speech, saya telah mengaktifkan Perisai Jam yang mengembalikan jam secara real time dan kemudian sistem dapat merespons dengan waktu setelah saya memintanya, luar biasa! bukan :), dan saya dapat dengan mudah mendapatkan waktu saat ini di ponsel saya menggunakan fungsi ini:Clock.queryDateAndTime();

Perisai terakhir yang saya gunakan adalah Internet Shield yang menurut saya adalah perisai paling kuat di 1Sheeld, saya menggunakan perisai itu untuk mendapatkan status cuaca saat ini di kota asal saya menggunakan API dari situs web "openweathermap" tempat saya dapat memanggil API dengan baris itu: HttpRequest request1("/*alamat API */");

Langkah 1:Kumpulkan komponen

  • Arduino 101 $30,99
  • 1Sheeld+ papan $54,94
  • iPhone $155,5
  • Pipa PVC $2
  • Strip LED $5
  • Supply listrik 12V $7
  • Papan estafet $3
  • Jumper dan kabel $3
  • 3 transistor NPN $1

Langkah 2:

Buat lubang di pipa agar suara keluar

Langkah 3:

Cat pipa PVC dengan semprotan hitam

Langkah 4:Buat pengkabelan

  • Hubungkan strip LED ke transistor dan catu daya
  • Hubungkan lampu ke papan relai dan terminal AC
  • Hubungkan papan relai dan strip LED ke papan Arduino 101 seperti yang disebutkan dalam kode di bawah ini
  • Pasang semua itu dengan iPhone di dalam pipa PVC

Langkah 5:Siapkan 1Sheeld library

Anda dapat mengelola perpustakaan apa pun dari IDE Arduino. Cukup klik Sketsa>> Sertakan perpustakaan>> Kelola perpustakaan>> ketik OneSheeld>> lalu klik instal dan Anda siap melakukannya.​ Atau Anda dapat mengunduh perpustakaan dari sini:http://1sheeld.com/downloads/ Kemudian buka Arduino IDE Anda lalu pilih sketsa dari bilah menu>> Sertakan perpustakaan>> tambahkan file .zip> > lalu pilih file zip yo baru saja diunduh.

Langkah 6:Instal aplikasi 1Sheeld

Unduh aplikasi seluler 1Sheeld dari situs web atau Anda dapat mengunjungi Apple play store atau Google play store untuk mendapatkan aplikasinya.

Langkah 7:Akses perisai

Ikuti tutorial memulai 1Sheeld dan pada akhirnya pilih perisai berikut

  • Pengenalan Suara
  • Teks ke Ucapan
  • Jam
  • Internet
  • Pemutar Musik

Kemudian tekan tombol perisai ganda.

Kode

  • Kode gema Amazon
Kode gema AmazonArduino
/* OPSIONAL:Untuk mengurangi ukuran kompilasi perpustakaan dan membatasi penggunaan memorinya, Anda dapat menentukan perisai mana yang ingin Anda sertakan dalam sketsa Anda dengan menentukan CUSTOM_SETTINGS dan perisai masing-masing INCLUDE_. */#define CUSTOM_SETTINGS#define INCLUDE_INTERNET_SHIELD#define INCLUDE_VOICE_RECOGNIZER_SHIELD#define INCLUDE_TEXT_TO_SPEECH_SHIELD#define INCLUDE_MUSIC_PLAYER_SHIELD#define INCLUDE_define INCLUDE. */#include /* membuat nilai awal untuk penghitung milis. */unsigned long beforeMillis =0;/* membuat status awal untuk memanggil alexa. */bool state =0;/* Panggil api yang akan mengembalikan status cuaca di kairo,egypt. */HttpRequest request1("http://api.openweathermap.org/data/2.5/weather?q=Cairo,EG&appid=43d95b4cf5d0573e2dfe5186c160017a");/* tentukan 3 transistor pada pin 3,5 dan 6. */#define strip1 3#define strip2 6#define strip3 5/* mendefinisikan lampu pada pin 13. */int lamp =13;/* mendefinisikan variabel yang akan menampung jam dan menit . */int jam, menit;/* Buat 2 karakter untuk menangkap string yang Anda inginkan dari kalimat. */char b[4];char c[4];/* mendefinisikan variabel untuk menampung jam dan miniut dalam string. */String strh, strm;/* mendefinisikan variabel untuk menyimpan status hari am atau pm. */String noon;/* Perintah suara diatur oleh pengguna. */const char mainCommand[] ="alexa";const char weatherCommand[] ="bagaimana cuaca hari ini";const char playCommand[] ="mainkan musik";const char clockCommand[] ="jam berapa sekarang"; const char stopCommand[] ="stop";const char lightonCommand[] ="nyalakan lampu";const char lightoffCommand[] ="matikan lampu";void setup() { /* Mulai Komunikasi. */ OneSheeld.begin();/* mengatur strip led dan lampu ke output. */ pinMode(strip1,OUTPUT); pinMode(strip2,OUTPUT); pinMode(strip3,OUTPUT); pinMode (lampu, OUTPUT); /* Berlangganan panggilan balik sukses untuk permintaan. */ request1.setOnSuccess(&onSuccess1); /* Berlangganan balasan nilai json. */ request1.getResponse().setOnJsonResponse(&onJsonReply1);/* pada suara yang dikenali memanggil fungsi "myfunction". */ VoiceRecognition.setOnNewCommand(&myFunction);}void loop(){ /* lakukan penundaan selama 5 detik menggunakan penghitung milis agar deteksi suara tetap hidup. */ unsigned long currentMillis =milis(); if (Millis saat ini - Mili sebelumnya>=5000) { Mili sebelumnya =Milis saat ini; /* dapatkan waktu saat ini di ponsel Anda. */ Jam.queryDateAndTime(); /* memulai pengenalan suara. */ Pengenalan Suara.start(); }/* menyimpan jam dan menit ponsel cerdas dalam variabel. */ jam =Jam.getHours(); menit =Jam.getMinutes(); /* mendeteksi status waktu jika am atau pm. */ if (jam> 12) { jam -=12; siang ="PM"; } else { siang ="A M"; }/* simpan jam dan menit sebagai string. */ strh =String(jam); strm =String(minute);/* simpan string dalam array charter. */ strh.toCharArray(b, 4); strm.toCharArray(c, 4);}/* Fungsi ini akan dipanggil setiap kali perintah baru diberikan. */void myFunction (char *commandSpoken){/* periksa apakah ada yang memanggil alexa atau tidak. */ if (!strcmp(mainCommand, VoiceRecognition.getLastCommand())) { alexon(); MusicPlayer.setVolume(5); /* jika ya buat status =1 . */ status =1; } /* periksa apakah Anda diminta untuk memutar musik setelah menelepon alexa. */ if (!strcmp(playCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); MusicPlayer.play(); penundaan (10000); MusicPlayer.stop(); keadaan =0; }/* periksa apakah Anda diminta untuk mendapatkan status cuaca setelah menelepon alexa. */ else if(!strcmp(weatherCommand,VoiceRecognition.getLastCommand())&&state ==1) { alexoff(); Internet.performGet(permintaan1); /* Tunggu selama 5 detik. */ OneSheeld.delay(5000); keadaan =0; }/* periksa apakah Anda menanyakan waktu setelah menelepon alexa. */ if(!strcmp(clockCommand,VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); /* 1Sheeld merespons menggunakan text-to-speech. */ TextToSpeech.say("waktu di Kairo adalah"); penundaan (1300); TextToSpeech.say(b); penundaan (600); TextToSpeech.say(c); penundaan (800); TextToSpeech.say(siang); penundaan (500); keadaan =0; }/* periksa apakah Anda meminta untuk menyalakan lampu setelah menelepon alexa. */ if (!strcmp(lightonCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); digitalWrite(lampu,TINGGI); TextToSpeech.say("lampu menyala"); penundaan (6000); keadaan =0; }/* periksa apakah Anda meminta untuk mematikan lampu setelah menelepon alexa. */ else if (!strcmp(lightoffCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); digitalWrite(lampu,RENDAH); TextToSpeech.say("lampu dimatikan"); penundaan(3000); keadaan =0; }}void onSuccess1(HttpResponse &response1){ /* Menggunakan respons untuk menanyakan rantai Json hingga nilai yang diperlukan. */ /* yaitu Dapatkan nilai 'main' di objek pertama dari array 'cuaca' dalam respons. */ /* Dengan syarat respon dalam format JSON. */ response1["cuaca"][0]["utama"].query();delay(200); }void onJsonReply1(JsonKeyChain &hell,char * output){ if(hell ==request1.getResponse()["weather"][0]["main"]) { TextToSpeech.say("cuaca hari ini di Kairo adalah" ); penundaan(2000); /* 1Sheeld merespons menggunakan perisai text-to-speech. */ TextToSpeech.say(keluaran); } }void alexon(){ /* Nyalakan strip dengan urutan seperti urutan amazon echo yang sama. */ digitalWrite(strip1,HIGH); penundaan (200); digitalWrite(strip2,HIGH); penundaan (200); digitalWrite(strip3,HIGH); } void alexoff(){ /* Matikan strip. */ digitalWrite(strip1,LOW); digitalWrite(strip2,RENDAH); digitalWrite(strip3,RENDAH); }

Skema


Proses manufaktur

  1. Kirim data sensor dari satu Arduino ke Arduino lainnya menggunakan Firebase
  2. Arduino Digital Dice
  3. Kontrol Jarak Jauh Universal menggunakan Arduino, 1Sheeld, dan Android
  4. Pengontrol Game Arduino
  5. Sonar menggunakan arduino dan ditampilkan pada pemrosesan IDE
  6. Game Pixel Chaser
  7. Mengontrol Kecerahan LED Menggunakan Bolt dan Arduino
  8. Lengan Robot Sederhana dan Cerdas Menggunakan Arduino
  9. Tangki WalaBeer
  10. Radio FM Menggunakan Arduino dan RDA8057M