Przejdź do treści

TempSense: projektowanie interfejsu OLED ESP32 do pracy przy sieci energetycznej ​

Jednostki odbiornika i nadajnika TempSense pokazujące żywe dane temperatury na ekranach OLED

Wyobraź sobie stary sposób. Monterzy siedzą na szczycie masztu transmisyjnego, inżynier stoi na ziemi, a między nimi wisi przewód z przypiętą do niego sondą temperatury do grilla. Inżynier potrzebuje temperatury tego przewodu, żeby obliczyć, jak bardzo linia zwisa ku ziemi. Więc naciska walkie-talkie, monter mruży oczy na sondę i odczytuje „16 stopni Celsjusza”, a obliczenia się zaczynają. Zanim się skończą, przewód ma 20 stopni i cały taniec zaczyna się od nowa.

Vinod popatrzył na to i pomyślał, że może zrobić to lepiej. Miał rację.

Poznaj Vinoda ​

Vinod jest inżynierem po studiach w Transpower, firmie, która posiada i prowadzi krajową sieć transmisyjną Nowej Zelandii. Studiował mechatronikę, więc przez lata bawił się mikrokontrolerami i Pythonem, ale nigdy nie wypuścił prawdziwego urządzenia embedded dla przemysłu. Gdy jego zespół wciąż walczył z rutyną sondy do grilla podczas prac przy zwisaniu linii, zaproponował swojemu przełożonemu zbudowanie czegoś lepszego. A potem zbudował całość sam: elektronikę, firmware i CAD obudowy.

Problem: temperatura, której możesz zaufać, na pierwszy rzut oka ​

Prace przy zwisaniu linii zależą od temperatury przewodu. Pomyli ją, a matematyka prześwitu będzie zła. Ręczna metoda była wolna i dryfowała, gdy ekipa pracowała, więc Vinod chciał urządzenia, które odczytuje przewód bezpośrednio i umieszcza liczbę na ekranie, który zarówno ekipa, jak i inżynier mogą widzieć w czasie rzeczywistym.

Chciał do tego wyświetlacza OLED. Czarne piksele na OLED są naprawdę czarne, więc kontrast trzyma się na zewnątrz w świetle dziennym i wygląda ostro w pomieszczeniach. Urządzenie łączy jednostkę sondy z odbiornikiem przez łącze LoRa, które sięga ponad dwóch kilometrów, rozróżnia temperaturę do 0,5°C i działa do dziewięciu godzin na jednym ładowaniu. Pierwszą konstrukcję nazwał przydomkiem „10 cents”. Zespół zna ją jako TempSense.

Nadajnik TempSense V2, odbiornik, walizka transportowa i zacisk przewodu

Gdzie pojawiła się Lopaka ​

Ekran był częścią, której Vinod kiedyś się obawiał. Przed Lopaka projektowanie interfejsu OLED oznaczało otwarcie Photoshopa, narysowanie prostokąta we właściwym rozmiarze w pikselach, przeciąganie go w celu znalezienia współrzędnych, a potem kopiowanie tych liczb ręcznie do kodu U8g2 w szkicu Arduino. Wgraj, popatrz, przesuń, powtórz. Opisał to jako tyle tarcia, że w ogóle unikał robienia czegokolwiek wymyślnego z wyświetlaczami.

Lopaka usunęła ten krok. Ułożył ekrany TempSense wizualnie, umieścił prostokąty i tekst tam, gdzie chciał, i wniósł własne loga, które Lopaka przekonwertowała na bitmapy gotowe na wyświetlacz. Wybrał U8g2 jako bibliotekę, więc wyeksportowany kod wpadł prosto do jego firmware. Sekwencja rozruchu, w której logo i odczyty pojawiają się po kolei, pochodziła z małych opóźnień, które dodał w kodzie na wierzchu layoutu, który naprawdę widział podczas projektowania.

Jego podsumowanie Lopaka dla kolegi inżyniera: narzędzie internetowe z fajnym GUI, w którym umieszczasz kształty i bitmapy, wnosisz własny obraz, a ono konwertuje wszystko tak, by pasowało do twojego wyświetlacza, a potem zabierasz kod do swojego projektu i go podłączasz.

Jak to się złożyło ​

Pierwsza iteracja zajęła Vinodowi około miesiąca, łącznie z CAD i drukiem 3D. Była szorstka i działała. Pełna konstrukcja trwała mniej więcej sześć miesięcy, a TempSense jest teraz w drugiej wersji, z dwiema jednostkami łączącymi się w czasie rzeczywistym przez ten dwukilometrowy zasięg LoRa. Zaprojektował nawet drukowany zacisk, który osadza sondę na wiązce przewodów, z nadrukiem „This side down”, żeby nikt nie zamontował go odwrotnie.

Ekrany OLED TempSense, druk obudowy i zacisk przewodu

Moduły TX i RX łączą się przez to łącze LoRa za pomocą dopasowanych złączy pogo-pin, opisanych prosto na drukowanej obudowie, więc nie ma zgadywania, która jednostka idzie gdzie w terenie.

Zbliżenie modułów TX i RX TempSense pokazujące opisane złącza pogo-pin

Efekt ​

TempSense przyniósł Vinodowi People's Choice Award na APEX25, Annual Power Engineering Exchange. W Transpower i u dostawcy usług Northpower, gdzie testował prototypy na miejscu, jest prawdziwe zainteresowanie przekształceniem go w produkt, którego inni dostawcy mogliby używać zamiast rutyny sondy i walkie-talkie.

Odbiornik, nadajnik i stacja ładująca TempSense

Lopaka została w jego zestawie po wypuszczeniu projektu. Sięga po nią, gdy w konstrukcji pojawia się wyświetlacz OLED, około pięciu projektów rocznie, i ocenia jej utratę na 8 na 10 pod względem bólu, jaki sprawiłaby jego pracy z OLED. Płaci za Plus dla nieograniczonych ekranów i dlatego, że widział, że zbudowała ją osoba, której zależy na narzędziu.

Zbuduj własny ​

Jeśli twój następny projekt ma na sobie mały ekran, nie musisz ręcznie ustawiać pikseli tak, jak robił to Vinod. Zaprojektuj ekran w przeglądarce, wybierz bibliotekę i skopiuj kod. Dla paneli monochromatycznych zacznij od konwertera obrazów U8g2. Przechodzisz na kolorowy wyświetlacz, jak niedrogie moduły ESP32, które Vinod testował? Zobacz, co Lopaka obsługuje dla LVGL i innych bibliotek wyświetlaczy kolorowych w tym samym edytorze.

Dobra robota, Vinod. Idź i sprzedaj ich tysiąc.

FAQ ​

Jak zaprojektować interfejs OLED dla ESP32? ​

Ułóż ekran wizualnie w Lopaka, umieść tekst, kształty i bitmapy na obszarze rysowania 1:1, wybierz U8g2 jako bibliotekę i skopiuj wygenerowany kod do projektu Arduino lub PlatformIO. Żadnego ręcznego liczenia współrzędnych pikseli.

Jak przekonwertować obraz na bitmapę U8g2? ​

Wrzuć logo lub ikonę na obszar rysowania, dostrój próg monochromatyczny i wyeksportuj bitmapę U8g2 wraz z jej wywołaniem rysowania. Vinod wniósł w ten sposób własne loga dla TempSense.

Czy mogę zaprojektować monochromatyczny ekran OLED bez ręcznego kodowania? ​

Tak. Edytor generuje kod layoutu za ciebie, więc piszesz logikę danych i obsługę zdarzeń, a nie pozycje pikseli każdego prostokąta i etykiety.

Czy Lopaka działa dla SSD1306 i innych sterowników OLED? ​

Wybierz rozmiar panelu, a U8g2 obsłuży popularne sterowniki OLED, takie jak SSD1306 i SH1106, przy czym wyeksportowana bitmapa i kod rysowania pasują do wyświetlacza. Nadal wybierasz konstruktor U8g2 dla swojego kontrolera, interfejsu i pinów.

Autorzy ​

TempSense i zdjęcia autorstwa Vinoda Rodrigo.