Hubungkan ESP32 ke Cloud MQTT Broker (TTGO T-Call ESP32 SIM800L)

Panduan ini menunjukkan cara menghubungkan papan TTGO T-Call ESP32 SIM800L ke Internet menggunakan paket data kartu SIM dan menerbitkan/berlangganan ke pialang MQTT cloud tanpa menggunakan Wi-Fi. Broker Cloud MQTT Mosquitto akan dipasang di server Digital Ocean. Kami juga akan menggunakan Node-RED untuk memvisualisasikan pembacaan dan mengontrol output dari mana saja. Board akan diprogram menggunakan Arduino IDE.

Dengan pengaturan ini, Anda dapat memantau dan mengontrol ESP32 Anda dari mana saja di dunia, dan ESP32 tidak perlu terhubung ke router nirkabel karena terhubung ke internet menggunakan paket data kartu SIM.

Memperkenalkan TTGO T-Call ESP32 SIM800L

TTGO T-Call adalah papan pengembangan ESP32 yang menggabungkan modul GSM/GPRS SIM800L. Anda bisa mendapatkan jika untuk sekitar $11.

Selain Wi-Fi dan Bluetooth, Anda dapat berkomunikasi dengan papan ESP32 ini menggunakan SMS atau panggilan telepon dan Anda dapat menghubungkannya ke internet menggunakan paket data kartu SIM Anda. Ini bagus untuk proyek IoT yang tidak memiliki akses ke router terdekat.

Penting: SIM800L berfungsi di jaringan 2G, jadi hanya akan berfungsi di negara Anda, jika jaringan 2G tersedia. Periksa apakah Anda memiliki jaringan 2G di negara Anda, jika tidak maka tidak akan berfungsi.

Untuk menggunakan kemampuan papan ini, Anda harus memiliki kartu SIM nano dengan paket data dan kabel USB-C untuk mengunggah kode ke papan.

Paket termasuk beberapa pin header, konektor baterai, dan antena eksternal yang harus Anda sambungkan ke board Anda.

Namun, kami memiliki beberapa masalah dengan antena itu, jadi kami memutuskan untuk beralih ke jenis antena lain dan semua masalah terpecahkan. Gambar berikut menunjukkan antena baru.

Ulasan Proyek

Ide proyek ini adalah untuk menghubungkan ESP32 Anda ke broker Cloud MQTT untuk berlangganan topik MQTT dan memublikasikan data sensor ke topik MQTT. ESP32 tidak perlu memiliki akses ke router melalui Wi-Fi, karena terhubung ke internet menggunakan paket data kartu SIM.

Dalam proyek sebelumnya, kami membuat server kami sendiri dengan database untuk memplot pembacaan sensor dalam grafik yang dapat Anda akses dari mana saja di dunia.

Dalam proyek ini, kami akan mempublikasikan pembacaan sensor ke server melalui MQTT dan kami akan menggunakan broker Mosquitto. Anda dapat mempublikasikan pembacaan sensor Anda ke broker cloud lainnya.

Singkatnya, inilah cara kerja proyek:

    1. Papan T-Call ESP32 SIM800L terhubung ke internet menggunakan paket data kartu SIM.

    2. Papan T-Call ESP32 SIM800L menerbitkan pembacaan sensor melalui MQTT dan pembacaan ditampilkan di Dasbor Node-RED.

    3. Melalui Node-RED Dashboard, Anda dapat menekan tombol untuk mengirim dan mematikan perintah untuk mengontrol GPIO ESP32.

Kami akan menggunakan sensor BME280, tetapi Anda dapat menggunakan sensor lain yang paling sesuai dengan kebutuhan Anda.

Cloud MQTT Broker

Anda dapat mencari broker MQTT cloud gratis, namun kami akan menggunakan broker MQTT cloud kami sendiri. Kami merekomendasikan menggunakan Digital Ocean dengan MQTT Mosquitto Broker, karena dapat menangani semua kebutuhan proyek. Kami juga akan menggunakan perangkat lunak Node-RED untuk memvisualisasikan pembacaan di pengukur dan mempublikasikan pesan MQTT ke ESP32.

    Jalankan Cloud MQTT Mosquitto Broker Anda(akses dari mana saja menggunakan Digital Ocean)

    Akses Dasbor Node-RED dari Mana Saja(menggunakan Digital Ocean)

Prasyarat

1. ESP32 add-on Arduino IDE

Kami akan memprogram ESP32 menggunakan Arduino IDE. Jadi, Anda harus menginstal add-on ESP32 di Arduino IDE Anda. Ikuti tutorial berikutnya, jika Anda belum melakukannya.

    Memasang Board ESP32 di Arduino IDE(Windows, Mac OS X, Linux)

2. Mempersiapkan Pialang MQTT Cloud Anda

Dalam proyek ini kami akan menunjukkan kepada Anda cara bertukar data melalui MQTT menggunakan broker cloud MQTT.

Kami akan menggunakan broker MQTT cloud kami sendiri. Namun, jika Anda menemukan broker MQTT gratis dengan semua fitur yang Anda inginkan, itu juga akan berfungsi…

Jika Anda ingin mengikuti proyek yang tepat ini, Anda harus mengikuti dua tutorial berikutnya untuk menyiapkan server Anda sendiri dan perangkat lunak Node-RED.

     Jalankan Cloud MQTT Mosquitto Broker Anda(akses dari mana saja menggunakan Digital Ocean)

    Akses Dasbor Node-RED dari Mana Saja(menggunakan Digital Ocean)

ESP32 menerbitkan pembacaan suhu setiap 30 detik pada topik esp/suhu dan esp/kelembaban. Ini berlangganan dua topik ini esp/output1 dan esp/output2 untuk memperbarui status LED output.

Setelah Node-RED berjalan, buka alamat IP server Anda diikuti oleh :1880.

Hubungkan node Anda seperti yang ditunjukkan di bawah ini:

Terakhir, terapkan aliran Anda (tekan tombol di sudut kanan atas).

Atau, Anda dapat pergi ke Menu > Import dan salin berikut ini ke Clipboard Anda untuk membuat aliran Node-RED Anda.

3. Kartu SIM dengan paket data

Untuk menggunakan papan TTGO T-Call ESP32 SIM800L, Anda memerlukan kartu SIM nano dengan paket data. Sebaiknya gunakan kartu SIM dengan paket prabayar atau bulanan, sehingga Anda tahu persis berapa banyak yang akan Anda belanjakan.

4. Detail APN

Untuk menghubungkan kartu SIM Anda ke internet, Anda harus memiliki rincian APN penyedia paket telepon Anda. Anda memerlukan nama domain, nama pengguna, dan kata sandi.

Dalam kasus saya, saya menggunakan vodafone Portugal. Jika Anda mencari pengaturan GPRS APN diikuti dengan nama penyedia paket telepon Anda, (dalam kasus saya ini: “GPRS APN vodafone Portugal”), Anda biasanya dapat menemukan di forum atau di situs web mereka semua informasi yang Anda butuhkan.

Saya telah menemukan situs web ini yang dapat sangat berguna untuk menemukan semua informasi yang Anda butuhkan.

Mungkin agak sulit untuk menemukan detailnya jika Anda tidak menggunakan penyedia yang terkenal. Jadi, Anda mungkin perlu menghubungi penyedia Anda secara langsung.

5. Perpustakaan

Anda perlu menginstal pustaka ini di Arduino IDE Anda untuk melanjutkan proyek ini: Adafruit_BME280, Adafruit_Sensor, TinyGSM, dan PubSubClient. Ikuti petunjuk selanjutnya untuk menginstal pustaka ini.

Memasang Pustaka Adafruit BME280

Buka Arduino IDE Anda dan pergi ke Sketch > Include Library > Manage Libraries. Manajer Perpustakaan harus terbuka.

Cari “adafruit bme280 ” di kotak Pencarian dan instal perpustakaan.

Memasang Pustaka Sensor Adafruit

Untuk menggunakan perpustakaan BME280, Anda juga perlu menginstal perpustakaan Adafruit_Sensor. Ikuti langkah-langkah selanjutnya untuk menginstal perpustakaan di Arduino IDE Anda:

Buka Sketch > Include Library > Manage Libraries dan ketik “Adafruit Unified Sensor” di kotak pencarian. Gulir ke bawah untuk menemukan perpustakaan dan menginstalnya.

Memasang Perpustakaan TinyGSM

Di Manajer Perpustakaan Arduino IDE cari TinyGSM. Pilih perpustakaan TinyGSM oleh Volodymyr Shymanskyy.

Memasang Pustaka PubSubClient

Cari PubSubClient dan gulir ke bawah. Pilih perpustakaan PubSubClient oleh Nick O'Leary.

Setelah menginstal perpustakaan, restart Arduino IDE Anda.

Bagian yang Diperlukan

Untuk membangun proyek ini, Anda memerlukan bagian-bagian berikut:

    TTGO T-Panggilan ESP32 SIM800L

    Kabel USB-C

    Antena (opsional)

    Modul sensor BME280 (Panduan untuk BME280dengan ESP32)

    2x LED

    2x 220 ohm resistor

     Breadboard

    Kabel jumper

Diagram Skematik

Hubungkan sensor BME280 dan dua LED ke papan T-Call ESP32 SIM800L seperti yang ditunjukkan pada diagram skematik berikut.

Kami menghubungkan pin SDA BME280 ke GPIO 18 dan pin SCL ke GPIO 19.

Kode

Salin kode berikut ke Arduino IDE Anda tetapi jangan mengunggahnya dulu. Pertama, Anda perlu membuat beberapa modifikasi untuk membuatnya berfungsi.












Sebelum mengunggah kode, Anda harus memasukkan detail APN, PIN kartu SIM (jika ada) dan detail server cloud MQTT Anda.

Cara Kerja Kode

Masukkan kredensial GPRS APN Anda dalam variabel berikut:

Dalam kasus kami, APN adalah internet.vodafone.pt. Anda harus berbeda. Kami menjelaskan sebelumnya cara mendapatkan detail APN Anda.

Masukkan PIN kartu SIM Anda jika berlaku:

Anda juga perlu mengetikkan detail server cloud MQTT di variabel berikut. Ini bisa berupa domain MQTT cloud Anda sendiri atau server MQTT lain yang ingin Anda gunakan.

ESP32 berlangganan topik esp/output1 dan esp/output2 untuk memperbarui output dengan nilai terbaru:

ESP32 menerbitkan pembacaan suhu dan kelembaban untuk topik ini esp/suhu dan esp/kelembaban setiap 30 detik:

Kode banyak dikomentari sehingga Anda memahami tujuan dari setiap baris kode.

Baris berikut menentukan pin yang digunakan oleh modul SIM800L:

Tentukan pin BME280 I2C. Dalam contoh ini kami menggunakan GPIO 18 dan GPIO 19.

Tentukan komunikasi serial untuk Serial Monitor dan lainnya untuk berkomunikasi dengan modul SIM800L:

Konfigurasikan perpustakaan TinyGSM agar berfungsi dengan modul SIM800L.

Sertakan perpustakaan berikut untuk berkomunikasi dengan SIM800L.

Dan perpustakaan MQTT dan perpustakaan sensor BME280:

Instansiasi komunikasi I2C untuk SIM800L (IC manajemen daya baterai).

Dan komunikasi I2C lainnya untuk sensor BME280.

Inisialisasi TinyGsmClient untuk koneksi internet.

setup()

Dalam setup(), inisialisasi Serial Monitor pada baud rate 115200:

Mulai komunikasi I2C untuk modul SIM800L dan untuk modul sensor BME280:

Atur pin SIM800L dalam kondisi yang tepat untuk beroperasi:

Inisialisasi komunikasi serial dengan modul SIM800L.

Inisialisasi modul SIM800L dan buka kunci PIN kartu SIM jika diperlukan.

Inisialisasi sensor BME280.

Terakhir, di setup() adalah tempat kita akan benar-benar terhubung ke internet. Baris berikut menghubungkan modul ke internet:

mqttConnect()

Fungsi mqttConnect() bertanggung jawab untuk menghubungkan papan Anda ke broker MQTT menggunakan nama pengguna dan kata sandi. Itu juga berlangganan ESP32 ke topik MQTT esp/output1 dan esp/output2.

loop()

Di loop(), ada pengatur waktu yang mempublikasikan pembacaan suhu dan kelembaban ke broker MQTT Anda setiap 30 detik.

mqttCallback()

Dalam fungsi mqttCallback(), ESP32 menerima pesan MQTT dari topik yang dilanggan. Sesuai dengan topik dan pesan MQTT, ini mengaktifkan atau menonaktifkan output:


Unggah Kode

Setelah memasukkan semua detail yang diperlukan, Anda dapat mengunggah kode ke papan Anda.

Untuk mengunggah kode ke papan Anda, buka Tools > Board dan pilih modul ESP32 Dev. Buka Tools > Port dan pilih port COM yang terhubung dengan papan Anda. Terakhir, tekan tombol unggah untuk mengunggah kode ke papan Anda.

Catatan: saat ini, tidak ada papan untuk T-Call ESP32 SIM800L, tetapi kami telah memilih Modul Dev ESP32 dan telah berfungsi dengan baik.

Demonstrasi

Buka Serial Monitor pada baud rate 115200 dan tekan tombol board RST.

Pertama, modul menginisialisasi dan kemudian mencoba terhubung ke internet. Harap dicatat bahwa ini dapat memakan waktu (dalam beberapa kasus butuh hampir 1 menit untuk menyelesaikannya).

Setelah terhubung ke internet, itu akan terhubung ke broker MQTT Anda.

Dalam contoh ini, ia menerbitkan pembacaan sensor baru setiap 30 detik, tetapi untuk tujuan pengujian, Anda dapat menggunakan periode waktu yang lebih singkat.

Kemudian, buka browser dan ketik domain server Anda di URL /ui. Anda akan melihat grafik dengan pembacaan sensor terbaru dan sakelar sakelar untuk mengontrol output.

Penyelesaian Masalah

Jika pada titik ini, Anda tidak dapat membuat modul Anda terhubung ke internet, hal itu dapat disebabkan oleh salah satu alasan berikut:

    • Kredensial APN mungkin tidak benar;

    • Antena mungkin tidak berfungsi dengan baik. Dalam kasus kami, kami harus mengganti antena;

    • Anda mungkin perlu keluar untuk mendapatkan jangkauan sinyal yang lebih baik;

    • Atau Anda mungkin tidak memasok arus yang cukup ke modul. Jika Anda menyambungkan modul ke komputer menggunakan hub USB tanpa catu daya eksternal, mungkin arusnya tidak cukup untuk beroperasi.

Membungkus

Kami harap Anda menyukai proyek ini. Menurut pendapat kami, papan T-Call SIM800 ESP32 bisa sangat berguna untuk proyek IoT yang tidak memiliki akses ke router terdekat melalui Wi-Fi. Anda dapat menghubungkan papan Anda ke internet dengan cukup mudah menggunakan paket data kartu SIM.

Anda mungkin juga menyukai proyek berikut:

     $11 TTGO T-Call ESP32 dengan SIM800LGSM/GPRS (ulasan mendalam)

    ESP32/ESP8266 Masukkan Data ke DatabaseMySQL menggunakan PHP dan Arduino IDE

    Pembacaan Sensor Plot ESP32/ESP8266 dalamGrafik Waktu Nyata – Server Web

    Server Web ESP32 dengan BME280 – StasiunCuaca Tingkat Lanjut

Pelajari lebih lanjut tentang ESP32 dengan sumber daya kami:

    Belajar ESP32 dengan Arduino IDE (Kursus)

    Pemrograman MicroPython dengan ESP32 danESP8266 (eBook)

    Lebih Banyak Proyek dan Tutorial ESP32

Sumber : randomnerdtutorials.com

Posting Komentar

0 Komentar