cc1101

CC1101 Radyo Modülü ile openMQTTGateway nasıl kullanılır

openMQTTGateway CC1101 Radyo Modülü ile nasıl programlanır isim yazımız, openMQTTGateway platformunu CC1101 radyo modülü ile entegre etmek isteyen kişiler için kapsamlı bir kaynaktır. Bu kılavuz, openMQTTGateway’in ilk kurulumundan CC1101 radyo modülünün yapılandırılmasına kadar her şeyi kapsamakta, adım adım talimatlar ve sorun giderme ipuçları sunmaktadır.

openMQTTGateway Projesine Genel Bakış

openMQTTGateway, BLE, LoRa, RF, GSM, GPRS ve kızılötesi cihazlardan veri okuyabilen ve daha sonra bunları CC1101 gibi radyolarla MQTT aracılığıyla yayınlayabilen tek bir ürün yazılımı oluşturmayı amaçlayan önemli bir projedir. Proje, çeşitli cihaz türlerini entegre etmek ve verilerini MQTT aracılığıyla iletmek için birleşik bir çözüm sağlamak ve böylece IoT uygulamaları için çok yönlü ve değerli bir araç haline getirmek üzere tasarlanmıştır. openMQTTGateway projesi çok çeşitli işlevler ve yetenekler sunar, bu nedenle IoT projeleri üzerinde çalışan geliştiriciler ve meraklılar için popüler bir seçimdir.

Bu projeyi Andreas Spiess’in (İsviçre aksanlı adam olarak bilinir) videosu aracılığıyla keşfettim. Ancak, benim deneyimim videoda gösterildiği kadar sorunsuz olmadı, bu yüzden ne yazık ki yaklaşık iki gün süren bir sorun giderme sürecim oldu. Bu nedenle, CC1101 radyo modülünü kullanarak çıplak bir ESP-12 tabanlı openMQTTGateway kurmak isteyenler için bu kılavuzu hazırlamaya karar verdim.

openMQTTGateway için Gerekli Malzemeler

ESP8266 (Ben bir ESP-12 kullanmayı tercih ettim)
esp-12
ESP8266 Geliştirme Kartı
programmer board
CC1101 radyo modülü
cc1101

CC1101 Modülü için Kablolama Yapılandırması

openMQTTGateway sitesinde önerilen CC1101 kablolama konfigürasyonları ve LSatan’ın kablolamasıyla ilgili sorunlarla karşılaştıktan sonra, kendi kurulumumu tasarlamaya karar verdim. Kodu değiştirdikten sonra bile ESP-12 pinlerinin durumları nedeniyle telsizin farklı GPIO yapılandırmalarıyla çalışmadığını gördüğüm için bu kablolama kılavuzunu izlemenizi şiddetle tavsiye ederim.

CC1101ESP-12
VCCVCC (3.3 V)
GRDGRD
GDO2 (Receiver)GPIO4
GDO1 (MISO)GPIO12
MOSIGPIO13
SCKGPIO14
CSNGPIO15
GDO0 (Emmiter)GPIO2

CC1101 Kullanımı için gereken Kod Değişiklikleri

openMQTTGateway web sitesi kodu yüklemek için üç uygun seçenek sunuyor: web üzerinden, hazır binary dosyaları veya kendi kurulumunuzu yapılandırmak. İlk iki yöntemi kullanarak çipi başarıyla programlarken, nodemcuv2-rf-cc1101, nodemcuv2-rf2-cc1101 ve nodemcuv2-somfy-cc1101 yazılımlarında zorluklarla karşılaştım. Özellikle, bu yazılımlar Wi-Fi erişim noktasını kuramadı, yalnızca çipin adıyla (ESP12F gibi) bir ağ oluşturdu ve bu ağa bağlanmak mümkün olmadı. Bu sorun, sürekli olarak “OpenMQTTGateway” adında bir WiFi erişim noktası oluşturan diğer nodemcu yazılımlarında mevcut değildi. Sonuç olarak, bu sorunu çözmek için üçüncü yöntemi, yani kendi kurulumumu yapılandırmayı tercih ettim.

Süreci kolaylaştırmak ve olası kütüphane ve uyumluluk sorunlarından kaçınmak için, geliştirme ortamınız olarak PlatformIO’yu kullanmanızı öneririm. Öncelikle:

  • PlatformIO’yu Kurun: Web sitesinde yer alan kurulum talimatlarını izleyerek PlatformIO’yu kurun.
  • Ardından, VSCode Extension Manager’ı açın
  • Daha sonra, resmi PlatformIO IDE uzantısını arayın
  • Bunu takiben PlatformIO IDE’yi yükleyin.
  • openMQTTGateway’i indirin: Web sitelerinde verilen kurulum talimatlarını izleyerek openMQTTGateway’i yükleyin.
  • Son olarak, sıkıştırılmış dosyayı açın ve Visual Studio Code’dan klasörü açın.

