Obsah:

Dálkové ovládání a sledování fotografií přes MQTT: 8 kroků
Dálkové ovládání a sledování fotografií přes MQTT: 8 kroků

Video: Dálkové ovládání a sledování fotografií přes MQTT: 8 kroků

Video: Dálkové ovládání a sledování fotografií přes MQTT: 8 kroků
Video: Zigbee, Thread, Matter a Espressif (Petr Stehlík) 2024, Listopad
Anonim
Dálkové ovládání a sledování fotografií přes MQTT
Dálkové ovládání a sledování fotografií přes MQTT

Ahoj.

Dnes bych chtěl mluvit o tom, jak vyrobit systém dálkového ovládání a monitorování, který lze použít například k ovládání garážových vrat, osvětlení, topení, regulace tlaku, teploty a mnoha dalších parametrů. Ale hlavní vlastností tohoto systému je, že můžete vzdáleně přijímat fotografie ze vzdáleného objektu. Než začnete příběh, krátká předmluva. Jednou jsem chtěl vytvořit systém pro sledování fotografií pomocí kompatibilní desky Arduino M0-SD, kamery VC0706 a štítu 3G/GPRS/GSM/GPS pro Arduino. Deska kompatibilní s Arduino M0 -SD byla vybrána z podmínek, které je velmi snadné programovat (stejně jako Arduino UNO), provozní napětí je 3,3 V - to je velmi výhodné pro práci s kamerou VC0706, velkým množstvím ROM a RAM, několik portů UART, samostatný virtuální port USB, ale hlavní výhodou je přítomnost konektoru micro SD přímo na desce (Je velmi výhodné ukládat velké množství dat, například obrázků).

Štít 3G/GPRS/GSM/GPS pro Arduino je velmi vhodný pro použití s kompatibilní deskou Arduino M0-SD. Na internetu je několik knihoven a také mnoho příkladů pro práci s tímto štítem. Rychlost přenosu dat (3G) je mnohem vyšší než u konvenčních štítů GPRS (zvláště vhodné pro přenos obrázků). Další výhodou je dostupnost GPS modulu.

Pro přenos dat (fotografií) přes internet jsem zvolil levný tarif od mobilního operátora. Ale vyvstala otázka: jak přenášet data? MMS? FTP? Jak obdržet oznámení o přijetí dat (fotografie)? V důsledku toho jsem dospěl k rozhodnutí odesílat data (fotografie) na e-mail a prohlížet dopisy prostřednictvím aplikace nainstalované v mobilním telefonu. Ukázalo se, že je to velmi výhodné!:-) Hotový projekt si můžete prohlédnout na tomto odkazu.

Odkazem je také podobný projekt pro Arduino UNO.

Poté jsem se rozhodl rozšířit funkčnost svého zařízení. Přidejte například možnost ovládat LED diody (i když ve skutečnosti jsou možnosti mnohem širší). E-mail na to není příliš vhodný. Možnost SMS je drahá a nepohodlná. A pak jsem se dozvěděl o MQTT. Nebudu popisovat, co to je. Dovolte mi říci: To je opravdu skvělá věc!:-) Pomocí MQTT si můžete vyměňovat nejen zprávy, ale i binární soubory (obrázky). V aplikaci pro telefon si snadno vytvoříte vlastní rozhraní.

Hledal jsem příklady implementace protokolu MQTT pro svůj štít 3G/GPRS/GSM/GPS (SIM5320) a bohužel jsem nenašel implementaci, kterou jsem potřeboval. Ale to mě nenechalo samotného. Rozhodl jsem se samostatně implementovat potřebnou funkcionalitu. Díky tomu se mi podařilo vytvořit zařízení, které je ovládáno (indikováno třemi LED) přes MQTT z aplikace nainstalované v mobilním telefonu, a také odeslat fotografii na telefon na povel z telefonu. (Řeknu vám tajemství, že jsem předtím neviděl žádné příklady odesílání obrázků prostřednictvím brokera MQTT a udělal jsem to poprvé. A když se mi podařilo přenést první obrázek, byl jsem nesmírně šťastný!:-)) A Navrhuji tedy přejít rovnou k prvnímu kroku - seznamu potřebných komponent.

Krok 1: Seznam součástí

Seznam komponent
Seznam komponent
Seznam komponent
Seznam komponent
Seznam komponent
Seznam komponent
Seznam komponent
Seznam komponent

Potřebujeme další komponenty:

1) Kompatibilní s Arduino M0-SD.

2) Kamera TTL VC0706.

3) 3G/GPRS/GSM/GPS štít pro Arduino.

4) Červená, zelená, žlutá LED, 3 odpory (100-500 Ohm), vodiče, kolíkový úhlový konektor s roztečí 2,54 mm.

5) Napájecí adaptér AC-DC (6V 1A), 3G anténa atd.

Krok 2: Příprava fotoaparátu

Příprava kamery
Příprava kamery
Příprava kamery
Příprava kamery
Příprava kamery
Příprava kamery

Kamera má výstup RS-232 pro přímé připojení k PC. Je nutné vyjmout MAX232 (převodník RS-232) a zavřít kontaktní podložky mezi odpovídajícími piny 7-10 (TX), 8-9 (RX).

Šestvodičový kabel dodaný s kamerou musí být mírně přepracován:

  • Vyjměte dva vodiče z konektoru.
  • Uspořádejte červený (+ 5V) a černý (GND) vodič podle obrázku.

Na holých koncích vodičů musí být připájené hroty jako "samice".

Krok 3: Příprava kompatibilního Arduino M0-SD

Příprava kompatibilního Arduina M0-SD
Příprava kompatibilního Arduina M0-SD
Příprava kompatibilního Arduina M0-SD
Příprava kompatibilního Arduina M0-SD
Příprava kompatibilního Arduina M0-SD
Příprava kompatibilního Arduina M0-SD

Jak již bylo zmíněno, kompatibilní Arduino M0-SD je hardwarově i softwarově kompatibilní s původním Arduino M0, ale má také integrovaný microSD konektor pro připojení paměťové karty.

Pro připojení kamery ke kompatibilnímu Arduino M0-SD na desce je nutné pájet úhlový konektor na svorky TXD, RXD (konektor X6), jak je znázorněno na obrázku. Tento port odpovídá „Sériovému“.

Bílý (Camera RX) a žlutý (Camera TX) vodič z kamery musí být připojen ke svorkám TXD a RXD (konektor X6), jak je znázorněno na obrázku.

Krok 4: Příprava štítu 3G/GPRS/GSM/GPS SIM5320

Příprava štítu 3G/GPRS/GSM/GPS SIM5320
Příprava štítu 3G/GPRS/GSM/GPS SIM5320
Příprava štítu 3G/GPRS/GSM/GPS SIM5320
Příprava štítu 3G/GPRS/GSM/GPS SIM5320
Příprava štítu 3G/GPRS/GSM/GPS SIM5320
Příprava štítu 3G/GPRS/GSM/GPS SIM5320

Před instalací sim karty do slotu musíte zakázat požadavek na PIN kód. Poté nainstalujte SIM kartu do slotu na spodní straně desky, jak ukazuje obrázek. V pozici RX-1 (D1), TX-0 (D0) musí být nainstalovány dvě propojky.

Krok 5: Montáž hardwaru

Sestava hardwaru
Sestava hardwaru
Sestava hardwaru
Sestava hardwaru
Sestava hardwaru
Sestava hardwaru

Sestava hardwaru se skládá z několika jednoduchých operací:

  • Chcete-li ovládat LED diody, musíte nejprve pájet malou konstrukci LED a odpory omezující proud (100-500 Ohm), jak je znázorněno na obrázku. Dávejte pozor na polaritu LED - anoda musí být připájena k odporům (+). Abych omezil parazitickou expozici LED diod, udělal jsem z běžné lepenky černou obrazovku.
  • Připojte LED diody a kameru ke kompatibilní desce Arduino M0-SD podle obrázku. Napájení kamery (červený vodič „+ 5V“a černý vodič „GND“) je třeba odebírat ze svorek „+ 5V“a „GND“ze slotu. K tomu můžete také použít úhlový konektor.
  • Poté připojte štít 3G/GPRS/GSM/GPS ke kompatibilní desce Arduino M0-SD. Nezapomeňte připojit 3G anténu.

Krok 6: Nastavení makléře MQTT

Nastavení makléře MQTT
Nastavení makléře MQTT
Nastavení makléře MQTT
Nastavení makléře MQTT
Nastavení makléře MQTT
Nastavení makléře MQTT

Jako brokera MQTT jsem si vybral velmi pohodlný a přehledný www.cloudmqtt.com. Poskytuje bezplatné testování. Rovněž je možné přijímat a odesílat zprávy přímo na webu.

Postup nastavení je následující:

  1. Zaregistrujte se online.
  2. Stiskněte tlačítko „Vytvořit novou instanci“.
  3. Nastavte název, například „MqttCamera“.
  4. Stiskněte tlačítko „Vybrat region“. Vyberte například „US-East-1 (Severní Virginie)“.
  5. Stiskněte tlačítko „Zkontrolovat“.
  6. Stiskněte tlačítko „Vytvořit instanci“. Zobrazit zprávu „Instance úspěšně vytvořena“.
  7. Klikněte na „MqttCamera“.
  8. Zapamatujte si informace: Server, Uživatel, Heslo, Port, Klíč API (Budeme jej potřebovat v 7. a 8. kroku).
  9. Poté můžete přejít do okna „WEBSOCKET UI“, kde můžete testovat a ladit, prohlížet a odesílat zprávy (Toto okno budeme potřebovat v dalším kroku).

Krok 7: Aplikace MQTT Dash

Aplikace MQTT Dash
Aplikace MQTT Dash
Aplikace MQTT Dash
Aplikace MQTT Dash
Aplikace MQTT Dash
Aplikace MQTT Dash

K vytvoření ovládacího panelu v mobilním telefonu jsem zvolil velmi uživatelsky přívětivou a přehlednou aplikaci MQTT Dash.

Nainstalujte si do telefonu aplikaci MQTT Dash a proveďte následující nastavení:

  1. Otevřete aplikaci.
  2. V dashboardovém okně MQTT klikněte na (+) a přidejte nový ovládací panel.
  3. V okně, které se objeví, vyplňte požadovaná pole, jako například: Jméno (například MqttCamera), Adresa, Port, Uživatelské jméno, Uživatelské heslo (Vezměte data z kroku 6).
  4. Po vyplnění polí klikněte na ikonu diskety (operace „Uložit“).
  5. V okně se seznamem ovládacích panelů klikněte na zobrazený řádek „MqttCamera“.
  6. V okně ovládacího panelu, které se otevře, kliknutím na ikonu šipky načtete metriky.
  7. Poté ve vyskakovacím okně klikněte na tlačítko „PŘIHLÁSIT SE A ČEKEJTE NA METRIKU“.
  8. Na osobním počítači otevřete účet u brokera MQTT (viz předchozí krok), otevřete okno „WEBSOCKET UI“, v okně „Odeslat zprávu“nastavte téma „metriky/výměna“a zaznamenejte text z připojený soubor metrics.txt v okně „Zpráva“klikněte na tlačítko „Odeslat“.
  9. Počkejte 10 sekund, ujistěte se, že je do telefonu přijata metrika a že je aktualizován ovládací panel.

Poté můžete přejít k programování kompatibilního Arduino M0-SD.

Krok 8: Programování a práce

Programování a práce
Programování a práce
Programování a práce
Programování a práce
Programování a práce
Programování a práce
Programování a práce
Programování a práce

Před programováním kompatibilního Arduina M0-SD musíte do počítače nainstalovat všechny potřebné knihovny (pubsubclient-master, TinyGSM-master), které jsem citoval níže. Tyto knihovny byly mírně upraveny tak, aby fungovaly s kompatibilní deskou Arduino M0-SD, kamerou VC0706 a štítem 3G/GPRS/GSM/GPS SIM5320.

K kompatibilnímu Arduino M0-SD musíte připojit kabel a napájecí zdroj (6V 1A pro napájení štítu 3G/GPRS/GSM/GPS).

Spusťte Arduino IDE. V Arduinu si IDE musí vybrat: Nástroje-> Deska: Arduino M0 Pro (nativní port USB).

Otevřete skicu MqttCamera.ino. Vyplňte pole: Uživatelské jméno, Heslo uživatele, Klíč API, Port, Server (Vezměte data z kroku 6).

Otevřete okno Serial Monitor.

Nahrát skicu. Podrobně postup programování nepopisuji (návodů je na internetu dost).

Po úspěšném načtení a správné montáži by se v okně Serial Monitor měly objevit následující informace:

Kamera VC0706 + Arduino M0 + SIM5320 + MQTT

Camera init… verze: ----------------- VC0703 1,00 Ctrl infr existují Uživatelsky definovaný senzor 525 ----------------- úspěch ! Inicializace modemu… Modem: AT+CGMM SIMCOM_SIM5320E Čekání na síť… OK Připojení k internetu OK Připojení k 3.83.68.228 se nezdařilo Připojení k 3.83.68.228 OK Ping: 0

Řádek „Ping: XX“je periodická zpráva z kompatibilního Arduino M0-SD na server. Místo těchto informací můžete odesílat měření ADC, stav vstupu a další.

V aplikaci MQTT Dash klikněte na ikony žárovek (LED_YELLOW, LED_GREEN, LED_RED) - zapněte/vypněte. Podívejte se do okna sériového monitoru - měly by existovat informace o něčem takovém:

LED_YELLOW Svítí

LED_YELLOW_Off LED_GREEN svítí LED_GREEN nesvítí LED_RED svítí LED_RED nesvítí

Klikněte na ikonu kamery - odešlete příkaz „SHOOT“a chvíli počkejte. V okně Serial Monitor by se měly objevit následující informace:

Začněte střílet!

Vyfoceno! vytvořte IMAGE332.jpg, počkejte, až se načte 3488 bajtový obrázek… Hotovo! Trvalo 1456 ms Odeslat obrázek (3488 bajtů) … hotovo!

A po chvíli (5-10 sekund) v okně "ZOBRAZIT OBRÁZEK" by měla být zobrazena fotografie.

Pro demonstraci jsem nasměroval kameru VC0706 na LED diody, abyste viděli jejich stav poté, co jsem je libovolně přepnul. Ale při skutečném použití můžete kameru nasměrovat do místnosti, dveří, ulice, brány, auta atd. (Samozřejmě musíte vzít v úvahu požadavky zákona). Jako ukázku uvádím několik snímků obrazovky z mobilní telefon, kde jsou zobrazeny nainstalované a skutečné stavy LED diod.

Doufám, že moje instrukce byla pro vás zajímavá a užitečná. Budu rád za vaši zpětnou vazbu a komentáře. V mých plánech na vývoj mého zařízení a sdílení s vámi nové inovace. Díky za sledování!

Doporučuje: