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

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Komponen dan Perlengkapan

Alat dan Mesin yang Diperlukan

Aplikasi dan Layanan Online

Tentang Proyek Ini

Pengantar

Saya sangat terinspirasi setelah menonton TED Talk tentang Pertanian Digital, yang disampaikan oleh direktur MIT’s Open Agriculture Initiative, Caleb Harper, yang mengangkat topik: Komputer Ini Akan Menanam Makanan Anda di Masa Depan. Pertanyaan penting yang diangkat dalam pidatonya yang benar-benar menginspirasi saya adalah Bagaimana jika kita bisa menanam makanan yang lezat dan kaya nutrisi, di ruangan, di mana saja di dunia? Dan di sinilah ide ini lahir!

Jadi, yang saya coba lakukan adalah sesuatu seperti kotak atau inkubator, yang mampu menciptakan kondisi iklim ideal yang diperlukan untuk pertumbuhan, menyediakan jumlah cahaya dan nutrisi yang tepat yang dibutuhkan tanaman. Saya ingin membangun emulator matahari, sistem irigasi, dan pengontrol iklim yang dibungkus dalam satu desain elegan dan modern.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya berencana mencapai hasil yang diinginkan dengan menerapkan teknologi berikut:

Lampu Grow LED - Klorofil dalam tanaman terutama merespons hanya dua panjang gelombang, yang direpresentasikan oleh 450nm & 650nm. Sistem LED yang akan saya gunakan akan memiliki kombinasi lampu LED merah dan biru untuk memberikan campuran sempurna yang membantu pertumbuhan vegetatif dan generatif.

Atomizer Ultrasonik (pembuat kabut) - Saya ingin menggunakan metode irigasi baru, yang baru saja saya temukan sendiri, disebut aeroponik (FogPonics) yang menyirami tanaman melalui kabut yang diinfus pupuk.

Pemberian Nutrisi Otomatis - Sistem ini akan secara otomatis memberikan nutrisi untuk tanaman tepat ketika mereka membutuhkannya.

Sistem Penginderaan Air - Saya ingin melengkapi sistem saya dengan sensor pH dan TDS (Total Dissolved Solids) untuk membantu memelihara nilai pH yang seimbang dalam wadah air yang paling cocok untuk tanaman serta mengetahui dan memberikan peringatan kapan harus memberikan nutrisi.

Sistem Pertukaran Air - Sistem harus dilengkapi dengan sambungan untuk pertukaran air otomatis. Saya ingin membuat proses ini mudah, dan dikontrol hanya dengan klik tombol.

Sistem Pengontrol Udara - Ini memungkinkan kontrol yang presisi atas suhu dan kelembaban di dalam sistem, hingga satu derajat. Teknologi di baliknya melibatkan penggunaan sensor Suhu/Kelembaban seperti DHT22 atau DHT11 untuk menerima data, dan kipas dengan solenoid untuk mengaturnya sesuai kebutuhan.

Aplikasi Seluler - Saya benar-benar ingin membuat aplikasi untuk pertama kalinya dalam hidup saya! Aplikasi ini harus mencakup informasi waktu nyata tentang tingkat pH, suhu, kelembaban, nutrisi, ppm, dll. dan representasi grafik seiring waktu untuk melacak statistik dan berbagi progres pertumbuhan di media sosial. Saya juga ingin menerapkan peringatan cerdas yang akan memberitahu saya ketika sistem membutuhkan intervensi saya. Saya juga ingin tidak hanya menerima representasi data di ponsel saya, tetapi juga dapat menyiapkan kondisi iklim di dalam sistem!

Sayangnya, saya bukan orang pertama yang datang dengan ide ini, tetapi cara terbaik untuk datang dengan ide kreatif adalah dengan meningkatkan yang sudah ada!

Ada beberapa proyek serupa yang tersedia di pasaran, namun, meskipun semua keuntungan individu, mereka juga memiliki beberapa kelemahan seperti terlalu banyak ruang atau terlalu kecil, terlalu mahal, hanya menanam satu tanaman pada satu waktu, dll. Saya telah melakukan banyak riset dan menganalisis dengan cermat kekuatan dan kelemahan proyek yang tersedia, dan dengan mempertimbangkan respons pasar, saya ingin datang dengan sistem open source baru yang canggih, yang akan mengurangi kelemahan dan akan menerapkan hanya fitur-fitur terbaik.

Sangat ambisius, bukan? Tapi ayo kita coba

Eksperimen

Berurusan dengan tanaman sangat memakan waktu! Mereka biasanya membutuhkan beberapa minggu hingga beberapa bulan untuk tumbuh, dan saya harus siap untuk itu!

Karena saya sudah tahu apa yang ingin saya bangun untuk proyek akhir saya, saya harus merawatnya sejak awal dan tidak menunda semuanya untuk saat terakhir. Itu sebabnya, saya akan mulai menguji dan bereksperimen secepat mungkin!

Hal pertama yang ingin saya ketahui adalah fakta bahwa menanam tanaman menggunakan kabut kaya nutrisi dan lampu Grow LED lebih baik daripada sistem konvensional dengan tanah dan cahaya matahari! Secara teori, ini seharusnya persis kasusnya, tetapi saya tidak percaya pada apa pun sampai saya mencobanya!

Jadi saya memutuskan untuk memulai eksperimen sendiri, yang akan membutuhkan waktu, dan terdiri dari membagi tanaman ke dalam beberapa kelompok:

Di toko Jerman lokal Kaufland, di departemen tanaman, saya membeli benih campuran rempah-rempah. Ini akan menjadi bayi percobaan saya :p

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ini adalah pertama kalinya dalam hidup saya menanam sesuatu :D jangan menghakimi saya jika saya melakukan sesuatu yang salah!)

Saya telah memeriksa beberapa tutorial sebelumnya, dan saya belajar bahwa saya harus menyuburkan benih terlebih dahulu. Saya mendapatkan wadah plastik, di mana saya menempatkan benih, dan menutupnya dengan handuk kertas. Pada tahap ini, mereka membutuhkan kelembaban hampir 100%, itulah sebabnya saya menggunakan spray untuk menyirami handuk kertas, dan menutup wadah dengan kantong plastik, sehingga air tidak menguap.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya membiarkan benih selama 1,5 minggu, dan ketika saya membuka wadah, saya sangat terkejut!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Hampir semua benih tumbuh! Saya bahagia seperti anak kecil)

Selanjutnya saya harus memilih tanaman kecil terbaik, yang memiliki batang paling tebal, dan terlihat lebih besar dan lebih baik secara keseluruhan.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dalam tutorial yang saya ikuti (bloger YouTube), orang itu merekomendasikan untuk menanam tanaman kecil ke dalam media apapun, sampai mereka memberikan daun "kedua". Di Amazon saya memesan pellet serbat kelapa. Mereka organik, memiliki properti yang mirip dengan tanah, dan hal keren adalah ketika pellet disiram, mereka menjadi 6 kali lebih besar ukurannya.

Saya juga membeli kotak, yang memiliki pemisah khusus untuk menanam! Saya mendapatnya hanya dengan 2 euro, dan ini membuat hal-hal menjadi lebih terorganisir. Saya menempatkan pellet serbat kelapa di dalam pemisah kotak, menyiramnya sampai mereka sepenuhnya terhidrasi, menempatkan tanaman kecil di tengah, dan menutup kotak dengan potongan plastik transparan yang hadir dengan kit kotak.

rumah kaca kecil saya terlihat seperti ini:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya menutup kotak, dan membiarkannya selama satu minggu!

Dan lagi ketika saya membukanya, saya terkejut! Mereka sebenarnya menjadi lebih besar! Saya tidak pernah membayangkan bahwa saya dapat mengelola untuk menanam beberapa tanaman, saya hampir tidak dapat merawat diri sendiri :D

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah satu minggu, perbedaannya terlihat!

Sekarang ketika saya melihat akar pertama, saya dapat menempatkannya di tanah dan bola liat, dan mulai bereksperimen dengan kabut!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Selama minggu Desain Berbantuan Komputer, saya mendesain cangkir jaring, yang saya gunakan untuk menempatkan tanaman

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya juga membeli di toko lokal wadah plastik dengan ukuran mendekati yang saya butuhkan, dan mencoret lubang untuk dibor!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dan inilah sistem uji yang sudah sayarakit, dengan tanaman di dalam pellet serbat kelapa, dan bola liat, serta tanah!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sejujurnya, hasilnya bisa lebih baik :D

Hanya beberapa tanaman yang bertahan di sistem kabut saya. Tebakan saya adalah karena medium pertumbuhan! Kabut tidak cukup kuat untuk menjaga bola liat basah, baik tanah.

Libur Paskah!

Selama libur Paskah saya tidak melakukan apa-apa, dan karena laboratorium ditutup, seluruh sistem juga mati. Jadi, semua tanaman saya mati

Dengan pikiran segar, saya memutuskan untuk membuat sistem lain, tetapi kali ini menggunakan medium pertumbuhan lain berdasarkan pengamatan sebelumnya

Medium pertumbuhan yang saya pilih untuk sistem ini adalah Rock Wool. Saya membelinya di toko IKEA lokal kami. Saya juga membeli beberapa benih dari departemen mereka

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dan saya menempatkan benih baru ke dalam rock wool untuk penyuburan selama satu minggu!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah satu minggu saya memeriksa kotak saya, dan memperhatikan bahwa satu jenis benih berhasil, yang lain gagal! Karena keterbatasan waktu, saya melanjutkan dengan benih yang tumbuh

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sementara itu, saya menyiapkan sistem kabut lain, dan akan mencoba untuk meningkatkan waktu kerjanya, untuk melihat apakah saya dapat menyuburkan benih menggunakan kabut, HANYA KABUT!

Saya akan terus bereksperimen dengan parameter dan pengaturan yang berbeda, dan melihat sejauh mana saya dapat mencapai!)

Desain & Produksi Elektronika

Sebelum melompat ke desain papan akhir, saya duduk untuk menggambar di selembar kertas semua fitur dan persyaratan yang harus diterapkan dan dipenuhi oleh papan! Saya juga melacak berapa banyak pin yang akan digunakan, untuk memperkirakan dengan lebih baik dan memutuskan mikroprosesor mana yang akan menjadi pilihan akhir

Ini adalah sketsa dari apa yang harus ada pada papan:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Pilihan akhir untuk papan yang akan digunakan adalah antara satshakit dari Daniele Ingrassia dan FABLEO oleh Jonathan Grinham

satshakit adalah papan open source yang kompatibel 100% dengan Arduino IDE dan perpustakaan, dapat dibuat di fab lab, dan juga versi yang ditingkatkan dari Fabkit.

Peningkatan dan Fitur Utama di atas Fabkit adalah:

Di sisi lain, FabLeo memiliki fitur yang sangat serupa, ditambah hardware USB! Karena saya sudah menggunakan ATmega328p sebelumnya, saya ingin mencoba sesuatu yang baru, dan memutuskan untuk menggunakan desain FabLeo sebagai titik awal saya

Alkitab saya dan panduan #1 untuk tugas ini adalah pinout ATmega32u4

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Untuk mendesain papan, perangkat lunak yang akan saya gunakan untuk ini adalah EAGLE (Easily Applicable Graphical Layout Editor) adalah program skematis EDA, tata letak PCB, autorouter, dan CAM yang fleksibel dan dapat diperluas. EAGLE populer di kalangan hobi karena lisensi freeware dan ketersediaan perpustakaan komponen yang melimpah di web.

Eagle memiliki dua jendela yang digunakan secara bersamaan untuk mendesain papan:

Setelah saya menginstal EAGLE, hal pertama yang ingin saya lakukan adalah Buat Skematis Baru. Skematis dalam elektronika adalah gambar yang mewakili rangkaian. Ia menggunakan simbol untuk mewakili komponen elektronik dunia nyata. Simbol paling dasar adalah konduktor sederhana (jejak), yang ditampilkan hanya sebagai garis. Jika kabel terhubung dalam diagram, mereka ditampilkan dengan titik di persimpangan.

Untuk menempatkan komponen saya pada skematis, saya harus mengunduh dan menggunakan Perpustakaan khusus. Eagle memiliki banyak perpustakaan bawaan komponen yang dapat kita gunakan. Jaring fab juga memelihara perpustakaan yang selalu diperbarui:

fab.lbr

Untuk menginstal perpustakaan, di lingkungan EAGLE, buka toolbar atas dan pilih menu Library. Kemudian pilih use dan buka file .lbr yang baru saja saya unduh.

Sekarang saya dapat pergi ke Tambah komponen dan memilih perpustakaan, saya memilih komponen yang ingin saya tempatkan.

Saya sudah menempatkan semua komponen pada skematis saya, saya harus menghubungkan masing-masing ke pin mikroprosesor. Di menu kiri EAGLE, saya klik Net, perintah yang memungkinkan saya menggambar garis hijau dan menghubungkan pin. Hal penting adalah memulai koneksi dari garis kecil pada pin (Saya menandainya pada gambar)

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Untuk menghindari banyak koneksi, saya akan menggunakan Label.. Di menu kiri EAGLE, saya tekan Tambah Label dan menambahkannya ke akhir garis koneksi saya. Jika saya menekan klik kanan dan kemudian memilih nama, saya dapat memberikan label dengan nama yang sama yang saya gunakan untuk pin mikroprosesor, dan menghubungkannya dengan cara ini!

Jika saya melakukan semuanya dengan benar, pesan harus muncul yang menyatakan: Apakah Anda yakin ingin menghubungkan label Anda (N$10) dengan GND?

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Pada tahap ini, pada skematis, yang penting adalah Logika dari semua koneksi, bukan bagaimana tampilannya. Setelah saya selesai menempatkan semua komponen, dan menghubungkannya dengan cara yang logis, ini adalah tampilannya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya menambahkan pinheader AVRISP, dan menempatkannya sesuai urutan untuk konektor. Pin ini akan digunakan untuk memrogram papan saya.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ini adalah skematis rangkaian USB bersama dengan kristal

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya juga menambahkan rangkaian Regulator Tegangan yang akan memberi daya pada seluruh papan dengan mengubah input 12V menjadi 5V

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Salah satu fitur penting dari papan ini adalah rangkaian MOSFET, saya menambahkan 4 di antaranya, 3 terhubung langsung ke input (12V), dan satu akan terhubung ke regulator tegangan step-up. Terakhir akan digunakan untuk memberi daya pada kabut yang bekerja pada 24V

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah saya memeriksa ulang semua koneksi, saya dapat melanjutkan ke langkah berikutnya, yaitu Tata Letak Papan. Di menu atas, saya menekan Buat/Switch ke Papan.

Hal pertama yang saya lakukan adalah meningkatkan resolusi Grid. Saya pergi ke menu View, dan menekan Grid, dan mengubah nilai menjadi 0.01. Ini akan memungkinkan saya lebih tepat saat menggambar garis rute.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Mengagumkan, perutean papan paling kompleks yang telah saya buat sejauh ini juga adalah yang tercepat!) Saya bangga dengan diri saya. Pengalaman membuat papan telah berpengaruh baik pada meningkatkan kecepatan. Setelah saya selesai merute, inilah tampilan si kecil ini:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Untuk papan ini saya juga menggunakan trik yang saya pelajari sebelumnya. Saya menggambar poligon di sekitar komponen saya, dan dengan menekan klik kanan pada garis poligon, saya mengubah namanya menjadi GND. Ini akan mengisi seluruh area di dalam poligon, dan menjadikannya GND.

Ini akan menghemat banyak waktu, ruang, dan upaya

Setelah saya memeriksa ulang semuanya, saya dapat Ekspor file saya sebagai gambar .png.

Di jendela yang muncul, saya meningkatkan resolusi menjadi 1500 dpi, klik monochrome, dan pilih mode window.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Untuk mengedit gambar .png, saya akan membuka gambar saya di GIMP, dan menggunakan rectangular select tool, saya memilih gambar dengan memberi sedikit ruang dari semua sisi. Setelah saya menekan File dan Copy area yang dipilih. Untuk melanjutkan bekerja dengan gambar yang dipilih, saya klik lagi pada File, dan Create from the Clipboard

Ini adalah apa yang saya dapatkan setelah semua pengeditan:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Gambar ini siap untuk dicetak, dan saya akan menyebutnya Inside_Cut

Saya menyiapkan proses untuk Outside Cut, dan inilah apa yang saya dapatkan:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Karena papan saya double sided, saya harus fres dua potongan, lalu menempelkannya bersama-sama. Satu hal yang perlu diingat adalah bagian bawah harus dicerminkan secara horizontal

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Bagian bawah Inside_Cut

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Bagian bawah Outside_Cut

Sekarang saya dapat melanjutkan ke mesin fres CNC. Jadi, lagi saya menggunakan FabModules untuk mengonversi file .PNG menjadi Gcodes untuk mesin Roland.

Mari kita mulai bekerja dengan Fab Modules. Ketika saya memasukkan alamat ip ke dalam jendela browser, antarmuka pertama yang akan muncul adalah:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah saya menekan tombol abu-abu input format, menu baru harus muncul dengan opsi untuk memuat gambar .PNG. Di sini saya mengunggah gambar pertama, yang merupakan gravir dalam. Setelah melakukan itu, pratinjau gambar akan muncul di Fab Modules dan juga kolom dan parameter lainnya akan muncul

Di sisi kanan jendela, kita memiliki banyak parameter input. Untuk dapat menggerakkan mesin, kita harus memasukkan parameter berikut:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

mod_lp.py /dev/usb/lp0 ke dalam kolom send command

hostname_of_your_machine ke dalam kolom server (hanya alamat tanpa http atau /)

Untuk menggerakkan mesin saya hanya memasukkan koordinat posisi x, y dan z ke dalam kolom yang sesuai. Sebelum menggerakkan mesin saya harus memastikan bahwa parameter zjog selalu diatur ke 0, meskipun akan berubah secara otomatis. Untuk menggerakkan mesin saya harus menekan tombol move to xyz0.

* Sebuah life hack adalah menggunakan multimeter dan memeriksa apakah ada koneksi antara alat dan permukaan. Sebagai alat untuk menggerawang PCB disarankan untuk menggunakan diameter dari 0.2 mm dan di bawahnya, sementara untuk memotong kita dapat menggunakan alat 1 mm.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Jadi pengaturan akhir saya terlihat seperti ini:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Untuk potongan luar pengaturan tetap sama dengan pengecualian nilai sumbu Z, karena saya mengganti alat 0.2mm dengan alat 1mm. Inilah tampilannya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ulangi proses yang sama untuk Bagian bawah dan fres bagian Dalam dan Luar:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ini adalah hasil akhir untuk bagian Top:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dan bagian Bottom:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dan sekarang Mari kita solder!

Untuk memastikan bahwa saya solder semuanya dengan cara yang benar, setelah setiap komponen disolder, saya menggunakan multimeter untuk memeriksa apakah ada konduktivitas antara komponen dan jejak.

Animasi pendek dari prosesnya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya mencolokkan papan PCB untuk memeriksa apakah semuanya baik, saya menemukan kesalahan. Dari pengalaman, saya tahu bahwa kesalahan tersebut dari rangkaian pendek, karena komputer terus memutuskan Arduino setiap kali saya menghubungkan VCC dan GND ke sana. Jadi tebakan saya adalah di suatu tempat pada papan VCC dan GND terhubung, dan menggunakan multimeter, saya memastikan bahwa saya benar.

Saya sudah larut malam, dan saya menjadi sangat maru karena itu, memakan waktu satu jam di bawah mikroskop untuk menemukan kesalahan kecil itu. Inilah:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya memperbaikinya dengan menggores dengan pisau, dan meningkatkan isolasi!

Hal lain adalah menempatkan Regulator Tegangan Step Up di bagian belakang papan saya.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya mengukur dimensi sebelumnya, dan mendesain lubang predrilled untuk memasangnya dengan pinheader. Namun sebelum soldernya di bagian belakang, saya harus menkalibrasinya.

Ideanya adalah ketika saya memberi daya pada papan dengan 12V, step up akan menghasilkan 24V yang diperlukan untuk Atomizer Ultrasonik, yang terhubung ke rangkaian MOSFET

Saya menggunakan supply listrik meja, dengan 12V tetap, untuk mengukur tegangan output menggunakan multimeter.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah saya menyesuaikan output sesuai yang saya butuhkan, 24V dalam kasus saya, saya dapat soldernya ke bagian belakang papan saya!

Di bagian belakang juga, saya menempatkan papan WiFi yang saya buat selama minggu Jaringan dan Komunikasi!

Jadi, inilah The BEAST:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sebuah gambar hero bagi mereka yang mungkin pikir itu mudah, dan semuanya berjalan lancar :D

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Unduh Berkas:

Skematis GIY (.sch)

Tata Letak GIY (.brd)

Papan#1 Internal Cut(.png)

Papan#1 External Cut (.png)

Papan#2 Internal Cut (.png)

Papan#2 External Cut (.png)

Penghubungan & Pemrograman Terbenam (Perangkat I/O)

Untuk memrogram papan saya saya menggunakan Arduino IDE. Saya menghubungkan papan Arduino ke hub USB, di menu tools pilih papan yang tepat (Arduino Leonardo) dan port, lalu pergi ke File--> examplesdan buka sketsa Arduino as ISP. Unggah kode.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah saya melihat done uploading, yang berarti kode diunggah ke papan, saya memutuskan Arduino dari PC. Langkah berikutnya adalah menghubungkan papan PCB saya ke Arduino menggunakan beberapa kabel. Skema koneksi adalah sebagai berikut:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya menghubungkan papan Arduino ke hub USB. Di bawah Tools pilih papan yang tepat, pilih Arduino as ISP programmer, periksa ulang parameter, dan tekan tombol Burn Bootloader.

Dan saya melihat Done Uploading! Tanda baik)

Untuk menguji papan, saya mengunggah kode contoh dasar Blink:

Ohh, saya CINTA BLINK ini :D Sekarang mari kita pergi ke sensor!

Sensor pertama yang ingin saya gunakan adalah DHT11 - Sensor Suhu & Kelembaban

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sensor ini sangat dasar dan lambat, namun hebat untuk hobiis yang ingin melakukan pencatatan data dasar. Sensor DHT terdiri dari dua bagian, sensor kelembaban kapasitif dan termistor. Ada juga chip dasar di dalam yang melakukan konversi analog ke digital dan mengeluarkan sinyal digital dengan suhu dan kelembaban. Sinyal digital cukup mudah dibaca menggunakan mikrokontroler apa pun.

Beberapa karakteristik:

Penghubungannya cukup mudah, hanya VCC, GND, dan Pin Digital apa pun! Dalam kasus saya, saya sudah merancang koneksi untuk sensor ini sebelumnya.

Untuk mengujinya, saya akan mengunggah sketsa sederhana. Sketsa ini menyertakan perpustakaan DHT.h

Jadi inilah kodenya:

 // DHT11 Temperature and Humidity Sensors Example #include "DHT.h" //include DHT library #define DHTPIN 2 //define as DHTPIN the Pin 2 used to connect the Sensor #define DHTTYPE DHT11 //define the sensor used(DHT11) DHT dht(DHTPIN, DHTTYPE); //create an instance of DHT void setup() { Serial.begin(9600); //initialize the Serial communication dht.begin(); //initialize the Serial communication } void loop() { float h = dht.readHumidity(); // reading Humidity float t = dht.readTemperature(); // read Temperature as Celsius (the default) Serial.print("Temperature = "); Serial.println(t, 2); //print the temperature Serial.print("Humidity = ");; Serial.println(h, 2); //print the humidity delay(2000); //wait 2 seconds } 

Ketika saya membuka Serial Monitor, inilah yang saya dapatkan:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sensor lain yang ingin saya gunakan adalah DS18B20 - Sensor Suhu Digital One Wire

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

DS18B20 adalah sensor suhu digital 1-Wire dari Maxim IC. Melaporkan derajat dalam Celsius dengan presisi 9 sampai 12-bit, dari -55 hingga 125 (+/-0.5). Setiap sensor memiliki nomor Serial 64-Bit unik yang terukir di dalamnya - memungkinkan sejumlah besar sensor untuk digunakan pada satu bus data.

Ini adalah salah satu sensor digital paling mudah untuk dihubungkan. Selain daya dan ground, itu memiliki satu pin sinyal digital yang akan saya hubungkan ke pin digital yang sudah saya rancang sebelumnya. Ini juga memerlukan resistor pull-up 4.7k antara pin sinyal dan daya, yang sayangnya saya lupa untuk menempatkannya pada PCB saya. Itulah sebabnya, saya akan solder secara manual langsung ke kabel sensor.

Sebelum memulai, saya harus mengunduh perpustakaan: OneWire.h dan DallasTemperature.h

Unggah sketsa berikut:

 // First we include the libraries #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 3 // Setup a oneWire instance to communicate with any OneWire devices, (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); void setup(void) { // start serial port Serial.begin(9600); sensors.begin(); } void loop(void) { // call sensors.requestTemperatures() to issue a global temperature (request to all devices on the bus) sensors.requestTemperatures(); // Send the command to get temperature readings Serial.print("Temperature is: "); Serial.print(sensors.getTempCByIndex(0)); //You can have more than one DS18B20 on the same bus. 0 refers to the first IC on the wire delay(1000); } 

Hal lucu adalah setelah saya berhasil memprogram sensor, Ini berhenti bekerja saat saya mengintegrasikan semua sensor bersama! Saya menghabiskan waktu cukup lama mencoba mengetahui mengapa tidak bekerja, namun karena waktu yang terbatas, saya memutuskan untuk menggunakan sensor DS18B20 lain yang tersedia di stok FabLab kami, dan menjadikannya tahan air sendiri!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Jadi saya mengambil sensor, dan menggunakan datasheet untuk solder kabel dengan benar, dan mengisolasi mereka satu sama lain menggunakan tabung krimpit

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya kira Anda sudah mendapat ide bagaimana saya akan menjadikannya tahan air, kan? :D Mama ama engineer!

Selesai & DONE!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ya, saya tahu itu terlihat seperti :D tapi saya menjamin, itu hanya sensor tahan air buatan tangan. Yang terpenting adalah itu bekerja, dan tidak bocor saat direndam dalam air!

Dan kita pergi ke sensor berikutnya yang adalah LDR = Light Dependent Resistor

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

LDR adalah komponen elektronik pasif, dasarnya resistor yang memiliki resistensi yang bervariasi tergantung pada intensitas cahaya. Resistensi sangat tinggi dalam kegelapaan, hampir setinggi 1MΩ tetapi ketika ada cahaya yang jatuh pada LDR, resistensi turun menjadi beberapa KΩ (10-20kΩ @ 10 lux, 2-4kOmega; @ 100 lux) tergantung pada model.

LDR menghasilkan tegangan analog ketika terhubung ke Vcc (5V), yang bervariasi secara proporsional langsung dengan intensitas cahaya input padanya. Artinya, semakin besar intensitas cahaya, semakin besar pula tegangan yang sesuai dari LDR. Karena LDR menghasilkan tegangan analog, itu terhubung ke pin input analog pada Arduino. Arduino, dengan ADC (Analog to Digital Converter) bawaan, kemudian mengonversi tegangan analog (dari 0-5V) menjadi nilai digital dalam rentang (0-1023). Ketika ada cahaya yang cukup di lingkungan atau pada permukaan, nilai digital yang dibaca dari LDR melalui Arduino akan berada dalam rentang 800-1023.

Ini adalah kode sketsa untuk menguji sensor:

 int sensorPin = A0; /* select the input pin for LDR */ int sensorValue = 0; /* variable to store the value coming from the sensor */ void setup(void) { Serial.begin(9600); /* start serial port */ } void loop(void) { sensorValue = analogRead(sensorPin); // read the value from the sensor // We'll have a few threshholds, qualitatively determined Serial.print("LDR Value = "); Serial.print(sensorValue); if (sensorValue < 100) { Serial.println(" (Dark)"); } else if (sensorValue < 200) { Serial.println(" (Dim)"); } else if (sensorValue < 500) { Serial.println(" (Light)"); } else if (sensorValue < 800) { Serial.println(" (Bright)"); } else { Serial.println(" (Very bright)"); } delay(3000); } 

Selanjutnya adalah Water Level Sensor

Saya ingin memiliki sensor level air untuk menerima peringatan saat wadah air kosong, dan saatnya menambahkan air. Karena saya tidak memikirkannya sebelumnya, dan kami tidak memiliki sensor level air dalam stok kami, saya memutuskan bahwa saya dapat membuat sensor air sendiri!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya memutuskan untuk menggunakan bahan yang tersedia, dalam kasus saya Soil Moisture Sensor. Prinsip dasar sensor level air adalah untuk mengukur konduktivitas listrik, yang sama untuk sensor kelembaban tanah. Saya pikir jika saya dapat mengkalibrasi sensor dengan cara yang akan memenuhi kebutuhan saya, saya dapat menggunakan sensor kelembaban seperti sensor level air) Secara prinsip, ini adalah sensor analog dan data yang akan kita baca adalah nilai dari 0 hingga 1024, dan sisanya hanyalah matematika!

Tapi seperti yang sering terjadi, kenyataan sedikit berbeda. Ketika sensor tidak menyentuh air, nilai analog adalah 0, dan ketika saya merendam hanya ujungnya, nilai naik menjadi 800. Saya menggunakan sketsa berikut untuk membaca nilai:

 /* Print values from analog pin A4 to serial monitor */ void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A4)); delay(100); } 

Setelah saya dapat membaca nilai, saya mengkalibrasi sensor untuk memberikan tiga respons yang berbeda: EMPTY! - ketika nilai 0, LOW ketika nilai sekitar 800, dan Full ketika nilai lebih dari 900!

Graphic LCD Display

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Karena biasanya layar LCD menggunakan banyak pin, saya harus menemukan cara untuk menghubungkan layar 128×64 dengan cara lain, dan saya BERHASIL!!! Cara ini memungkinkan menggunakan hanya 3 Pin Digital pada papan yang luar biasa karena saya mungkin membutuhkan sisa pin untuk hal lain, dan tidak membuat rantai kabel yang berantakan. Saya sudah menyiapkan pin untuk LCD pada PCB saya, dan inilah cara saya menghubungkan semuanya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah saya menghubungkan LCD, saatnya untuk memrogramnya!

Pertama-tama, saya harus mengunduh perpustakaan U8glib dari SINI. Hal penting lainnya adalah pin yang dideklarasikan dalam kode. Pin yang saya gunakan adalah sebagai berikut: U8GLIB_ST7920_128X64 u8g(4, 12, 6, U8G_PIN_NONE)

Menggunakan contoh perpustakaan "HELLO WORLD", saya menghasilkan kode pengujian ini:

 #include "U8glib.h" U8GLIB_ST7920_128X64 u8g(4, 12, 6, U8G_PIN_NONE); void draw(void) { // graphic commands to redraw the complete screen should be placed here u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); // call procedure from base class, https://arduino.cc/en/Serial/Print u8g.print("GIY Project v1.0!"); } void setup(void) { // flip screen, if required // u8g.setRot180(); } void loop(void) { // picture loop u8g.firstPage(); do { draw(); } while( u8g.nextPage() ); // rebuild the picture after some delay delay(500); } 

Dan inilah apa yang saya dapatkan:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Satu ide kreatif yang datang ke pikiran saya adalah untuk menampilkan logo FabLab selama beberapa detik, selama layar menyala. Saya menghabiskan waktu cukup banyak untuk melakukan ini, tetapi akhirnya saya berhasil! Untuk menampilkannya pada Graphic LCD, saya harus memiliki gambar format (.bmp), dan menampilkannya sebagai bitmap.

Hal pertama yang saya lakukan adalah mengunduh logo FabLab dari internet sebagai file (.png), dan memperkecil ukurannya secara signifikan, sehingga sesuai dengan batas LCD kecil saya. Saya menggunakan layanan online berikut untuk melakukan itu: LINK

Ini adalah konfigurasi yang saya gunakan:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Langkah berikutnya adalah mengonversi gambar kecil saya menjadi format (.bmp). Saya menggunakan layanan online berikut untuk melakukan itu: LINK

Sekarang, setelah saya memiliki file (.bmp), untuk menempatkannya ke dalam kode saya, saya harus mengonversinya menjadi array HEX. Saya menggunakan alat yang bagus yang disebut LCD Assistant. Untuk memuat gambar di LCD Assistant, pergi ke File > Load Image. Pratinjau gambar seharusnya terbuka, pastikan ukurannya benar – 128 piksel lebar, 64 piksel tinggi. Juga pastikan orientasi Byte diatur ke Horizontal dan Size endianness diatur ke Little. Ini adalah konfigurasi untuk Tampilan LCD saya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Kemudian saya pergi ke File > Save output untuk menghasilkan file text sementara. Buka file text tersebut untuk melihat array baru yang menakjubkan saya.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

pH Sensor

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya harus mengakui bahwa ini adalah sensor yang paling rumit dari semua yang saya coba! Sangat sulit untuk menemukan informasi tentang sensor yang saya gunakan (logo ph sensor v1.1), jadi saya memutuskan untuk membuat deskripsi rinci tentangnya!

Sonda seperti (baterai kecil) ketika ditempatkan dalam cairan. Bergantung pada pH, itu menghasilkan tegangan positif atau negatif beberapa milivolt. Nilai ini terlalu kecil dan hal teknis lain seperti impedansi membuatnya tidak dapat digunakan langsung dengan Arduino, itulah sebabnya Anda membutuhkan "op amp". Papan op amp hanya mengonversi milivolt sonda menjadi sesuatu yang dapat diterima oleh Arduino (positif antara 0 dan 5v).

Ada 3 larutan penyeimbang yang umum digunakan untuk pengukuran pH: pH 4.01, pH 6.86 dan pH 9.18 (7.0 dan 10.0 ada). Saya menyarankan serbuk alih-alih cairan karena lebih murah, kadaluarsa setelah waktu yang lebih lama dan serbuk tidak dapat terkontaminasi (vs botol). Anda harus membaca instruksi produk tetapi biasanya Anda harus memasukkan isi kantung ke dalam 250ml air dan diaduk. Anda dapat menggunakan air apa pun dengan pH rata-rata (6-8) karena serbuk akan menyaturi air pada tingkat pH yang benar. Saya pribadi menggunakan air ledeng (pH 7.4) dan tidak melihat perbedaan antara air tisu, dan air demineralisasi. Larutan penyeimbang tidak stabil seiring waktu, ini berarti Anda tidak dapat menyimpan larutan selama minggu atau bulan.

Sekarang mari kita bicara lebih lanjut tentang sensor yang saya gunakan!

Sekarang mari kita coba untuk mengkalibrasi sensor! Ada 2 parameter berbeda, nilai "offset" dan nilai "step"

Nilai offset adalah pergeseran semua nilai pH ke rentang tegangan tertentu. Jika pH 7 menghasilkan tegangan 2.2v dan pH 8 menghasilkan tegangan 2.1v, maka pergeseran +0.3v memindahkan pH 7 ke 2.5v dan pH 8 ke 2.4v. Ini dapat dilakukan pada papan atau melalui perangkat lunak tetapi mungkin lebih mudah pada papan karena tidak tergantung pada sonda dan ada lebih sedikit pemrograman yang perlu dilakukan.

Hubungkan GND (kedua) dan Vcc ke Arduino GND dan 5v. Lepaskan sonda dan buat rangkaian pendek antara lubang kecil BNC dan bagian luar BNC. Pasang voltmeter (atau Arduino) untuk mengukur tegangan antara GND dan Po. Sesuaikan pot (dekat BNC) sampai outputnya 2.5v. Sekarang pH 7 memiliki nilai tepat 2.5v (511 dengan fungsi analogRead) karena sonda akan menghasilkan 0 milivolt.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Untuk mengkalibrasi steps saya membutuhkan satu atau lebih larutan penyeimbang tergantung pada rentang dan presisi yang diperlukan. Ideally it is better to know the range of the measure with the system. Saya menggunakan air antara pH 5 dan pH 7, lalu saya memilih larutan 4.01 (dan 6.86 untuk memverifikasi hal-hal saya). Jika Anda biasanya mengukur pH antara 8 dan 10 pilih larutan 9.18 (kemungkinan 6.86 juga).

Saya menghubungkan sonda (bersih) dan memasukkannya ke dalam larutan, lalu membiarkannya stabil selama satu menit. Saya tahu itu stabil ketika naik dan turun (3.04 kemudian 3.05 kemudian 3.03 kemudian 3.04). Catat nilai voltmeter (atau Arduino), dalam contoh saya itu 3.05v.

Itu saja, sekarang saya dapat menggunakannya dengan kode di bawah.

 int ph_pin = A7; //This is the pin number connected to Po void setup() { Serial.begin(9600); } void loop() { int measure = analogRead(ph_pin); Serial.print("Measure: "); Serial.print(measure); double voltage = 5 / 1024.0 * measure; //classic digital to voltage conversion Serial.print("\tVoltage: "); Serial.print(voltage, 3); // PH_step = (voltage@PH7 - voltage@PH4) / (PH7 - PH4) // PH_probe = PH7 - ((voltage@PH7 - voltage@probe) / PH_step) float Po = 7 + ((2.5 - voltage) / 0.18); Serial.print("\tPH: "); Serial.print(Po, 3); Serial.println(""); delay(2000); } 

Perhitungan PH_step cukup sederhana. Saya mengambil selisih antara dua tegangan yang diketahui, dalam contoh saya 2.5v@pH7 dan 3.05v@pH4.01 yang adalah -0.55v. Ini adalah rentang tegangan setara dengan rentang pH dari 7 hingga 4.01, yang adalah 2.99 unit pH. Pembagian kecil tegangan oleh unit pH memberikan angka volt per pH (0, 1839... dalam kasus saya).

PH_probe dihitung dengan mengambil tegangan pH 7 yang diketahui (2.5v) di mana kita menambahkan beberapa PH_step untuk mencocokkan tegangan sonda. Ini berarti pH 8 memiliki nilai tegangan 2.5v (pH 7) + 0.1839 (1 unit/step); pH 9 kemudian adalah 2.5v + 0.1839 + 0.1839 = 2.87v.

Tidak ada sihir, HANYA MATEMATIKA :D

MOSFET output:

Saya menghubungkan pita LED RGB dan Atomizer Ultrasonik ke output rangkaian MOSFET, yang dikontrol oleh pin digital. Untuk lampu LED, saya menyatakan dalam setup digitalWrite (LED, HIGH);, yang berarti lampu LED akan menyala selama sistem mendapatkan daya. Untuk pembuat kabut, saya membuat If function tergantung pada nilai level air. Jika ada air, pembuat kabut ON, jika tidak ada air, EMPTY!, maka kabut OFF!

Sekarang Mari kita gabungkan semuanya!

Di sini saya menghasilkan kode akhir saya:

 #include "dht.h" #include "U8glib.h" #include <OneWire.h> #include <DallasTemperature.h> #define DHT11_PIN 2 // what digital pin we're connected to #define ONE_WIRE_BUS 3 #define WATER_LEVEL A4 #define LDR_PIN A3 #define PH_PIN A5 #define GROW_LIGHT 10 #define FOG_PUMP 13 int waterLevel; int LightLevel; int pH; dht DHT; OneWire oneWire(ONE_WIRE_BUS); DallasTemperature waterTemp(&oneWire); U8GLIB_ST7920_128X64 u8g(4, 12, 6, U8G_PIN_NONE); const unsigned char logo [] PROGMEM = { ... }; bool first; float hum =0.0; double T=0.0; void dht_test(float * humPerc); void setup(void) { waterTemp.begin(); pinMode (GROW_LIGHT, OUTPUT); pinMode (FOG_PUMP, OUTPUT); digitalWrite (GROW_LIGHT, HIGH); first = true; // assign default color value if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { u8g.setColorIndex(255); // white } else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) { u8g.setColorIndex(3); // max intensity } else if ( u8g.getMode() == U8G_MODE_BW ) { u8g.setColorIndex(1); // pixel on } else if ( u8g.getMode() == U8G_MODE_HICOLOR ) { u8g.setHiColorByRGB(255,255,255); } // picture loop u8g.firstPage(); do { u8g.drawBitmapP( 32, 0, 16, 64, logo); } while( u8g.nextPage() ); dht_test(&hum); } void RefreshDisplay(float * humPerc, double *T, int *WL, int *LL, int *pH_value) { u8g.setFont(u8g_font_fub11); u8g.setFontRefHeightExtendedText(); u8g.setDefaultForegroundColor(); u8g.setFontPosTop(); u8g.drawStr( 4, 0, "Hum%"); u8g.setPrintPos( 68, 0); u8g.print( *humPerc); u8g.drawStr( 4, 15, "Temp"); u8g.setPrintPos( 68, 15); u8g.print( *T); u8g.drawStr( 4, 30, "Wlvl"); if (*WL == 0){ u8g.drawStr (68, 30,"EMPTY!"); digitalWrite (FOG_PUMP, LOW); } else{ if (*WL < 800) u8g.drawStr (68, 30,"LOW"); else { digitalWrite(FOG_PUMP, HIGH); u8g.drawStr (68, 30,"HIGH"); } } if (*LL < 100) { u8g.drawStr (68, 45,"Dark"); } else if (*LL < 200) { u8g.drawStr (68, 45,"Dim"); } else if (*LL < 500) { u8g.drawStr (68, 45, "Light"); } else if (*LL < 800) { u8g.drawStr (68, 45,"Bright"); } else { u8g.drawStr (68, 45,"2Bright"); } double voltage = 5.0 / 1024.0 * (*pH_value); float Po = 7 + ((2.5 - voltage) / 0.18); u8g.drawStr (4, 45,"pH"); u8g.setPrintPos( 28, 45); u8g.print( Po); } void loop(void) { waterTemp.requestTemperatures(); T = waterTemp.getTempCByIndex(0); waterLevel = analogRead(WATER_LEVEL); LightLevel = analogRead(LDR_PIN); pH = analogRead (PH_PIN); char status; int chk = DHT.read11(DHT11_PIN); hum = DHT.humidity; dht_test(&hum); if(first) { first = false; } else { u8g.firstPage(); do { RefreshDisplay(&hum, &T,&waterLevel, &LightLevel, &pH); } while( u8g.nextPage() ); } } void dht_test(float * humPerc) { // Wait a few seconds between measurements. delay(1000); } 

Unduh Berkas:

Kode Akhir GIY (.ino)

Desain 3D & Cetak 3D

Sebenarnya untuk sistem akhir saya, saya menggunakan banyak teknik desain 3D dan cetak 3D. Saya menggunakan dua printer berbeda, dan bermain banyak dengan pengaturan sampai saya mendapatkan hasil yang diinginkan!

Untuk desain 3D, saya menggunakan yang seperti yang saya sebutkan sebelumnya, adalah perangkat lunak CAD favorit saya! Saya tidak akan terlalu banyak detail tentang cara membuat bentuk sederhana, dan mengeksstrusi objek, semuanya ini dapat ditemukan selama minggu Desain Berbantuan Komputer saya, di mana saya belajar cara menggunakan perangkat lunak yang berbeda, serta minggu Pemindaian dan Cetak 3D.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Tugas utama adalah mendesain penampilan fisik sistem saya! Tantangannya adalah saya ingin agar itu terlihat SEXY!!!

Estetika adalah kriteria yang sangat penting, serta fungsionalitas! Sistem juga harus dapat dirangkaikan, yang membuatnya lebih menantang. Saya juga ingin mengintegrasikan keterampilan yang telah saya pelajari seperti cetak 3D, fres CNC, pemotongan laser, dll.

Sebelum mendesainnya di dunia digital, saya membuat sketsa sederhana di kertas! Inilah:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dan ini adalah desain 3D akhir:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

sistem ass sexy saya :D

Hal pertama yang saya desain adalah wadah air. Inilah:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ini mencakup beberapa fitur! Pertama, ada cukup ruang untuk tanaman tumbuh, serta di tengah saya membuat lubang untuk menempatkan Atomizer Ultrasonik. Ini dilakukan karena saya ingin menlevelkan fogger dengan wadah. Halnya adalah level air harus di atas fogger sebesar 2cm, jadi semua air yang levelnya sama dengan tinggi fogger, tidak akan digunakan (buang)! Jadi jika saya menempatkan fogger di bawah level wadah, saya memiliki level nol air tepat di titik yang seharusnya, nol untuk wadah = 2cm di atas fogger. Dengan cara ini, semua air digunakan!

Saya juga mempertimbangkan tinggi wadah. Sebenarnya, semua dimensi wadah diukur selama tahap eksperimen!

Seperti yang Anda lihat, saya membuat lubang di dinding, yang akan digunakan untuk kabel dari sensor yang ditempatkan dalam air untuk menyembunyikan ke dalam bagian elektronika. Di depan wadah, saya membuat slot untuk melampirkan tampilan grafis. Saya juga mendesain beberapa pegangan untuk dengan mudah melepas wadah ketika diperlukan!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dari perspektif ini, Anda dapat melihat bagian elektronika. Sekarang terbuka, tetapi saya juga mendesain tutup untuk menutupnya. Di dalam bagian elektronika, saya mendesain lubang untuk memiliki akses ke daya dan memprogram papan

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Di sisi bawah saya mendesain slider yang akan dilampirkan ke sisa sistem, dan membuatnya lebih mudah untuk melepas wadah ketika diperlukan, ini juga akan berperan sebagai penahan wadah di tempat!

Dan sekarang Mari Cetak!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya dapat dengan bangga mengumumkan bahwa printer yang akan saya gunakan disebut BigRep 3D Printer, hanya tersedia di FabLab Kamp-Lintfort kami. Ini memiliki kapasitas satu meter kubik, dan menyediakan volume build FFF terbesar untuk penggunaan profesional dan industri.

Perangkat lunak pemotong yang saya gunakan adalah Simplify3D, salah satu alat pemotong paling canggih, menurut saya, dengan banyak konfigurasi dan opsi.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya tidak pikir ada cara yang benar dan salah untuk mencetak sesuatu, Anda hanya perlu bermain dengan pengaturan sampai Anda menemukan opsi terbaik untuk objek spesifik yang akan dicetak.

Karena printer ini baru, tidak ada terlalu banyak pengujian yang dilakukan. Jadi, saya harus bereksperimen dengan pengaturan, dan coba, coba dan lagi coba...

Saya akan menampilkan di bawah ini pengaturan yang akan saya gunakan untuk mencetak wadah air saya, tetapi beberapa di antaranya intuitif.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya memilih Tool1, karena Printer BigRep memiliki dua nozzel dengan dua filament yang berbeda, dan saya harus menentukan nozzel mana yang ingin saya gunakan, serta diameter nozzel dan pengaturan lainnya.

Layer:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Additions:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Infill:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Support:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Temperature:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Cooling:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Other:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Advanced:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ini adalah perubahan yang saya lakukan, sisa pengaturan saya biarkan default.

Dan lalu tekan pada Prepare to Print. Perangkat lunak akan menghasilkan jalur, dan di sini kita dapat memeriksa apakah semuanya baik, sebelum mengirim .gcode ke mesin.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Secara singkat tentang beberapa pengaturan printer. Saya menggunakan Nozzle Temperature = 205 deg.C, dan Bed Temperature = 70 deg.C. Setelah saya memosisikan X, Y, and Z axis, dan memeriksa ulang semua pengaturan, saya meluncurkan pekerjaan!

Ini adalah tampilan model mentah:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saat saya mulai menghapus support dan membersihkan model, saya menyadari bahwa ini adalah BIG pain in the ASS :D

Seperti yang Anda perhatikan, pengaturan yang saya gunakan tidak benar-benar sempurna, karena wadah memiliki beberapa lubang besar di tepi. Saya sudah berniat untuk menjadikannya tahan air bagaimanapun, Anda dapat melihat bagaimana saya melakukannya di bagian Moulding & Casting!

Bagian cetak 3D berikutnya adalah Net Pot. Ini adalah cangkir yang dirancang untuk menahan benih di medium pertumbuhan. Detail lebih lanjut tentang versi pertama dari mereka dapat Anda lihat selama minggu Desain Berbantuan Komputer saya

Kali ini saya akan memperbaiki desainnya sedikit berdasarkan pengamatan yang saya lakukan selama tahap eksperimen. Perbedaan utama adalah ukuran ruang kosong, yang diperbesar banyak, untuk memberikan akses yang lebih mudah bagi kabut untuk masuk, dan bagi akar untuk melalui

Jadi saya hanya memodifikasi desain lama, dan menambahkan satu hal lagi!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya membuat fillet sedikit pada bagian atas, untuk membuat transisi lebih halus. Saya juga menambahkan bola di bagian bawah, dan menggunakan perintah Move untuk memindahkannya sedikit ke dalam, dan meninggalkan di bawah sekitar 2-3mm lebar struktur

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah saya menggunakan fungsi boolean substraction atau Combine, dan saya mendapatkan kelengkungan yang indah di bagian bawah!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sekarang mari cetak!

Printer 3D yang saya gunakan adalah Ultimaker 2+. Untuk memotong model 3D saya, saya akan menggunakan perangkat lunak yang sangat bagus, dengan antarmuka yang mudah, dan juga fungsional. Bahan yang saya gunakan adalah PLA filament

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah saya mengimpor file .stl saya, inilah pengaturan yang saya gunakan:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ini adalah tentara kecil saya :D

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dari desain akhir sistem, saya memutuskan untuk juga mencetak 3D bagian bawah. Ini adalah potongan besar, dan saya akan menggunakan BigRap juga untuk ini.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya tidak akan mengatakan ada yang baru tentang ini, karena saya menggunakan pengaturan yang sama seperti yang saya gunakan untuk wadah air, dan kurang lebih sisanya sama

Ini adalah pratinjau cetaknya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Hal lain yang saya cetak 3D adalah sudut bundar di sisi atas sistem. Saya menggunakan Ultimaker untuk ini, dan menggunakan pengaturan berikut:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Trik di sini adalah untuk mencapai kehalusan maksimum pada permukaan, dan saya pikir saya mendapatkan hasil yang cukup baik:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Unduh Berkas:

Desain Sistem GIY (.f3d)

Desain Net Pot (.f3d)

Desain 2D & Pemotongan Laser

Saya menggunakan teknik pemotongan laser untuk memotong bagian akrilik yang akan menutupi semua bagian dalam sistem, dan memberinya tampilan yang selesai!

Sebenarnya saya tidak mendesain bagian lagi, saya hanya mengekspor sketsa yang sudah dibuat dari Fusion 360 sebagai .dxf files. Setelah mengekspor file, saya menggunakan untuk mengedit desain sebelum mengimpornya ke mesin pemotong laser

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ini adalah tampilan sketsa di Fusion360:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sepertinya berantakan, tetapi bagian baik adalah semuanya parametrik! Tampilannya berantakan karena saya harus meratakan semuanya ke posisi yang tepat, dan menjaga semuanya tetap parametrik jika saya harus melakukan perubahan nanti

Ini adalah tampilan sketsa akhir di Rhino sebelum pemotongan laser:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya memutuskan untuk menggunakan potongan akrilik hijau karena memberikan tampilan organik, dan cocok dengan tanaman hijau

Untuk tutup depan dan belakang, saya memutuskan untuk menggunakan warna putih. Ini semua tentang rasa, ini adalah cara saya melihatnya, dan ini adalah cara saya menyukainya.

Tutup depan dan belakang sangat mirip, memiliki dimensi yang sama, kecuali potongan dalam! Tutup depan memiliki lubang untuk Tampilan LCD, inilah:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Untuk tutup belakang, saya ingin membuat lubang untuk memiliki akses ke daya dan memprogram papan! Inilah tampilannya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Potongan laser lain ada di atas! Saya memutuskan untuk menggunakan bagian akrilik transparan, agar cahaya dapat melewati! Saya juga mendesain beberapa potongan tambahan, untuk mengurangi bobot, dan memberi lebih banyak ruang bagi cahaya untuk melewati! Saya juga mengukur lebar pita LED RGB, dan akan melampirkannya dengan cara sehingga cukup ruang bagi cahaya matahari serta cahaya buatan!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya selesai dengan desain, dan sekarang Mari Pemotongan Laser!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Pemotong Laser yang kami gunakan di sini di FabLab adalah Epilog Fusion 60Watt, pemotong laser CO2 dengan area kerja 1016 x 711 mm. Ini dapat memotong dan menggerat bahan seperti kayu, kardus, akrilik atau plastik rekayasa lainnya.

Karena saya menggunakan bahan yang sama untuk semua bagian, plexiglass 5mm, saya menggunakan pengaturan yang sama untuk semuanya!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Unduh Berkas:

Tutup Depan / Belakang (.dxf)

Pemegang Tanaman (.dxf)

Pemegang Lampu LED (.dxf)

Fres CNC

Karena saya ingin mengintegrasikan semua keterampilan dan teknik yang telah saya pelajari ke dalam sistem saya, saya juga memiliki satu potongan struktur untuk fres CNC. Saya tidak mendesainnya lagi, tetapi saya mengekspor file .dxf dari sketsa Fusion360!

Untuk memotong desain saya, saya akan menggunakan raksasa CNC besar.

CNC (computer numerically controlled) adalah mesin yang menggunakan bit pemotong yang berputar dengan kecepatan sangat tinggi untuk menghapus bahan dari bagian.

Mesin membaca file komputer yang sudah diprogram sebelumnya yang memberitahukan kepadanya di mana dan bagaimana memotong, biasanya file .GCode. Bit pemutaran diputar pada RPM yang sangat tinggi oleh motor palu, yang dapat memindahkan bit ke atas dan ke bawah. Mekanisme ini dipindahkan ke kiri, kanan, depan, dan belakang oleh lintang silang. Oleh karena itu mesin dikenal sebagai router tiga sumbu karena dapat bergerak pada sumbu X, Y & Z. Mesin dapat melakukan pemotongan dua dimensi dan geratan, serta pekerjaan relieif tiga dimensi.

Di FabLab Kamp-Lintfort kami memiliki mesin fres portil CNC oleh e(sign: Easy Worker MasterPro 2513.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Area kerjanya adalah 2600 x 1400 x 300mm dan dilengkapi dengan meja vakum. Kami terutama menggunakannya untuk fres kayu tetapi dengan HSD Spindel (3.9KW; 24.000U/min) ini juga mampu fres logam dengan mudah.

Bahan yang akan saya gunakan adalah 18mm Plywood

Pertama, saya melembarkan lembar kayu pada tempat tidur CNC, dan setelah saya meratainya, menyala vakum. Setelah mengekspor file .dxf, saya menggunakan untuk mengedit desain sebelum mengimpornya ke perangkat lunak CAM mesin.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Pertama, saya harus HOME mesin!

Untuk mengatur Posisi Nol X, Y dan Z, saya menyalurkan mesin dengan menekan tombol home di perangkat lunak (atau pada pengendali jarak jauh).

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Pertama, saya dapat mengatur nol X dan Y saya secara kasar sejajar dengan salah satu sudut tempat tidur. Kami juga mencoba menggunakan laser untuk ini, tetapi setiap kali mensimulasikan proses, itu menunjukkan tabrakan, karena nol keluar dari area kerja

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sekarang saya harus menemukan sumbu Z, yang saya lakukan menggunakan alat khusus yang hadir dengan mesin:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Hal penting adalah meletakkannya di tempat tidur mesin!

Sekarang saya dapat meluncurkan pekerjaan pertama, yaitu membuat geratan. Ini adalah pengaturan yang saya gunakan:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya menekan Calculate Toolpath untuk mensimulasikan pekerjaan dan memastikan tidak ada tabrakan! Setelah menyimpan .GCode, dan meluncurkan pekerjaan, saya mendapatkan jendela ini:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sekarang saya dapat meluncurkan pemotongan luar:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Ini adalah apa yang saya dapatkan setelah pekerjaan selesai:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Potongan lain yang harus saya fres digunakan untuk bagian Moulding & Casting!

Saya menyiapkan cetakan untuk menjadikan wadah air saya tahan air. Inilah desainnya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Tidak ada yang baru tentang ini. Saya menggunakan pengaturan yang sama persis seperti di atas. Yang satu-satunya adalah ketebalan bahan adalah 10mm wood, dan saya harus memotong 7 potongan, untuk menempelkannya bersama-sama nanti dan menyiapkan cetakan saya!

Unduh Berkas:

Dinding Struktur (.dxf)

Cetakan (.dxf)

Moulding & Casting

Saya menggunakan teknik ini untuk menyiapkan wadah air, untuk menjadikan wadah yang sudah ada tahan air! Saya melihatnya sebagai lapisan tipis bahan (wadah lebih kecil) yang dapat dengan mudah dilepaskan!

Ini adalah hasil dari bagian sebelumnya Fres CNC

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya memotong 7 potongan yang sama, dan meratainya menggunakan lubang referensi! Saya juga memotong lubang besar di tengah dari 5 potongan bawah, untuk menempatkan pompa udara di dalamnya, dan dengan mudah melepas cetakan nanti.

Setelah saya melekat semua potongan bersama-sama, dan mengikatnya, inilah tampilannya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sambil menunggu lem kering, saya menyiapkan hal kecil plastik "benda" (tidak tahu cara memanggilnya :D) untuk pompa. Ideanya adalah dapat membekalkannya pada cetakan saya, dan melepasnya kapan pun saya inginkan!

Ketika cetakan siap, inilah tampilannya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dan sisi belakang:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Saya siap untuk vacuum cast!

Saya menggunakan mesin vakum yang tersedia di FabLab Kamp-Lintfort kami disebut Formech – Manual Vacuum Forming Machine

Halnya adalah saya mencoba melakukannya banyak kali, dan setiap kali saya tidak dapat melepas cetakan tanpa merusak cetakan! Setelah beberapa jam percobaan, saya menemukan solusi! Pertama, saya vacuum cast satu lapisan tipis bahan, dan tanpa melepasnya, saya akan cetak lapisan aktual di atasnya. Lapisan tipis pertama licin, dan jika saya menyemburkannya dengan silikon, itu akan memungkinkan saya untuk melepas cetakan dengan lebih mudah

Setelah saya membiarkan silikon kering sedikit, saya dapat cetak lapisan aktual!

Dan di sini kita!!!

Sebuah gambar hero bagi mereka yang mungkin pikir itu mudah

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor
DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Putting All Together

Sekarang, mari kita gabungkan semuanya! Saya akan memulai dengan merakit struktur. Taruh semua alat yang diperlukan di samping saya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Animasi pendek dari prosesnya:

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Untuk merakit lampu, saya memotong pita LED RGB menjadi 4 potongan (saya mengukur panjangnya sebelumnya), dan solder sesuai!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Setelah saya menghubungkan semua sensor, dan mengelola kabel, saya memasang papan di bagian elektronika

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Dan inilah sistemnya!!! Semua sudah dirakit, sistem pertumbuhan yang indah GIY

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Sebuah gambar HERO selama proses kerja!

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Final Presentation Video

© 2017 Albot Dima. All rights reserved | Albot.Dumitru@hsrw.org

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Untuk lebih banyak detail tentang proyek, silakan kunjungi sumber resmi:

https://archive.fabacademy.org/2017/fablabkamplintfort/students/396/final.html

Kode

GIY Board - KODEArduino
#include "dht.h" #include "U8glib.h" #include <OneWire.h> #include <DallasTemperature.h> #define DHT11_PIN 2 // what digital pin we're connected to #define ONE_WIRE_BUS 3 #define WATER_LEVEL A4 #define LDR_PIN A3 #define PH_PIN A5 #define GROW_LIGHT 10 #define FOG_PUMP 13 int waterLevel; int LightLevel; int pH; dht DHT; OneWire oneWire(ONE_WIRE_BUS); DallasTemperature waterTemp(&oneWire); U8GLIB_ST7920_128X64 u8g(4, 12, 6, U8G_PIN_NONE); const unsigned char logo [] PROGMEM = { ... }; bool first; float hum =0.0; double T=0.0; void dht_test(float * humPerc); void setup(void) { waterTemp.begin(); pinMode (GROW_LIGHT, OUTPUT); pinMode (FOG_PUMP, OUTPUT); digitalWrite (GROW_LIGHT, HIGH); first = true; // assign default color value if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { u8g.setColorIndex(255); // white } else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) { u8g.setColorIndex(3); // max intensity } else if ( u8g.getMode() == U8G_MODE_BW ) { u8g.setColorIndex(1); // pixel on } else if ( u8g.getMode() == U8G_MODE_HICOLOR ) { u8g.setHiColorByRGB(255,255,255); } // picture loop u8g.firstPage(); do { u8g.drawBitmapP( 32, 0, 16, 64, logo); } while( u8g.nextPage() ); dht_test(&hum); } void RefreshDisplay(float * humPerc, double *T, int *WL, int *LL, int *pH_value) { u8g.setFont(u8g_font_fub11); u8g.setFontRefHeightExtendedText(); u8g.setDefaultForegroundColor(); u8g.setFontPosTop(); u8g.drawStr( 4, 0, "Hum%"); u8g.setPrintPos( 68, 0); u8g.print( *humPerc); u8g.drawStr( 4, 15, "Temp"); u8g.setPrintPos( 68, 15); u8g.print( *T); u8g.drawStr( 4, 30, "Wlvl"); if (*WL == 0){ u8g.drawStr (68, 30,"EMPTY!"); digitalWrite (FOG_PUMP, LOW); } else{ if (*WL < 800) u8g.drawStr (68, 30,"LOW"); else { digitalWrite(FOG_PUMP, HIGH); u8g.drawStr (68, 30,"HIGH"); } } if (*LL < 100) { u8g.drawStr (68, 45,"Dark"); } else if (*LL < 200) { u8g.drawStr (68, 45,"Dim"); } else if (*LL < 500) { u8g.drawStr (68, 45,"Light"); } else if (*LL < 800) { u8g.drawStr (68, 45,"Bright"); } else { u8g.drawStr (68, 45,"2Bright"); } double voltage = 5.0 / 1024.0 * (*pH_value); float Po = 7 + ((2.5 - voltage) / 0.18); u8g.drawStr (4, 45,"pH"); u8g.setPrintPos( 28, 45); u8g.print( Po); } void loop(void) { waterTemp.requestTemperatures(); T = waterTemp.getTempCByIndex(0); waterLevel = analogRead(WATER_LEVEL); LightLevel = analogRead(LDR_PIN); pH = analogRead (PH_PIN); char status; int chk = DHT.read11(DHT11_PIN); hum = DHT.humidity; dht_test(&hum); if(first) { first = false; } else { u8g.firstPage(); do { RefreshDisplay(&hum, &T,&waterLevel, &LightLevel, &pH); } while( u8g.nextPage() ); } } void dht_test(float * humPerc) { // Wait a few seconds between measurements. delay(1000); } 
GIY BOARD - LCD + LIGHT KODEArduino
#include "U8glib.h" int led = 10; U8GLIB_ST7920_128X64 u8g(4, 12, 6, U8G_PIN_NONE); void draw(void) { // graphic commands to redraw the complete screen should be placed here u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); // call procedure from base class, https://arduino.cc/en/Serial/Print u8g.print("GIY Project v1.0!"); } void setup(void) { pinMode (led, OUTPUT); digitalWrite (led, HIGH); } void loop(void) { // picture loop u8g.firstPage(); do { draw(); } while( u8g.nextPage() ); // rebuild the picture after some delay delay(500); } 

Skematik

DIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & SensorDIY Perangkat IoT Cerdas: Bangun dengan ATmega32U4, ESP8266 & Sensor

Proses manufaktur

  1. Panduan Desain, Pembuatan, dan Kode PCB Kartu Kunjungan Tic Tac Toe 4×4 Kustom
  2. Sistem Sensor Suhu Multi-Posisi untuk Integrasi Rumah Cerdas
  3. Pengontrol Pemoleng DIY untuk 862D+—Presisi & Keandalan
  4. MotionSense: Deteksi Intrusi Cerdas dengan Arduino & ESP8266
  5. Pencegahan Kebakaran Printer 3D: Sistem Keselamatan Sensor Cerdas
  6. Buat Pengukur IoT Aktif Web dengan Arduino, Yaler, dan IFTTT
  7. Levitasi Magnetik Repulsif Berbasis Arduino: Rangkaian Sederhana & Panduan DIY
  8. Robot Pegang Terdahalih Jarak Jauh Lanjut untuk Pengendalian Presisi
  9. Pencatat Data Balon Cuaca Arduino Berkinerja Tinggi
  10. Detektor Termal CoroFence: Sensor PIR Canggih & Integrasi IoT