Sterownik przemiennika

  • przeniesiono wszystkie parametry do pamięci NVS pozwalający na edycję bez kompilacji
  • dodano obsługę wifi i stronę WWW z możliwością zmiany parametrów i odczytu stanów
  • zmienił się pin LED mrugający podczas pracy PTT i liczenia czasu do wyłączenia
  • zmienił się pin do generowania dźwięku.
  • dodano LED sygnalizujący podłączenie do wifi
  • dodano schemat, odręczny na razie 😀
  • poprawiono aby układ ruszał również bez potrzeby łączenia z wifi, po utracie wifi pracuje dalej. jak układ ruszy bez wifi po pojawieniu się sieci łączy się automatycznie.
  • dioda sygnalizująca połączenie z wifi mruga z częstotliwością 1Hz
  • poprawiono generację tonu przed wyłączeniem przemiennika – można zmienić częstotliwość.
  • dołożono obsługę po i2c modułu przetwornika ADS1115 – pomiar czterech wartości analogowych
  • podzielono stronę WWW na dwie osobne strony: stan przemiennik i ustawienia, dodano przyciski przełączające pomiędzy stronami.
  • zmieniono tło na czarne, tekst na biało, wycentrowano tabele.
  • na stronie www stanu przemiennika dołożono tabelę z pomiarami napięć z ADS1115
  • umieszczono tabelę z pomiarem poziomu RSSI i przeliczeniem na poziom sygnału w skali S-metra
  • dopisano obsługę DFplayera podłączony do portu TX-GPIO17 i RX-GPIO16 – znamiennik głosowy
  • dopisano opcję włączenia i włączenia znamiennika głosowego w zakładce ustawienia – parametr ENABLE_VOICE
  • dopisano minimalny czas pojawiania się znamiennika głosowego – parametr VOICE_INTERVAL
  • na stronie STAN dopisano informację o wstanie włączenia znamiennika CW i znamiennika głosowego.
  • obecnie DFPlayer odtwarza pierwszy plik MP3 znajdujący się na karcie SD


Platforma: ESP32-WROOM-32

Logika: Gdy przemiennik jest wyłączony oczekuje sygnału carrier i 1750Hz przez jedną sekundę. Po tym czasie włącza PTT na 10 sekund i zaczyna mrugać dioda wskazująca odliczanie czasu. Po zaniknięciu carrier generuje roger-beep. Po kolejnych 3 sekundach generuje znamiennik przemiennika. Po odliczeniu 10 sekund od ostatniego sygnału carrier wyłącza PTT ale sekundę wcześniej generuje ton wyłączenia. Każde pojawienie się sygnału carrier resetuje licznik czasu do wyłączenia PTT. Znamiennik generowany jest minimalnie co 60 sekund. Gdy podczas generowania znamiennika pojawi się sygnał carrier dalsze generowanie znamiennika zostanie przerwane. Wszystkie parametry sa edytowalne i opisane poniżej. W linii const char znamiennik[] = „SR3X”; zmień znak swojego przemiennika.

Obecnie parametry można zmienić na stronie www. Nazwy parametrów są takie same jak z programie, Wkrótce zostanie spolszczony interfejs www.

Po zmianie parametru na stronie WWW naciśnij przycisk WRITE aby zapisać do pamięci. Zapisane wartości działają od razu. Jak wartości zostaną zmienione a chcesz wrócić do starych wciśnij przycisk READ. Prawe okno z informacjami o stanach wejść i wyjść odświeża się co 3 sekundy, jak chcesz inaczej, zmień w kodzie : „setInterval(updateStatus,3000);” – ten parametr nie jest edytowalny na WWW.


Dźwięk z GPIO252 można wygładzić poprzez zastosowanie filtra RC na wyjściu IN: rezystor R1-100om i kondensator C1-470nF:

Gdy nie wykorzystujesz sygnału tonu 1750Hz zewrzyj pin na stałe do masy. Dekoder 1750Hz przy wykorzystaniu NE567:


TODO (w kolejności):

  • obsługa playera MP3 – znamiennik głosowy
  • dekoder DTMF – sterowanie przemiennikiem
  • pomiar RSSI i komunikaty głosowe, sterowanie radiotelefonami
  • moduł GSM SIM800 do zdalnego sterowania i odsłuchu przemiennika
  • strona WWW do wizualizacji stanu (pomiary SWR, napięć i temperatur) i edycji parametrów
  • wysyłanie beacona APRS do serwera + telemetria.
  • obsługa dwóch przemienników (2m/70cm) z możliwością pracy crossband

Schemat:

Wejścia CARRIER i 1750 są podciągnięte do VCC poprzez rezystory 10kom. Zmiana stanu wymaga zwarcia do masy. Na schemacie na dole znajduje się układ z transoptorem CNY17. Z tym układem oddzielamy galwanicznie wyjścia z radia do procesora. Zmienia się wtedy logika, na transoptor (pin 1) podajemy 5V. Wyjście z transoptora z pin 5 podajemy na wejście procesora, tak jak pokazuje strzałka.

Moduł ADS1115:

ADS1115 to 4-kanałowy przetwornik ADC 16-bitowy z interfejsem I2C. Wykorzystałem moduł z linku poniżej. Płytka jest podłączona do ESP32 dwoma przewodami: SDA do portu 21 a SCL do portu 22. Zasilany napięciem 5V. Pin ADR jest podłączony do pinu SDA wymuszając adres 0x4A. Jak chcesz inny adres podłącz odpowiednio ten pin i zmień w programie:

Układ pracuje w trybie pomiaru +/-6.144V. Cztery wejścia analogowe z rezystorami pulldown do masy (wartość od 47kom do 100kom) służą do pomiaru:

  • wejście 1 – pomiar RSSI – napięcie pobierane z odbiornika (patrz informacje niżej)
  • wejście 2 – pomiar napięcia SWR – fala padająca
  • wejście 3 – pomiar napięcia SWR – fala odbita
  • wejście 4 – pomiar napięcia zasilającego cały układ i radiotelefony (z dzielnikiem napięcia 1/4)

Dzielnik napięcia wykonany z dwóch rezystorów: R1 -10 kom i R2 – 3,3kom. Uwe podłączone do 13,8V a Uwy podłączone do 4 portu ADS1115


Wykorzystuje taki moduł ESP32: https://pl.aliexpress.com/item/1005007546914400.html

Moduły wykorzystane w projekcie:

Player MP3 – DFPlayer: https://pl.aliexpress.com/item/1005007823454899.html

Dekoder DTMF: https://pl.aliexpress.com/item/1005009121093164.html

Moduł GSM SIM800: https://pl.aliexpress.com/item/1005009593121681.html

Wzmacniacz m.cz. PAM8403 2W: https://pl.aliexpress.com/item/1005006582698705.html

Przetwornik ADC 16-bit 4 kanały ADS1115 https://pl.aliexpress.com/item/1005006143923238.html


Opis wejść i wyjść:

  • Wejście nośnej (carrier) – GPIO34 (pull-up 10kom do VCC)
  • Wejście tonu 1750Hz – GPIO35 (pull-up 10kom do VCC)
  • Wyjście PTT – GPIO32 (stan wysoki po zadziałaniu)
  • Wyjście dźwięku – GPIO23
  • Dioda wskazująca odliczanie czasu – GPIO4 (LED do masy)
  • Dioda wskazująca podłączenia do wifi – GPIO2 (LED do masy)
  • SDA dla ADS1115 – GPIO21
  • SCL dla ADS1115 – GPIO22

Poniżej pomiary napięć na wyjściu RSSI w Motoroli GM900 w zależności od poziomu sygnału wejściowego w wartościach skali S w raportach radioamatorskich. Będzie to służyć do wyświetlania poziomu sygnału na WWW a docelowo na informowaniu głosem na przemienniku. Sygnał podawany z analizatora radiokomunikacyjnego Motorola R2600, napięcie mierzone miernikiem SANWA MIER-PC7000. Wartości powinny być zbliżone w innych modelach radiotelefonów Motorola. Sygnał podłączony do wejścia pierwszego ADS1115.

W programie umieszczono tabelę odpowiadająca za wyświetlanie na stronie WWW poziomu w dBm i S-metra na podstawie powyższych pomiarów. W zależności jaki używasz odbiornik wykonaj pomiary napięcia w stosunku do poziomów sygnału i wpisz odpowiednie wartości w tabelę w programie. W kolejności: napięcie RSSI, siła sygnału S, poziom w dBm.

Poniżej 2,5V na stronie WWW pojawia się informacja „no signal”. Jeżeli w twoim odbiorniku brak sygnału generuje inne napięcie zmień wartość w linii:


Opis parametrów do samodzielnej zmiany:


Kod: