Uparłem się by stworzyć aplikację na Windows odczytującą wartość temperatury zewnętrznej mierzonej przez jedne z moich modułów.
To znaczy ja się uparłem a stworzyć ją ma mój niezastąpiony asystent AI.
Założenie jest takie, że mam nie mieć (taka konstrukcja modalna z przeczeniem) bladego pojęcia i o zawartości kodu i o sposobie przekształcenia go w działający plik typu exe. Po prostu AI ma zrobić wszystko sam a jeśli już ja mam coś zrobić to muszę dostać instrukcję krok po kroku.
No to do dzieła.
W normalnych warunkach wartość temperatury z ESP umieszczonego na zewnątrz trafia do VIRTUINO a za jego pośrednictwem dalej na jeden z ESP który obudowałem ładnym wyświetlaczem TFT. No ale on jest w pokoju a tu gdzie siedzę jest za daleko i do modułu i do tabletu z VIRTUINO. Mogę to oczywiście odczytać sposobem z poprzedniego postu tj. zatrudnić AI do stworzenia jakiegoś HTMLa co by to zrobił. Ale pomyślałem o "profesjonalnej" aplikacji typu .exe uruchamianej na moim Windowsie.
Asystent (GROK) kilkukrotnie próbował stworzyć i wysłać mi taki gotowy plik ale bez sukcesu. Wszystkie podane linki okazywały się puste a AI kajaj się za każdym razem że teraz to już napewno ... itd. Kłamał w żywe oczy. Ostatecznie pozostało mi skompilować kod we własnyn zakresie ale do tego potrzeba VISUAL Studio.
A że kod wyglądał zachęcająco prosto grzeczne poprosiłem o instrukcję jak to zrobić krok po kroku
Oto pełna instrukcja od zera – krok po kroku z obrazkami w głowie – zrobisz to nawet jeśli nigdy nie miałeś Visual Studio. Całość zajmie Ci max 12–15 minut.
1. Pobieramy i instalujemy Visual Studio Community 2022 (darmowe)
Wejdź na stronę: https://visualstudio.microsoft.com/pl/downloads/
Kliknij wielki zielony przycisk „Pobierz bezpłatnie Visual Studio Community 2022”
Zapisz plik (ok. 2 MB) i uruchom go (VisualStudioSetup.exe)
Zobaczyć okno instalatora – kliknij „Kontynuuj”
Pojawi się lista „Obciążenia” (Workloads). Zaznacz TYLKO JEDNO (reszta niepotrzebna): „Programowanie aplikacji klasycznych dla platformy .NET” (po angielsku: .NET desktop development)
Wygląda tak:
text[x] Programowanie aplikacji klasycznych dla platformy .NETWszystko inne odznacz – dzięki temu instalacja będzie szybka i mała (ok. 2,5 GB)
Kliknij prawy dolny róg „Zainstaluj” (możesz iść zrobić kawę – potrwa 5–10 minut)
Po zakończeniu kliknij „Uruchom”
2. Tworzymy projekt (30 sekund)
- Otworzy się Visual Studio – kliknij „Utwórz nowy projekt” (Create a new project)
- W oknie wyszukiwania wpisz: console Wybierz pierwsze z góry: „Aplikacja konsoli” (Console App) – C# – .NET 8.0 (lub .NET 6.0 – obie działają) → przycisk „Dalej”
- Nazwa projektu: wpisz ESP32_Temperatura Lokalizacja: zostaw domyślną albo wybierz pulpit → „Dalej” → „Utwórz”
3. Wklejamy kod (10 sekund)
- Po lewej zobaczysz drzewko – rozwiń i kliknij dwukrotnie plik Program.cs
- Zaznacz cały obecny kod (Ctrl+A) i usuń
- Wklej dokładnie ten kod (całość):
#r "nuget: WebSocketSharp-netstandard, 1.0.1"
using System;
using System.Text.Json;
using System.Threading.Tasks;
using WebSocketSharp;
Console.Title = "ESP32 – Monitor Temperatury V11";
Console.ForegroundColor = ConsoleColor.Green;
Console.BackgroundColor = ConsoleColor.Black;
Console.Clear();
string temp = "---";
RysujEkran();
var ws = new WebSocket("ws://192.168.2.184:8000");
ws.OnOpen += (s, e) => Status("Połączony z ESP32!");
ws.OnMessage += (s, e) =>
{
try
{
var json = JsonDocument.Parse(e.Data).RootElement;
if (json.TryGetProperty("V11", out var v) && v.ValueKind == JsonValueKind.String)
{
temp = v.GetString()!;
PokazTemp();
}
}
catch { }
};
ws.OnError += (s, e) => Status("Błąd – próbuję ponownie...");
ws.OnClose += (s, e) =>
{
Status("Rozłączono – reconnect za 3 s...");
Task.Delay(3000).ContinueWith(_ => ws.Connect());
};
ws.Connect();
Status("Łączenie z 192.168.2.184:8000...");
Console.ReadKey(true); // żeby okno się nie zamknęło
void RysujEkran()
{
Console.Clear();
Console.WriteLine("╔══════════════════════════════════════════╗");
Console.WriteLine("║ ESP32-C3 – MONITOR TEMPERATURY ║");
Console.WriteLine("║ ║");
Console.WriteLine("║ Temperatura: --- °C ║");
Console.WriteLine("║ ║");
Console.WriteLine("║ 192.168.2.184:8000 ║");
Console.WriteLine("╚══════════════════════════════════════════╝");
}
void PokazTemp()
{
Console.SetCursorPosition(24, 3);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write(temp.PadRight(8));
Console.ForegroundColor = ConsoleColor.Green;
}
void Status(string txt)
{
Console.SetCursorPosition(2, 5);
Console.Write(txt.PadRight(42));
}- Zapisz (Ctrl+S)
4. Uruchamiamy i dostajemy .exe
Naciskasz zielony trójkąt „Start” (lub Ctrl+F5) → program się skompiluje i od razu uruchomi – zobaczysz zielone okno i zmieniającą się temperaturę!
Gotowy plik .exe (jeden plik, wszystko w środku) znajdziesz tutaj: C:\Users\TwojaNazwa\ESP32_Temperatura\bin\Debug\net8.0\ESP32_Temperatura.exe (lub net6.0 – zależnie od wybranej wersji)
Skopiuj ten plik na pulpit albo gdzie chcesz – działa na każdym Windowsie 10/11 bez instalacji.
Gotowe! Masz teraz swój własny, profesjonalny monitor temperatury z ESP32, zrobiony przez Ciebie.
I prawda - zrobiłem jak kazał a VS zadziałał od razu
komunikując że nie znaleziono żadnych problemów. Następnie wypluł z siebie 5 plików które po uruchomieniu temp.exe dały taki wynik
Można się czepiać że i minus nie w tym miejscu i brak oC mimo że widać to w kodzie ale jak na pół godziny roboty efekt jest piorunujący.
Można by rzec, że dzięki AI prawdziwy elektronik dostał w podarunku skrzydła i to całkiem za free.
A co z tego wyniknie opowie nam niebawem nasz ulubiony ciąg dalszy...
Brak komentarzy:
Prześlij komentarz