CC1101’i etkinleştirmek için User_config.h dosyasında yapılan değişiklikler

  • İlk olarak, //#define ZradioCC1101 “CC1101” satırının yorumunu kaldırmanız gerekecek. (Bu CC1101 radyosunu etkinleştirir)
  • Wifi erişim noktası sorunları yaşıyorsanız, bu durumda wifi kimlik bilgilerinizi manuel olarak girmeniz gerekecektir;
    • Satırın yorumunu kaldırarak başlayın //# define ESPWifiManualSetup true
    • Ardından, SSID’nizi # define wifi_ssid “YOUR SSID HERE” satırına girin
    • Son olarak, WIFI şifrenizi # define wifi_password “YOUR WIFI PASSWORD HERE” satırına girin
  • Eğer ağ geçidiniz için statik IP tanımlamak istiyorsanız;
    • İlk olarak, //#define NetworkAdvancedSetup true satırını kaldırın
    • Ardından, ağ geçidinizin IP adresini girin; const byte ip[] = {XXX, XXX, XXX, XXX};
    • Daha sonra modeminizin IP adresini girin; const byte gateway[] = {XXX, XXX, XXX, XXX};
    • Bunu takiben, DNS ayarlarını yapın; const byte Dns[] = {XXX, XXX, XXX, XXX};
    • Son olarak, alt ağ maskesini girin; const byte subnet[] = {XXX, XXX, XXX, XXX};

Eğer MQTT ayarlarınızı değiştirmek istiyorsanız;

  • IP ayarını bu satırdan yapabilirsiniz; # define MQTT_SERVER “XXX.XXX.XXX.XXX”
  • Port bu satırdan değiştirilebilir; # define MQTT_PORT “1883”
  • MQTT sunucunuzda kullanıcı adı ve şifre kullanıyorsanız, bunlar şu satırlardan tanımlanabilir; # define MQTT_USER “your_username” ve # define MQTT_PASS “your_password”
  • MQTT’nin temel konusu bu satırdan değiştirilebilir; # define Base_Topic “home/”

Temel konu radyoya komut gönderirken önemlidir, bu yüzden eğer değiştirirseniz, komutlarınızı bu yeni temel konuya göndermeniz gerekecektir.

User_config.h dosyasında yaptığım tüm değişiklikler bu kadar…

environments.ini dosyasındaki değişiklikler

  • Şu satırı bulun [env:nodemcuv2-rf-cc1101]
  • Birkaç satır aşağıda şöyle bir satır olmalıdır; ‘-DGateway_Name=”OpenMQTTGateway_ESP8266_RF-CC1101″’
  • Son olarak, şu 2 satırı ekleyin;
  • -DRF_RECEIVER_GPIO=4′
  • -DRF_EMITTER_GPIO=2′

Bunlar alıcı ve verici pinlerimizi tanımlayacaktır. Bu nedenle, farklı bir kablolama yaptıysanız, buradaki sayıları yeni kurulumunuza göre değiştirmelisiniz.

Platformio.ini’deki değişiklikler

default_envs = nodemcuv2-rf-cc1101 ifadesini bulun ve kaldırın.

Programlama

Geliştirme kartınızı bağlayın ve COM port numarasını kontrol edin. Visual Studio Code’dan doğru bağlantı noktasını seçin. Alt durum çubuğundaki COM port simgesine tıklayın ve menüden doğru portu seçin.

Ardından, Terminal->Yeni Terminal üst menüsünü kullanarak yeni bir terminal penceresi oluşturun

Platformio.exe run -target erase komutunu girin (Bu ESP12 çipini silecektir)

Son olarak, alt durum çubuğundaki -> simgesine tıklayın ve yüklemenin bitmesini bekleyin.

Her şey yolunda giderse, artık çalışan bir openMQTTGateway’e sahip olmalısınız.

Test

Thomas Nordquist tarafından kodlanan MQTT Explorer adında harika bir araç var ve ben bu aracı MQTT sunucumu dinlemek ve ona komut göndermek için kullanıyorum. Şiddetle tavsiye ederim. (http://mqtt-explorer.com/)

MQTT Explorer’ı çalıştırdıktan sonra MQTT sunucunuzun kimlik bilgilerini girmeniz ve bağlan düğmesine basmanız gerekecektir.

Ağ geçidiniz çalışıyorsa iki yeni konu görmelisiniz; biri temel konu (varsayılan ev) ve diğeri homeassistant.

Etrafınızda 433mhz cihazlar varsa, sinyal verilerini temel konu/OpenMQTTGateway_ESP8266_RF-CC1101/433toMQTT konusu altında ve ayrıca homeassistant/device_automation konuları altında izleyebilirsiniz.

Radyo sinyalleri göndermek için konu olarak şu sözdizimini kullanmalısınız; temel konunuz/OpenMQTTGateway_ESP8266_RF-CC1101/commands/MQTTto433. Örneğin, temel konunuz “home” ise ve “123456” gibi bir değer göndermek istiyorsanız, doğru konu “home/OpenMQTTGateway_ESP8266_RF-CC1101/commands/MQTTto433” olmalıdır. MQTT Explorer’a bu şekilde girebilir ve aktarmak için yayınla’ya tıklayabilirsiniz:

Gerisi tamamen kontrol cihazınızda (openHAB veya Home Assistant gibi) yapacağınız ayarlarla ilgili.

Umarım bu rehber size yardımcı olur.

Yazımı bitirirken OpenMQTTGateway projesindeki tüm arkadaşlara bu harika program için teşekkür etmek istiyorum.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir