İçindekiler:

MQTT Üzerinden Uzaktan Kontrol ve Fotoğraf İzleme: 8 Adım
MQTT Üzerinden Uzaktan Kontrol ve Fotoğraf İzleme: 8 Adım

Video: MQTT Üzerinden Uzaktan Kontrol ve Fotoğraf İzleme: 8 Adım

Video: MQTT Üzerinden Uzaktan Kontrol ve Fotoğraf İzleme: 8 Adım
Video: Teleduino UNO - iPhone ile Arduino'yu Uzaktan Kontrol Etmek 2024, Kasım
Anonim
MQTT Üzerinden Uzaktan Kontrol ve Fotoğraf İzleme
MQTT Üzerinden Uzaktan Kontrol ve Fotoğraf İzleme

Merhaba.

Bugün sizlere örneğin garaj kapıları, aydınlatma, ısıtma, basınç kontrolü, sıcaklık ve daha birçok parametreyi kontrol etmek için kullanılabilecek bir uzaktan kumanda ve izleme sisteminin nasıl yapılacağından bahsetmek istiyorum. Ancak bu sistemin ana özelliği, uzaktaki bir nesneden uzaktan fotoğraf alabilmenizdir. Hikayeye başlamadan önce kısa bir önsöz. Bir keresinde Arduino için uyumlu bir Arduino M0-SD kartı, bir VC0706 kamera ve bir 3G/GPRS/GSM/GPS kalkanı kullanarak bir fotoğraf izleme sistemi yapmak istedim. Arduino M0-SD uyumlu kart, programlamanın çok kolay olduğu koşullardan seçildi (tıpkı Arduino UNO gibi), çalışma voltajı 3.3V - bu VC0706 kamera ile çalışmak için çok uygun, büyük miktarda ROM ve RAM, birkaç bağlantı noktası UART, USB'nin ayrı bir sanal bağlantı noktasıdır, ancak ana avantaj, doğrudan kart üzerinde bir mikro SD konektörünün bulunmasıdır (Görüntüler gibi büyük miktarda veri depolamak çok uygundur).

Arduino için 3G/GPRS/GSM/GPS kalkanı, uyumlu bir Arduino M0-SD kartı ile kullanım için çok uygundur. İnternette birkaç kütüphane ve bu kalkanla çalışmak için birçok örnek var. Veri aktarım hızı (3G), geleneksel GPRS kalkanlarından çok daha yüksektir (özellikle görüntüleri iletmek için uygundur). GPS modülünün mevcudiyeti ek bir avantajdır.

İnternet üzerinden veri (fotoğraf) iletimi için bir hücresel operatörden düşük maliyetli bir tarife seçtim. Ancak soru ortaya çıktı: veri nasıl aktarılır? MMS? FTP? Verilerin alınması hakkında nasıl bildirim alınır (fotoğraf)? Sonuç olarak, bir cep telefonuna yüklenen uygulama aracılığıyla e-postaya veri (fotoğraf) gönderme ve mektupları görüntüleme kararına geldim. Çok uygun olduğu ortaya çıktı!:-) Bitmiş proje bu linkte görüntülenebilir.

Referans olarak Arduino UNO için de benzer bir proje var.

Sonra cihazımın işlevselliğini genişletmeye karar verdim. Örneğin, LED'leri kontrol etme yeteneğini ekleyin (gerçekte olasılıklar çok daha geniş olmasına rağmen). Bunun için e-posta pek uygun değil. SMS seçeneği pahalı ve rahatsız edici. Sonra MQTT'yi öğrendim. Onun ne olduğunu açıklamayacağım. Sadece şunu söyleyeyim: Bu gerçekten harika bir şey!:-) MQTT'nin yardımıyla sadece mesajları değil, aynı zamanda ikili dosyaları (görüntüleri) de değiştirebilirsiniz. Telefon uygulamasında kolayca kendi arayüzünüzü oluşturabilirsiniz.

3G/GPRS/GSM/GPS kalkanım (SIM5320) için MQTT protokolünün uygulama örneklerini aradım ve ne yazık ki ihtiyacım olan uygulamayı bulamadım. Ama bu beni yalnız bırakmadı. Gerekli işlevselliği bağımsız olarak uygulamaya karar verdim. Sonuç olarak, bir cep telefonuna yüklenen bir uygulamadan MQTT üzerinden kontrol edilen (üç LED ile gösterilen) bir cihaz oluşturmayı başardım ve ayrıca telefondan komutla telefona bir fotoğraf gönderebildim. (Size bir sır vereceğim ki, MQTT brokeri üzerinden görüntü gönderme örneğini daha önce görmedim ve ilk defa yaptım. Ve ilk resmi aktarmayı başardığımda çok mutlu oldum!:-)) Ve bu yüzden, doğrudan ilk adıma - gerekli bileşenlerin bir listesine - gitmeyi öneriyorum.

Adım 1: Bileşenlerin Listesi

Bileşen Listesi
Bileşen Listesi
Bileşen Listesi
Bileşen Listesi
Bileşen Listesi
Bileşen Listesi
Bileşen Listesi
Bileşen Listesi

Sonraki bileşenlere ihtiyacımız var:

1) Arduino M0-SD uyumlu.

2) TTL-kamera VC0706.

3) Arduino için 3G/GPRS/GSM/GPS kalkanı.

4) Kırmızı, yeşil, sarı LED'ler, 3 direnç (100-500 Ohm), teller, 2,54 mm aralıklı pin açılı konektör.

5) AC-DC güç adaptörü (6V 1A), 3G anteni vb.

Adım 2: Kameranın Hazırlanması

Kameranın Hazırlanması
Kameranın Hazırlanması
Kameranın Hazırlanması
Kameranın Hazırlanması
Kameranın Hazırlanması
Kameranın Hazırlanması

Kamera, bir PC'ye doğrudan bağlantı için bir RS-232 çıkışına sahiptir. MAX232'yi (RS-232 dönüştürücü) çıkarmak ve karşılık gelen 7-10 (TX), 8-9 (RX) pinleri arasındaki kontak pedlerini kapatmak gerekir.

Kamerayla birlikte gelen altı telli kablonun biraz yeniden yapılması gerekiyor:

  • İki kabloyu konektörden çıkarın.
  • Kırmızı (+ 5V) ve siyah (GND) kabloları şekilde gösterildiği gibi yeniden düzenleyin.

Tellerin çıplak uçlarında "dişi" gibi lehimli uçlar olmalıdır.

Adım 3: Uyumlu Arduino M0-SD'nin Hazırlanması

Uyumlu Arduino M0-SD Hazırlanması
Uyumlu Arduino M0-SD Hazırlanması
Uyumlu Arduino M0-SD Hazırlanması
Uyumlu Arduino M0-SD Hazırlanması
Uyumlu Arduino M0-SD Hazırlanması
Uyumlu Arduino M0-SD Hazırlanması

Daha önce de belirtildiği gibi, uyumlu Arduino M0-SD, orijinal Arduino M0 ile uyumlu donanım ve yazılımdır, ancak aynı zamanda bir hafıza kartını bağlamak için yerleşik bir microSD konektörü vardır.

Kamerayı kart üzerindeki uyumlu Arduino M0-SD'ye bağlamak için açısal konektörü şekilde gösterildiği gibi TXD, RXD (konektör X6) terminallerine lehimlemek gerekir. Bu bağlantı noktası "Seri" ile eşleşir.

Kameradan gelen beyaz (Camera RX) ve sarı (Camera TX) kablolar, şekilde gösterildiği gibi sırasıyla TXD ve RXD (konektör X6) terminallerine bağlanmalıdır.

Adım 4: 3G/GPRS/GSM/GPS Shield SIM5320'nin Hazırlanması

3G/GPRS/GSM/GPS Shield SIM5320'nin Hazırlanması
3G/GPRS/GSM/GPS Shield SIM5320'nin Hazırlanması
3G/GPRS/GSM/GPS Shield SIM5320'nin Hazırlanması
3G/GPRS/GSM/GPS Shield SIM5320'nin Hazırlanması
3G/GPRS/GSM/GPS Shield SIM5320'nin Hazırlanması
3G/GPRS/GSM/GPS Shield SIM5320'nin Hazırlanması

Yuvaya bir sim kart takmadan önce, PIN kodu talebini devre dışı bırakmalısınız. Ardından SIM kartı şekilde gösterildiği gibi kartın alt tarafındaki yuvaya takın. RX-1 (D1), TX-0 (D0) konumuna iki jumper takılmalıdır.

Adım 5: Donanım Montajı

Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı

Donanım montajı birkaç basit işlemden oluşur:

  • LED'leri kontrol etmek için, önce şekilde gösterildiği gibi küçük bir LED tasarımını ve akım sınırlayıcı dirençleri (100-500 Ohm) lehimlemeniz gerekir. LED'lerin polaritesine dikkat edin - anot dirençlere (+) lehimlenmelidir. LED'lerin parazit maruziyetini azaltmak için normal kartondan siyah bir ekran yaptım.
  • LED'leri ve kamerayı şemada gösterildiği gibi uyumlu bir Arduino M0-SD kartına bağlayın. Kameranın güç kaynağı (kırmızı kablo "+ 5V" ve siyah kablo "GND") yuvadan "+5V" ve "GND" terminallerinden alınmalıdır. Bunun için bir açı konektörü de kullanabilirsiniz.
  • Bundan sonra, 3G/GPRS/GSM/GPS kalkanını uyumlu Arduino M0-SD kartına bağlayın. 3G anten bağlamayı unutmayın.

6. Adım: MQTT Broker'ı Ayarlama

MQTT Aracısını Ayarlama
MQTT Aracısını Ayarlama
MQTT Aracısını Ayarlama
MQTT Aracısını Ayarlama
MQTT Aracısını Ayarlama
MQTT Aracısını Ayarlama

MQTT brokeri olarak çok kullanışlı ve net bir www.cloudmqtt.com adresini seçtim. Ücretsiz test sağlar. Doğrudan site üzerinden mesaj almak ve göndermek de mümkündür.

Kurulum prosedürü aşağıdaki gibidir:

  1. Çevrimiçi kayıt.
  2. "Yeni Örnek Oluştur" düğmesine basın.
  3. Adı ayarlayın, örneğin "MqttCamera".
  4. "Bölge Seç" düğmesine basın. Örneğin, "ABD-Doğu-1 (Kuzey Virginia)" öğesini seçin.
  5. "İncele" düğmesine basın.
  6. "Örnek Oluştur" düğmesine basın. "Örnek başarıyla oluşturuldu" mesajını görüntüleyin.
  7. "MqttCamera" yı tıklayın.
  8. Bilgileri hatırlayın: Sunucu, Kullanıcı, Parola, Bağlantı Noktası, API Anahtarı (7. ve 8. adımlarda buna ihtiyacımız olacak).
  9. Ardından, test edip hata ayıklayabileceğiniz, mesajları görüntüleyebileceğiniz ve gönderebileceğiniz "WEBSOCKET UI" penceresine gidebilirsiniz (Bir sonraki adımda bu pencereye ihtiyacımız olacak).

7. Adım: MQTT Dash Uygulaması

MQTT Dash Uygulaması
MQTT Dash Uygulaması
MQTT Dash Uygulaması
MQTT Dash Uygulaması
MQTT Dash Uygulaması
MQTT Dash Uygulaması

Bir cep telefonunda kontrol paneli oluşturmak için çok kullanıcı dostu ve anlaşılır bir MQTT Dash uygulaması seçtim.

Telefonunuza MQTT Dash uygulamasını yükleyin ve aşağıdaki ayarları yapın:

  1. Uygulamayı açın.
  2. MQTT tire penceresinde, yeni bir kontrol paneli eklemek için (+) öğesine tıklayın.
  3. Görünen pencerede, aşağıdaki gibi gerekli alanları doldurun: Ad (örneğin, MqttCamera), Adres, Bağlantı Noktası, Kullanıcı adı, Kullanıcı şifresi (6. adımdaki verileri alın).
  4. Alanları doldurduktan sonra disket simgesine tıklayın ("Kaydet" işlemi).
  5. Kontrol panelleri listesinin bulunduğu pencerede, görünen satıra tıklayın " MqttCamera ".
  6. Açılan kontrol paneli penceresinde metrikleri yüklemek için ok simgesini tıklayın.
  7. Ardından açılan pencerede "ABONE OL VE METRİĞİ BEKLE" butonuna tıklayın.
  8. Kişisel bir bilgisayarda, bir MQTT aracısında bir hesap açın (önceki adıma bakın), " WEBSOCKET UI " penceresini açın, " Mesaj gönder " penceresinde "metrikler/değişim" konusunu ayarlayın ve metni kaydedin. Ekli metrics.txt dosyasını "Mesaj" penceresinde "Gönder" butonuna tıklayın.
  9. 10 saniye bekleyin, metriğin telefona ulaştığından ve kontrol panelinin güncellendiğinden emin olun.

Ardından uyumlu Arduino M0-SD programlamaya geçebilirsiniz.

Adım 8: Programlama ve Çalışma

Programlama ve Çalışma
Programlama ve Çalışma
Programlama ve Çalışma
Programlama ve Çalışma
Programlama ve Çalışma
Programlama ve Çalışma
Programlama ve Çalışma
Programlama ve Çalışma

Uyumlu Arduino M0-SD'yi programlamadan önce, aşağıda bahsettiğim gerekli tüm kütüphaneleri (pubsubclient-master, TinyGSM-master) bilgisayara kurmanız gerekmektedir. Bu kitaplıklar, uyumlu bir Arduino M0-SD kartı, bir VC0706 kamera ve bir 3G/GPRS/GSM/GPS SIM5320 kalkanı ile çalışacak şekilde biraz değiştirildi.

Kablonuzu ve güç kaynağınızı (3G/GPRS/GSM/GPS kalkanına güç sağlamak için 6V 1A) uyumlu Arduino M0-SD'ye bağlamanız gerekir.

Arduino IDE'yi başlatın. Arduino'da IDE şunları seçmelidir: Araçlar-> Kart: Arduino M0 Pro (Yerel USB Bağlantı Noktası).

MqttCamera.ino taslağını açın. Alanları doldurun: Kullanıcı adı, Kullanıcı şifresi, API Anahtarı, Bağlantı Noktası, Sunucu (6. adımdaki verileri alın).

Seri Monitör penceresini açın.

Kroki yükleyin. Programlama prosedürünü ayrıntılı olarak anlatmıyorum (İnternette yeterli talimat var).

Başarılı yükleme ve uygun montajdan sonra, Seri Monitör penceresinde aşağıdaki bilgiler görünmelidir:

VC0706 Kamera + Arduino M0 + SIM5320 + MQTT

Kamera başlangıç… sürümü: ----------------- VC0703 1.00 Ctrl infr var Kullanıcı tanımlı sensör 525 ----------------- başarılı ! Modem başlatılıyor… Modem: AT+CGMM SIMCOM_SIM5320E Ağ bekleniyor… Tamam İnternete bağlanılıyor Tamam 3.83.68.228'e bağlanılıyor başarısız 3.83.68.228'e bağlanılıyor Tamam Ping: 0

"Ping: XX " satırı, uyumlu Arduino M0-SD'den sunucuya periyodik bir mesajdır. Bu bilgi yerine ADC ölçümleri, giriş durumu ve daha fazlasını gönderebilirsiniz.

MQTT Dash uygulamasında ampullerin simgelerine (LED_YELLOW, LED_GREEN, LED_RED) tıklayın - açın/kapatın. Seri monitör penceresine bakın - bunun gibi bir şey hakkında bilgi olmalıdır:

LED_YELLOW Açık

LED_YELLOW_Off LED_GREEN Açık LED_GREEN kapalı LED_RED Açık LED_RED Kapalı

Kamera simgesine tıklayın - " ÇEK " komutunu gönderin ve bir süre bekleyin. Seri Monitör penceresinde aşağıdaki bilgiler görünmelidir:

Vurmaya Başlayın!

Fotoğraf çekildi! IMAGE332.jpg oluştur 3488 baytlık görüntüyü almak için bekleyin …Bitti! 1456 ms sürdü Resim gönder (3488 bayt)…bitti!

Ve bir süre sonra (5-10 saniye) "GÖRÜNTÜYÜ GÖR" penceresinde fotoğraf görüntülenmelidir.

Demo için VC0706 kamerayı LED'lere yönlendirdim, böylece onları keyfi bir şekilde değiştirdikten sonra durumlarını görebilirsiniz. Ancak gerçek kullanımda kamerayı bir odaya, kapıya, sokağa, kapıya, arabaya vb. yönlendirebilirsiniz. (Tabii ki, yasanın gerekliliklerini de göz önünde bulundurmalısınız). LED'lerin kurulu ve gerçek durumlarının görüntülendiği cep telefonu.

Umarım talimatım sizin için ilginç ve faydalı olmuştur. Geri bildirim ve yorumlarınızı memnuniyetle karşılayacağım. Cihazımı geliştirmeyi ve yeni yenilikleri sizlerle paylaşmayı planlıyorum. İzlediğiniz için teşekkürler!

Önerilen: