TempSense: projektowanie interfejsu OLED ESP32 do pracy przy sieci energetycznej

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.

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.

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.

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.

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.