Daftar Isi:
Video: Menggunakan 4 Pin ESP8266-01: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Catatan: Proyek ini pada dasarnya merupakan perpanjangan dari instruksi sebelumnya yang hanya menggunakan 2 pin. Terbatasnya jumlah (4) pin GPIO pada ESP8266-01 mungkin tampak seperti hambatan, untuk aplikasi serius apa pun. Namun jika seseorang menggunakan pin di cara cerdas sangat mungkin untuk melakukan banyak hal hanya dengan 4 pin itu. Dalam beberapa instruksi saya baru-baru ini, saya telah menunjukkan penggunaan DHT11, DS18B20, OLED, RTC, dan BMP180 dengan ESP8266-01. Dalam instruksi ini saya mulai menggunakan 4 sensor dan layar, sambil juga mengunggah data yang diperoleh ke Thingspeak. Ini sebenarnya berkembang pada proyek pemantauan atmosfer di dalam dan sekitar kandang ayam saya. Ya, Anda bisa menyebutnya stasiun cuaca, tetapi itu hanya untuk menggambarkan penggunaan 4 pin, Anda dapat dengan mudah membuat sesuatu yang lain dengan cara ini Saya akan menggunakan 2 pin untuk I2C (BMP180 dan OLED)1 pin untuk 2 sensor DS18B20 melalui Pin protokol1 OneWire untuk DHT11Meskipun ESP8266-01 sekarang memiliki semua pin yang digunakan, saya masih dapat menambahkan lebih banyak sensor (atau aktuator) melalui protokol OneWire dan/atau melalui protokol I2C. Jadi, apa yang kita butuhkan:BOM
- ESP8266-01
- 2x DS18B20
- 1x DHT11
- 1x BMP180
- OLED (opsional)
dan tentu saja papan tempat memotong roti, PSU 3,3 V dan beberapa kabel papan tempat memotong roti dan akun Thingspeak
Hanya beberapa komentar tentang BOM:
- ESP8266-01Jelas proyek ini tentang memanfaatkan pin terbatas dari ESP8266-01, tetapi jika Anda masih perlu membelinya, Anda dapat mempertimbangkan ESP8266-12 yang memiliki lebih banyak pin
- DHT11A murah semua tujuan kelembaban dan sensor suhu. Ini tidak terlalu akurat tetapi akan berhasil. Jika Anda masih perlu membelinya, Anda dapat memilih DHT22 yang dianggap lebih akurat, tetapi Anda juga dapat memilih AMS2321. Itu adalah semacam DHT22 yang cocok untuk I2C, sehingga membebaskan pin lain
- BMP180mengukur suhu dan tekanan udara. Ini adalah penerus BMP085, tetapi sekarang juga memiliki beberapa suvesor sendiri. Ada BMP280 (lebih murah), tetapi Anda juga dapat memilih BME280 yang mengukur suhu, tekanan udara, DAN kelembapan. Dengan begitu Anda dapat menghemat sensor DHT/AMS
- OLEDI baru saja menggunakannya sehingga saya dapat dengan cepat melihat apakah sensor terbaca, tetapi Anda juga dapat memeriksanya di Thingspeak. OLED terlalu kecil untuk mencetak semua nilai yang dibaca
Langkah 1: Sirkuit
4 pin ESP8266 tidak ditunjukkan seperti itu pada PCB, dan sebagian besar gambar hanya menyatakan dengan jelas GPIO0 dan GPIO2. Namun ESP826-01 memiliki pin GPIO1 (pin Tx) dan pin GPIO3 (pin Rx).i akan menggunakan pin tersebut sebagai berikut:
- GPIO0 -> pin SDA dari port I2C
- GPIO1 -> DHT11
- GPIO2-> pin SCL dari port I2C
- GPIO3-> Bus OneWire
Karena modul I2C saya sudah memiliki resistor pull up, saya tidak akan menambahkan resistor pullup I2C di sana. DS18B20 masih membutuhkan resistor pull up yang saya gunakan 4k7, tetapi sebenarnya tidak terlalu kritis, 10k juga bagus. DHT11 seharusnya juga membutuhkan resistor pull-up tetapi saya menemukan itu berfungsi tanpa resistor juga. menambahkan resistor 4k7 tidak mengubah pembacaan apa pun, jadi saya meninggalkannya. Banyak dari modul DHT11 3 pin, sudah memiliki 10 k disolder ke modul. Saya baru menyadari bahwa saya tidak menggambar koneksi untuk OLED. Itu karena saya hanya menghubungkannya untuk pemeriksaan cepat, tetapi jika Anda ingin menambahkannya, ini hanya masalah menghubungkan SDA ke SDA dan SCL ke SCL… dan tentu saja ground dan pin Vcc ke rekan-rekan mereka
Langkah 2: Program
Program ini cukup mudah. Pertama, set up library dan sensor. Ini menempelkan DHT11 ke pin 1 (Tx) dan bus OnWire untuk DS18B20 ke pin 3 (Rx). Untuk menggunakan lebih dari 1 sensor DS18B20 pada bus OneWire, Anda perlu mengetahui 'alamat unik' mereka. Jika Anda tidak memilikinya maka Anda memerlukan program untuk membaca alamat tersebut. Lakukan itu di arduino untuk kemudahan. Dalam program ini Anda masih harus memberikan kredensial WiFi Anda serta API tulis untuk Saluran Thingspeak Anda
/*
Bidang 1 temp roost (DHT11) Lapangan 2 kelembaban roost (DHT11) bidang 3 Suhu kandang (DS18B20) bidang 4 suhu tanah (DS18B20) bidang 5 Tekanan udara (bmp180) bidang 6 Suhu luar (bmp180) * */ #include #include // https://www.pjrc.com/teensy/td_libs_OneWire.html #include // https://milesburton.com/Main_Page?title=Dallas_Tem… #include #include #include "SSD1306.h" Layar SSD1306 (0x3c, 0, 2); #define DHTPIN 1 //GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3=Rx const char* ssid = "YourSSID"; const char* kata sandi = "Kata Sandi Anda"; const char* host = "api.thingspeak.com"; const char* writeAPIKey = "W367812985"; //gunakan writeApi ANDA //DHT11 barang float temperature_buiten; mengapung temperature_buiten2; DHT dht(DHTPIN, DHTTYPE, 15); //DS18b20 barang OneWire oneWire(ONE_WIRE_BUS); //instans oneWire untuk berkomunikasi dengan perangkat OneWire sensor DallasTemperature(&oneWire);// Melewati alamat instans oneWire kami ke Dallas Temperature. DeviceAddress Probe01 = { 0x28, 0x0F, 0x2A, 0x28, 0x00, 0x00, 0x80, 0x9F}; DeviceAddress Probe02={0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9}; // bmp180 stuff Adafruit_BMP085 bmp; void setup() { //I2C stuff Wire.pins(0, 2); Kawat.begin(0, 2); // Inisialisasi sensor //dht 11 stuff dht.begin(); //ds18b20 stuff sensor.begin();//ds18b20 // atur resolusi ke 10 bit (Bisa 9 hingga 12 bit.. lebih rendah lebih cepat) sensor.setResolution(Probe01, 10); sensor.setResolution(Probe02, 10); //bmp180 stuff if (!bmp.begin()) { // Serial.println("Tidak ada BMP180 / BMP085"); // while (1) {} } //OLED stuff display.init(); display.flipScreenVertikal(); display.setFont(ArialMT_Plain_10); penundaan (1000); // Hubungkan ke jaringan WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void loop() { //ds18b20stuff-------------------sensor.requestTemperatures(); // Kirim perintah untuk mendapatkan temperatur temperature_buiten = sensor.getTempC(Probe01);// temperature_buiten2 = sensor.getTempC(Probe02);// //dht11 stuff---------------- ---- float kelembaban = dht.readHumidity(); suhu float = dht.readTemperature(); if (isnan(kelembaban) || isnan(suhu)) { kembali; } //bmp stuff------------------------- String t= String(bmp.readTemperature()); String p=String(bmp.readPressure()); //barang OLED-------------------------- display.clear(); display.drawString(0, 10, p);//bmp tekanan tampilan.drawString(0, 24, String(temperature_buiten));//ds18b20 display.drawString(0, 38, String(kelembaban));//dht11 tampilan.menampilkan(); // membuat koneksi TCP klien WiFiClient; const int httpPort = 80; if (!client.connect(host, httpPort)) { kembali; } String url = "/update?key="; url += tulisAPIKey; url += "&bidang1="; url += String(suhu);// bertengger (DHT1) url += "&field2="; url += String(kelembaban);// bertengger (DHT11) url += "&field3="; url += String(temperature_buiten);//suhu kandang (DS18B20 nr 1) url += "&field4="; url += String(temperature_buiten2); //suhu tanah (DS18B29 nr 2) url +="&field5="; url +=String(bmp.readTemperature());Suhu luar (BMP180) url +="&field6="; url +=String(bmp.readPressure());// Tekanan Udara (BMP180) url += "\r\n"; // Kirim permintaan ke server client.print(String("GET") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r \n\r\n"); penundaan (1000); }
……..
Langkah 3: Lainnya
Saat ini program ini hanya memantau, tetapi apa yang menghentikan Anda dari menambahkan sensor cahaya BH1750 I2C untuk mengukur apakah itu malam atau pagi atau RTC untuk mengetahui waktu hari dan untuk membuka dan menutup pintu kandang secara otomatis dengan bantuan kartu ekspansi I/O PCF8574 I2C, atau seperti yang sudah ada di kebun, tambahkan konverter PCF8591 atau ADS1115 AD untuk mengukur kelembapan tanah dan aktifkan pompa bila perlu. Atau mungkin menyalakan pemanas bak air ketika suhu turun di bawah nol jika ada chip I2 C untuk itu, ESP8266 mungkin dapat menggunakannya.
Catatan penting: Program ini bekerja dengan baik, tetapi jika Anda menambahkan sensor lain ke Rx atau Tx, terutama jika Anda membuatnya menjadi output, pin mungkin tiba-tiba ingat bahwa itu bukan pin GPIO yang sebenarnya. Lebih baik untuk memberitahu pin dari awal bahwa mereka sekarang pin GPIO. Salah satu melakukannya dengan meletakkan pernyataan berikut dalam setup:
pinMode(1, FUNCTION_3);
pinMode(3, FUNCTION_3);
Direkomendasikan:
Konektor ICSP untuk Arduino Nano Tanpa Solder Pin Header Tapi Pogo Pin: 7 Langkah
Konektor ICSP untuk Arduino Nano Tanpa Solder Pin Header Tapi Pogo Pin: Buat konektor ICSP untuk Arduino Nano tanpa solder pin header di papan tetapi Pogo Pin. Parts3×2 Pin Socket x1 - APitch 2.54mm Dupont Line Wire Female Pin Connector Perumahan Terminal x6 - BP75-E2 (Kepala Kerucut 1.3mm) Uji Musim Semi Probe Pogo Pin
Cara Menggunakan Wemos ESP-Wroom-02 D1 Mini WiFi Module ESP8266 + 18650 Dengan Menggunakan Blynk : 10 Langkah
Cara Menggunakan Modul WiFi Mini Wemos ESP-Wroom-02 D1 ESP8266 + 18650 dengan Menggunakan Blynk: Spesifikasi: Kompatibel dengan integrasi sistem pengisian nodemcu 18650 Indikator LED (hijau berarti merah penuh berarti pengisian) dapat digunakan saat mengisi daya Switch control power supply SMT konektor dapat digunakan untuk mode tidur · 1 tambahkan
Cara Menggunakan Papan Kompatibel Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE Dengan Menggunakan Blynk: 10 Langkah
Cara Menggunakan Papan Kompatibel Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE dengan Menggunakan Blynk: Papan Kompatibel Arduino WeMos D1 WiFi UNO ESP8266 IOT IDEDeskripsi: Papan Pengembangan WiFi ESP8266 WEMOS D1. WEMOS D1 adalah papan pengembangan WIFI berdasarkan ESP8266 12E. Fungsinya mirip dengan NODEMCU, kecuali perangkat kerasnya dibangun
ESP8266 Menggunakan Pin GPIO0/GPIO2/GPIO15: 4 Langkah
ESP8266 Menggunakan Pin GPIO0/GPIO2/GPIO15: Update 1 Juli 2018 -- Menambahkan catatan tentang pemrograman ulang saat GPIO0 adalah output out Cara menggunakan pin ESP8266-01PengenalanESP8266 adalah
Soket ISP 6 Pin hingga 8 Pin: 4 Langkah
ISP 6 Pin to 8 Pin Socket: Alasan utama saya membangun proyek ini adalah untuk memprogram ATTiny45, yang memiliki koneksi 8 pin, sedangkan USBtinyISP saya (dari Ladyada) hanya memiliki koneksi 10 pin dan 6 pin. Setelah mengintip di internet selama sekitar 3-4 minggu, saya tidak menemukan apa pun