{"id":334472,"date":"2022-06-14T15:01:02","date_gmt":"2022-06-14T15:01:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=334472"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=334472","title":{"rendered":"<span>\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 .NET nanoFramework? \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c LCD \u044d\u043a\u0440\u0430\u043d, \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u0435\u043c Wi-Fi \u0441\u0435\u0442\u0438<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/gd\/bl\/_r\/gdbl_rbssvgwklwcbgjxl3fslve.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/gd\/bl\/_r\/gdbl_rbssvgwklwcbgjxl3fslve.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 .NET nanoFramework \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043e\u0442\u043c\u0435\u0442\u0438\u043b\u0430 \u0441\u0432\u043e\u0439 \u044e\u0431\u0438\u043b\u0435\u0439. \u0417\u0430 5 \u043b\u0435\u0442 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0430\u0441\u044c \u0438\u0437 \u043c\u0430\u043b\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0435 open-source \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 Visual Studio Code, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 Linux \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 C#, \u043a\u0430\u043a \u0438 \u0432 Windows. \u0411\u044b\u043b\u0438 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b nuget-\u043f\u0430\u043a\u0435\u0442\u044b, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u0412 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c OLED \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 SSD1306, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043f\u043e\u0434 \u043d\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0434\u0438\u0441\u043f\u043b\u0435\u044f \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u043e\u0434 \u0432 upstream, \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043a\u0430\u043d\u0435\u0440 Wi-Fi \u0441\u0435\u0442\u0435\u0439.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h1>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432 Visual Studio Code<\/h1>\n<p>  \u0414\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u043b\u044f .NET nanoFramework \u0432\u0435\u043b\u0430\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Visual Studio 2019 \u043f\u043e\u0434 Windows 10+. \u042d\u0442\u043e \u043a\u0440\u0430\u0439\u043d\u0435 \u0441\u0443\u0436\u0430\u043b\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0414\u043b\u044f \u043e\u043b\u0434\u0441\u043a\u0443\u043b\u044c\u043d\u0438\u043a\u043e\u0432 Windows 7 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043e\u043a\u043d\u043e \u043e\u0431\u0437\u043e\u0440\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b\u043e \u043a \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>  \u041d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=nanoframework.vscode-nanoframework\">\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 .NET nanoFramework<\/a> \u0434\u043b\u044f <a href=\"https:\/\/code.visualstudio.com\/\">VS Code<\/a>, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 C# \u0434\u043b\u044f .NET nanoFramework. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Mac, Linux (64 bits) \u0438 Windows (64 bits). \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/dotnet.microsoft.com\/en-us\/download\/dotnet\/6.0\">.NET 6.0<\/a> \u0438 <a href=\"https:\/\/visualstudio.microsoft.com\/en\/thank-you-downloading-visual-studio\/?sku=BuildTools&amp;amp;rel=16\">Visual Studio build tools<\/a> \u0434\u043b\u044f Windows (\u0432 Linux\/macOS \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 <i>mono-complete<\/i>). \u041d\u043e \u043f\u043e\u043a\u0430, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Windows \u0441 Visual Studio.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/xs\/ax\/4b\/xsax4bader5idhzak6ylddlggsw.gif\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/xs\/ax\/4b\/xsax4bader5idhzak6ylddlggsw.gif\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/xs\/ax\/4b\/xsax4bader5idhzak6ylddlggsw.gif\"\/><\/a><br \/>  <em>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f NET nanoFramework \u0434\u043b\u044f VS Code<\/em><\/p>\n<p>  \u041e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u0430\u043b\u043e \u0443\u0441\u0438\u043b\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432 \u043e\u0434\u0438\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u0430\u0442\u044c \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 ESP32, STM32, NXP \u0438 TI.<\/p>\n<p>  \u041f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u0430 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e VS Code \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u043e\u0442\u043b\u0430\u0434\u043a\u0438, \u0432\u0437\u0430\u043c\u0435\u043d \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0433\u043e \u0432 Visual Studio. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432 VS Code \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043e\u0442\u043b\u0430\u0434\u043a\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 C\/C++. \u041f\u043e \u043e\u0446\u0435\u043d\u043a\u0430\u043c \u0442\u0440\u0443\u0434\u043e\u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c 1 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0435 6 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043f\u0440\u0438 \u043f\u043e\u043b\u043d\u043e\u043c \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0434\u043d\u0435. \u0421 \u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u044d\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0443 \u043e\u0442\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u0430 \u043f\u043e\u0442\u043e\u043c. \u041d\u043e, \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u0442\u043e\u0434 <i>Debug.Write(Line)<\/i>. \u0414\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 921600 \u0431\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 putty \u0438\u043b\u0438 \u043b\u044e\u0431\u0443\u044e \u0434\u0440\u0443\u0433\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e\u0440\u0442\u0430\u043c\u0438. \u042d\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043d\u0435 \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u0430\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0432 Visual Studio, \u043d\u043e \u0432\u0441\u0435 \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c. Visual Studio 2019 \u043f\u043e \u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0443\u044e Community \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044e. \u0411\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f <a href=\"https:\/\/www.nanoframework.net\/vs-code-extension-for-net-nanoframework\/\">\u0432 \u0431\u043b\u043e\u0433\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432<\/a>. \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430\u00a0<a href=\"https:\/\/docs.nanoframework.net\/content\/getting-started-guides\/getting-started-vs-code.html\">\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c .NET nanoFramework VS Code.<\/a><\/p>\n<h1>\u0412\u0441\u0435 \u0435\u0441\u0442\u044c nuget-\u043f\u0430\u043a\u0435\u0442\u044b<\/h1>\n<p>  \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/584144\/\">\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a> \u043a \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 ESP32 DevKit \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u043d\u044b\u0439 \u0434\u0430\u0442\u0447\u0438\u043a BME280. \u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u043a \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0434\u0430\u0442\u0447\u0438\u043a\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0431\u0440\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f GitHub nanoFramework.IoT.Device \u2014 <a href=\"https:\/\/github.com\/nanoframework\/nanoFramework.IoT.Device\/blob\/develop\/devices\/Bmxx80\/README.md\">BMxx80 Device Family<\/a>. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u043a \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 nuget-\u043f\u0430\u043a\u0435\u0442\u043e\u0432:<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/vf\/p4\/xq\/vfp4xqvadlit9_gg1ykxxqxwskc.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vf\/p4\/xq\/vfp4xqvadlit9_gg1ykxxqxwskc.png\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/vf\/p4\/xq\/vfp4xqvadlit9_gg1ykxxqxwskc.png\"\/><\/a><br \/>  <em>Nuget-\u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f .NET nanoFramework<\/em><\/p>\n<p>  \u0421\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u0435\u0436 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a NuGet-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 1 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 7 \u043c\u0430\u044f \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0433\u043e\u0434\u0430, \u043a \u044d\u0442\u043e\u0439 \u0446\u0438\u0444\u0440\u0435 \u0448\u043b\u0438 \u0434\u043e\u043b\u0433\u0438\u0445 5 \u043b\u0435\u0442. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c\u0443 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u0443\u0436\u0435 \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 \u0432\u0441\u0435\u0433\u043e \u0437\u0430 9 \u043c\u0435\u0441\u044f\u0446\u0435\u0432!<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/wm\/8e\/0a\/wm8e0aeptvyy9amb_xy3409wkao.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/wm\/8e\/0a\/wm8e0aeptvyy9amb_xy3409wkao.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/wm\/8e\/0a\/wm8e0aeptvyy9amb_xy3409wkao.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u0421\u0443\u043c\u043c\u0430\u0440\u043d\u044b\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a Nuget-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 .NET nanoFramework<\/em><\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"https:\/\/www.nanoframework.net\/2-million-nuget-downloads-and-counting\/\">2 MILLION NUGET DOWNLOADS AND COUNTING<\/a>.<\/p>\n<h1>\u041d\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f<\/h1>\n<p>  \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044e \u00ab\u0437\u0440\u0435\u043b\u043e\u0441\u0442\u0438\u00bb \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a .NET nanoFramework, \u0441 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0447\u0438\u0441\u043b\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u0438\u043c\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438\/\u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445, \u0432 \u043a\u043e\u043d\u0446\u0435 \u043c\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u0438\u043d\u044f\u043b\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 (stable) \u0432\u0435\u0440\u0441\u0438\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a \u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u044d\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u0420\u0430\u043d\u044c\u0448\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u0437\u0430\u0442\u0435\u043c \u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0434\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u0438\u043d\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f, \u0438 \u0431\u044b\u043b\u043e \u0442\u0440\u0443\u0434\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438\/\u0438\u043b\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u0412\u0441\u0435 \u044d\u0442\u043e \u0443\u0439\u0434\u0435\u0442 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0435.<\/p>\n<p>  \u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 GitHub, \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0435\u0442\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u00abmain\u00bb \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0432\u0435\u0442\u043a\u0438 \u00abdevelop\u00bb. \u0417\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0432\u043d\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u043c\u043e\u0449\u044c \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e \u043f\u043e .NET nanoFramework, \u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c <a href=\"http:\/\/www.eclo.solutions\/\">Eclo Solutions<\/a> (\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u044f) \u0438 <a href=\"https:\/\/www.csa.ch\/\">CSA Engineering AG<\/a> (\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f).<\/p>\n<h1>\u041f\u043b\u0430\u0442\u0430 OrgPal PalThree \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f Azure Device<\/h1>\n<p>  \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u00a0<a href=\"https:\/\/www.orgpal.com\/palthree-iot-azure\">PalThree<\/a> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043e\u0433\u043e \u0438 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043d\u0435\u0444\u0442\u0435\u0433\u0430\u0437\u043e\u0432\u044b\u0445 \u043c\u0435\u0441\u0442\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u0439. PalThree \u2014 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e Azure IoT Ready Gateway &amp; Edge Point \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0438 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0432 \u043e\u0431\u043b\u0430\u043a\u043e Azure IoT. \u041d\u0430 \u0431\u043e\u0440\u0442\u0443 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u0445. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043d\u0430 STM32 ARM 4 \u0438 ARM 7, \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0434\u0432\u0443\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0441 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 STM32F469x \u0438 STM32F769x, \u0441 1 \u041c\u0411 SDRAM \u043d\u0430 \u043f\u043b\u0430\u0442\u0435, \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u044c\u044e SPI \u0438 QSPI. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 .NET nanoFramework, \u0441 ChibiOS \u0434\u043b\u044f STM32. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/549012\/\">.NET nanoFramework \u2014 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 C# \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432<\/a>.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/eh\/x3\/xw\/ehx3xw3noh-uwi-vgkfs8zefx_w.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/eh\/x3\/xw\/ehx3xw3noh-uwi-vgkfs8zefx_w.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/eh\/x3\/xw\/ehx3xw3noh-uwi-vgkfs8zefx_w.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u041f\u043b\u0430\u0442\u0430 PalThree \u043e\u0442 OrgPal<\/em><\/p>\n<p>  PalThree \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0441 .NET nanoFramework \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 Azure Certified Device \u0438 \u0442\u0430\u043a\u0436\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0434\u043b\u044f IoT Plug and Play. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u0440\u0443\u0431\u0435\u0436 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0442.\u043a. \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0442\u043e \u0431\u044b\u043b\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043d\u043e \u0438\u00a0 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 .NET nanoFramework, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Azure IoT, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0433\u0440\u0430\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u0443\u044e \u0440\u043e\u043b\u044c \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u0441\u0430\u043c\u0430 \u043f\u043b\u0430\u0442\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0448\u043b\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043a\u0430\u043a IoT Plug and Play \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u041d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Azure IoT \u0443\u0448\u043b\u043e \u043c\u043d\u043e\u0433\u043e \u0441\u0438\u043b. \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b API \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 C# Azure IoT.<\/p>\n<p>  PalThree \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <a href=\"https:\/\/devicecatalog.azure.com\/devices\/2048f711-a4f9-4a3c-be0f-75c5f747f7f7\">\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 Azure Certified Device<\/a>, \u0438 \u044d\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e! \u041f\u043b\u0430\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Orgpal, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0442\u0440\u0435\u0442\u044c\u0438\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 ODM.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/iy\/zv\/vp\/iyzvvpe9-vqklehhnzwnvg_iyuy.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/iy\/zv\/vp\/iyzvvpe9-vqklehhnzwnvg_iyuy.png\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/iy\/zv\/vp\/iyzvvpe9-vqklehhnzwnvg_iyuy.png\"\/><\/a><br \/>  <em>\u0422\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 OrgPal<\/em><\/p>\n<p>  \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Orgpal \u0434\u0430\u0432\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 .NET nanoFramework. \u042d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0442\u0435\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u043f\u0443\u0442\u044c open-source, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043d\u0438\u043c\u0430\u044f \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f, \u0432\u0437\u0430\u043c\u0435\u043d \u043f\u0443\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0439 \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0441\u0442\u0438 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b. Orgpal \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u043d\u0441\u0438\u0440\u0443\u044e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u0435\u0436\u0435\u043c\u0435\u0441\u044f\u0447\u043d\u044b\u043c\u0438 \u0432\u0437\u043d\u043e\u0441\u0430\u043c\u0438, \u043d\u043e \u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0432\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.<\/p>\n<h1>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/h1>\n<p>  \u041a\u0430\u043a\u0430\u044f \u0431\u044b \u043d\u0438 \u0431\u044b\u043b\u0430 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430, \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u0430\u044f \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u0418 \u0432 \u044d\u0442\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0435 \u043e\u0442\u0441\u0442\u0430\u0435\u0442 \u043e\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430. \u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438. \u041e\u0431\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f <a href=\"https:\/\/docs.nanoframework.net\/content\/getting-started-guides\/index.html\">\u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 nanoFramework<\/a>.<\/p>\n<p>  \u0414\u043b\u044f \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e <a href=\"https:\/\/docs.nanoframework.net\/content\/building\/index.html\">Building .NET nanoFramework<\/a>.<\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u0440\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"https:\/\/www.nanoframework.net\/net-nanoframework-love-automated-documentation\/\">.NET NANOFRAMEWORK \u2764\ufe0f(AUTOMATED) DOCUMENTATION<\/a>.<\/p>\n<h1>\u041e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439<\/h1>\n<p>  <\/p>\n<ul>\n<li>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 <a href=\"https:\/\/github.com\/nanoframework\/nanoFirmwareFlasher\">nanoFirmwareFlasher \u2014 nanoff<\/a>. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/dotnet.microsoft.com\/en-us\/download\/dotnet\/6.0\">.NET 6.0<\/a>. \u0421\u043e\u0432\u0435\u0442! \u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0448\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 ESP32, \u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439: \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u043f\u043b\u0430\u0442\u0443 \u043f\u043e USB, \u0437\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 Boot \u0438 \u043d\u0435 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u0439\u0442\u0435, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 EN (reset) \u0438 \u043e\u0442\u043f\u0443\u0441\u0442\u0438\u0442\u0435, \u043e\u0442\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 Boot, \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u0440\u043e\u0448\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e.<\/li>\n<li>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u044b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 ESP32_WROOM_32_BLE \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 ESP32_BLE_REV0. \u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u0442 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"https:\/\/docs.nanoframework.net\/content\/getting-started-guides\/where-to-buy-devices.html\">Recommended devices to start with .NET nanoFramework<\/a>. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f <a href=\"https:\/\/devdotnet.org\/wp-content\/uploads\/new-nf-lcd-wifi-firmware-esp-wroom-32.png\">ESP-WROOM-32<\/a>.<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 WebSocket, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043a\u043b\u0438\u0435\u043d\u0442. \u041f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d <a href=\"https:\/\/docs.nanoframework.net\/api\/System.Net.WebSockets.html\">System.Net.WebSockets<\/a>.<\/li>\n<li>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u044b \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c\u0438 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u044b, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 Devices.Can \u0432 <a href=\"https:\/\/github.com\/nanoframework\/nanoFramework.Device.Can\">Device.Can<\/a> \u0438 <a href=\"https:\/\/github.com\/nanoframework\/System.Device.Wifi\">System.Device.Wifi<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<h1>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 OLED LCD \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 SSD1306 \u043f\u043e \u0448\u0438\u043d\u0435 I2C<\/h1>\n<p>  \u0412 <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/584144\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0438\u0448\u0435\u043d\u043a\u0435 \u043d\u0430 \u0442\u043e\u0440\u0442\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 LCD \u044d\u043a\u0440\u0430\u043d, \u043d\u043e \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u043f\u0430\u0446\u0430\u043d \u043a \u0443\u0441\u043f\u0435\u0445\u0443 \u0448\u0451\u043b, \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u043d\u0435 \u0444\u0430\u0440\u0442\u0430\u043d\u0443\u043b\u043e. \u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"https:\/\/github.com\/nanoframework\/nanoFramework.IoT.Device\/blob\/develop\/devices\/Ssd13xx\/README.md\">SSD13xx &amp; SSH1106 OLED display<\/a> \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f LCD SSD1306 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u043e I2C \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443. \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e LCD. \u041f\u0435\u0440\u0432\u0430\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c I2C. \u0412\u0442\u043e\u0440\u0430\u044f, \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u0430\u044f \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c\u0438 I2C \u0438 SPI.<\/p>\n<p>  \u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 \u043e\u0431\u043e\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0431\u044b\u043b\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430. \u0412\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e, \u0432\u043e\u0442 \u0438 \u0431\u044b\u043b \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d \u0432\u0430\u0440\u0438\u0430\u043d\u0442 LCD \u0441 I2C\/SPI. \u041f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a Arduino \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 I2C\/SPI \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043f\u0430\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 I2C, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0449\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0438\u0441\u043f\u043b\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f LCD. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">OLED 0,96 inch SSD1306 I2C \u043d\u0430 4 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430, \u0438 OLED 0,96 inch SSD1306 I2C\/SPI \u043d\u0430 7 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432<\/b>                         <\/p>\n<div class=\"spoiler_text\"><a href=\"https:\/\/habrastorage.org\/webt\/2o\/wb\/u7\/2owbu7e4dz8tqhpoen7velmqz_a.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/2o\/wb\/u7\/2owbu7e4dz8tqhpoen7velmqz_a.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/2o\/wb\/u7\/2owbu7e4dz8tqhpoen7velmqz_a.jpeg\" data-blurred=\"true\"\/><\/a>  <\/div>\n<\/p><\/div>\n<p>  \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438:  <\/p>\n<ul>\n<li>\u0420\u0430\u0437\u043c\u0435\u0440: 0,96 \u0434\u044e\u0439\u043c\u0430;<\/li>\n<li>\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435: 128&#215;64 \u0442\u043e\u0447\u0435\u043a;<\/li>\n<li>\u0426\u0432\u0435\u0442: \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u044b\u0439 (\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430);<\/li>\n<li>\u0414\u0440\u0430\u0439\u0432\u0435\u0440 IC: SSD1306;<\/li>\n<li>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b: I2C (4 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430) \u0438 I2C\/SPI (7 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432);<\/li>\n<li>\u041f\u0438\u0442\u0430\u043d\u0438\u0435: 3.3~5 \u0412 (\u043b\u043e\u0433\u0438\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f 5 \u0412 \u0438 3.3 \u0412), \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u043e\u0435 \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 0,08 \u0412\u0442.<\/li>\n<\/ul>\n<p>  \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e LCD \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 I2C. \u041d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430: 3V3, GND, SCK \u0438 SDA. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0442\u043e \u0434\u043b\u044f \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442 LCD I2C\/SPI, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0430\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0438, \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b:  <\/p>\n<ul>\n<li>I2C \u2014 R1, R4, R8;<\/li>\n<li>SPI \u2014 R3, R4.<\/li>\n<\/ul>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e I2C \u0437\u0430\u043f\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0438 R1, R4, R8.<br \/>  <a href=\"https:\/\/habrastorage.org\/webt\/pd\/ka\/6q\/pdka6qlyzcnjuk8tzdircmsbosm.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/pd\/ka\/6q\/pdka6qlyzcnjuk8tzdircmsbosm.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/pd\/ka\/6q\/pdka6qlyzcnjuk8tzdircmsbosm.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>OLED 0,96 inch SSD1306 I2C\/SPI \u043d\u0430 7 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u0432\u0438\u0434 \u0441\u043d\u0438\u0437\u0443<\/em><\/p>\n<p>  \u0412 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 LCD I2C\/SPI \u0440\u0430\u0441\u043f\u0430\u044f\u043d\u043e 7 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c \u043a\u0430\u043a \u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e I2C, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b: RES, DC, CS. \u041a\u043e\u043d\u0442\u0430\u043a\u0442 DC \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442\u044c \u043a \u043b\u0438\u043d\u0438\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f 3V3. \u041a\u043e\u043d\u0442\u0430\u043a\u0442 RES \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\/\u0441\u0431\u0440\u043e\u0441\u0430 LCD. \u041a\u043e\u043d\u0442\u0430\u043a\u0442 CS \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u043e SPI.<\/p>\n<p>  \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f LCD I2C\/SPI:  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tbody>\n<tr>\n<td>Pin No:<\/td>\n<td>Pin Name:<\/td>\n<td>Description:<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Ground (Gnd)<\/td>\n<td>Connected to the ground of the circuit<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Supply (Vdd,Vcc,5V)<\/td>\n<td>Can be powered by either 3.3V or 5V<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>SCK (D0,SCL,CLK)<\/td>\n<td>The display supports both IIC and SPI, for which clock is supplied through this pin<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>SDA (D1,MOSI)<\/td>\n<td>This is the data pin of the both, it can either be used for IIC or for SPI<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>RES(RST,RESET)<\/td>\n<td>When held to ground momentarily this pin resets the module (operational work, High value)<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>DC (A0)<\/td>\n<td>I2C \u2014 must be connected to power (3.3V or 5V). SPI \u2014 this is command pin<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Chip Select (CS)<\/td>\n<td>Normally held low, used only when more than one SPI device is connected to MCU<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/fs\/xw\/p8\/fsxwp89ecormaissyr7jqtbbnss.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/fs\/xw\/p8\/fsxwp89ecormaissyr7jqtbbnss.png\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/fs\/xw\/p8\/fsxwp89ecormaissyr7jqtbbnss.png\"\/><\/a><br \/>  <em>\u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f OLED LCD SSD1306 \u043d\u0430 I2C (<a href=\"https:\/\/github.com\/devdotnetorg\/Site\/blob\/master\/Uploads\/Ssd1306_OLED_128x64_I2C.fzz\">fzz<\/a>) \u0438 I2C\/SPI (<a href=\"https:\/\/github.com\/devdotnetorg\/Site\/blob\/master\/Uploads\/Ssd1306_OLED_128x64_I2C_SPI.fzz\">fzz<\/a>)<\/em><\/p>\n<p>  \u0412 Arduino \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 <a href=\"https:\/\/github.com\/adafruit\/Adafruit_SSD1306\">Adafruit_SSD1306<\/a> \u0444\u0430\u0439\u043b <a href=\"https:\/\/github.com\/adafruit\/Adafruit_SSD1306\/blob\/master\/Adafruit_SSD1306.cpp\">Adafruit_SSD1306.cpp<\/a> \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\/\u0441\u0431\u0440\u043e\u0441\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 SSD1306 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"cs\">\/\/ Reset SSD1306 if requested and reset pin specified in constructor   if (reset &amp;&amp; (rstPin >= 0)) {     pinMode(rstPin, OUTPUT);     digitalWrite(rstPin, HIGH);     delay(1);                   \/\/ VDD goes high at start, pause for 1 ms     digitalWrite(rstPin, LOW);  \/\/ Bring reset low     delay(10);                  \/\/ Wait 10 ms     digitalWrite(rstPin, HIGH); \/\/ Bring out of reset   } <\/code><\/pre>\n<p>  \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0440\u043e\u0432\u0435\u043d\u044c HIGH, \u0437\u0430\u0442\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a \u0437\u0435\u043c\u043b\u0435 (GND) \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c \u0441\u0431\u0440\u043e\u0441\u0430, \u0438 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u043d\u0438\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0414\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0441 LCD, \u043d\u043e \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0435 \u0434\u043b\u044f .NET nanoFramework.<\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 C#, \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/devdotnetorg\/nanoFramework-samples\/tree\/master\/Init-SSD1306-on-I2C-SPI\">Init-SSD1306-on-I2C-SPI<\/a>, \u0444\u0430\u0439\u043b <a href=\"https:\/\/github.com\/devdotnetorg\/nanoFramework-samples\/blob\/master\/Init-SSD1306-on-I2C-SPI\/Program.cs\">Program.cs<\/a>:<\/p>\n<pre><code class=\"cs\">var pinOut = 18; \/\/Init var s_GpioController = new GpioController(); GpioPin rstPin = s_GpioController.OpenPin(pinOut, PinMode.Output); rstPin.Write(PinValue.High); Thread.Sleep(1);             \/\/ VDD goes high at start, pause for 1 ms rstPin.Write(PinValue.Low);  \/\/ Bring reset low Thread.Sleep(10);            \/\/ Wait 10 ms rstPin.Write(PinValue.High); \/\/ Bring out of reset <\/code><\/pre>\n<p>  \u041d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u044b. \u0423 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 LCD I2C\/SPI \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f I2C \u0430\u0434\u0440\u0435\u0441. \u0410\u0434\u0440\u0435\u0441\u0430 LCD \u0434\u043b\u044f I2C \u0448\u0438\u043d\u044b:  <\/p>\n<ul>\n<li>LCD only I2C \u2014 0x3C;<\/li>\n<li>LCD I2C\/SPI \u2014 0x3D.<\/li>\n<\/ul>\n<p>  \u0421\u043e\u0431\u0435\u0440\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0438 \u0432\u044b\u0432\u0435\u0434\u0435\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u041f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/devdotnetorg\/nanoFramework-samples\/tree\/master\/Ssd13xx\">Ssd13xx,<\/a> \u0444\u0430\u0439\u043b <a href=\"https:\/\/github.com\/devdotnetorg\/nanoFramework-samples\/blob\/master\/Ssd13xx\/samples\/Program.cs\">Program.cs<\/a>:<\/p>\n<pre><code class=\"cs\">Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA); Configuration.SetPinFunction(22, DeviceFunction.I2C1_CLOCK);  \/\/Tested with 128x64 and 128x32 OLEDs using Ssd1306 device = new Ssd1306(I2cDevice.Create(new I2cConnectionSettings(1, Ssd1306.DefaultI2cAddress)), Ssd13xx.DisplayResolution.OLED128x64); \/\/with reset pin \/\/using Ssd1306 device = new Ssd1306(I2cDevice.Create(new I2cConnectionSettings(1, Ssd1306.SecondaryI2cAddress)),18, Ssd13xx.DisplayResolution.OLED128x64); device.ClearScreen(); device.Font = new BasicFont(); device.DrawString(2, 2, \"nF IOT!\", 2);\/\/large size 2 font device.DrawString(2, 32, \"nanoFramework\", 1, true);\/\/centered text device.Display(); <\/code><\/pre>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/hj\/ny\/hq\/hjnyhqg5hu1d2ngihqkjfq_awjw.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/hj\/ny\/hq\/hjnyhqg5hu1d2ngihqkjfq_awjw.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/hj\/ny\/hq\/hjnyhqg5hu1d2ngihqkjfq_awjw.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u0412\u044b\u0432\u043e\u0434 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 LCD \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c nanoFramework<\/em><\/p>\n<p>  \u041f\u043e \u0438\u0442\u043e\u0433\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u044b\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d <a href=\"https:\/\/github.com\/nanoframework\/nanoFramework.IoT.Device\/pull\/443\"><strong>Pull request <\/strong><\/a>\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 nanoFramework.<\/p>\n<h1>\u0421\u043a\u0430\u043d\u0435\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 I2C \u0448\u0438\u043d\u0435<\/h1>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 LCD \u043d\u0430 \u0448\u0438\u043d\u0435 I2C \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c <a href=\"https:\/\/github.com\/nanoframework\/Samples\/tree\/main\/samples\/I2C\/NanoI2cScanner\">NanoI2cScanner<\/a>, \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 I2C \u0448\u0438\u043d\u0435. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043f\u043e\u0438\u0441\u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0434\u0432\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u044f:<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/a5\/ou\/vf\/a5ouvfhhiqqwg-qeasgqgrv34ts.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/a5\/ou\/vf\/a5ouvfhhiqqwg-qeasgqgrv34ts.png\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/a5\/ou\/vf\/a5ouvfhhiqqwg-qeasgqgrv34ts.png\"\/><\/a><br \/>  <em>\u041e\u0442\u0447\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 I2C \u0448\u0438\u043d\u0435<\/em><\/p>\n<p>  \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f Arduino, \u0432 nanoFramework \u043f\u043e\u0438\u0441\u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u0448\u0438\u043d\u0435 I2C \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043e\u043b\u044c\u0448\u0435, \u0438\u0437-\u0437\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u043b\u0438\u043d\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 SDA \u0438\u0437 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f 1 \u0432 0 \u043f\u0440\u0438 SCL=1, \u043a\u0430\u043a \u0432 Arduino. \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f Arduino:<\/p>\n<pre><code class=\"cs\">Wire.beginTransmission(address); error = Wire.endTransmission(); <\/code><\/pre>\n<p>  \u0412 \u0445\u043e\u0434\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0432 0 \u0434\u0430\u043d\u043d\u0443\u044e \u043b\u0438\u043d\u0438\u044e \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u0430. \u0415\u0441\u043b\u0438 \u0432\u0435\u0434\u043e\u043c\u044b\u0439 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u043f\u0440\u0438\u0435\u043c, \u0442\u043e \u043b\u0438\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 1 \u0432\u0435\u0434\u043e\u043c\u044b\u043c, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u043e\u043f \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0434\u043b\u044f \u043e\u0431\u0440\u044b\u0432\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u0438\u0441\u043a \u0432\u0441\u0435\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u0448\u0438\u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434, \u0442.\u043a. \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f.<\/p>\n<p>  \u041d\u043e \u0432 nanoFramework \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043b\u0438\u043d\u0438\u0435\u0439, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u044b \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 <i>I2cDevice.WriteByte(0x07)<\/i> \u0438 \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 <i>I2cDevice.Read(0x07)<\/i>. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0434\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0441\u0435\u043a\u0443\u043d\u0434 (~30-40 \u0441\u0435\u043a\u0443\u043d\u0434).<\/p>\n<h1>\u0421\u043a\u0430\u043d\u0435\u0440 Wi-Fi \u0441\u0435\u0442\u0435\u0439<\/h1>\n<p>  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Wi-Fi \u0441\u0435\u0442\u044f\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d System.Device.Wifi (nuget: <a href=\"https:\/\/github.com\/nanoframework\/System.Device.Wifi\">nanoFramework.System.Device.Wifi<\/a>), \u0432\u0437\u0430\u043c\u0435\u043d \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0433\u043e Windows.Devices.WiFi.<\/p>\n<p>  \u0414\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0439 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u043f\u043b\u0430\u0442\u0443 <a href=\"http:\/\/www.lilygo.cn\/down_view.aspx?TypeId=11&amp;amp;Id=83&amp;amp;Fid=t14:11:14\">Wemos TTGO WiFi\/Bluetooth BLE \u0441 OLED-\u044d\u043a\u0440\u0430\u043d\u043e\u043c 0.96 \u0434\u044e\u0439\u043c\u0430 \u043d\u0430 ESP-WROOM-32<\/a>. \u041d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0443\u0436\u0435 \u0440\u0430\u0441\u043f\u0430\u044f\u043d LCD OLED \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 SSD1306, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0441\u044f \u0432\u044b\u0448\u0435. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043b\u0430\u0442\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u0443\u044e \u0431\u0430\u0442\u0430\u0440\u0435\u044e 18650 NCR (\u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 AA) \u043d\u0430 3.7 \u0412, \u0435\u043c\u043a\u043e\u0441\u0442\u044c\u044e 3400 \u043c\u0410\u00b7\u0447. \u041a\u0430\u043a \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u0441\u0430\u0439\u0442\u0435, ESP32 \u043d\u0430 \u044d\u0442\u043e\u043c \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 17 \u0447\u0430\u0441\u043e\u0432.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/fn\/me\/vs\/fnmevsfh6rslnch9hn-1yzre6uk.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/fn\/me\/vs\/fnmevsfh6rslnch9hn-1yzre6uk.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/fn\/me\/vs\/fnmevsfh6rslnch9hn-1yzre6uk.jpeg\" data-blurred=\"true\"\/><\/a><\/p>\n<p>  <em>\u041f\u043b\u0430\u0442\u0430 Wemos TTGO WiFi\/Bluetooth BLE \u0441 OLED-\u044d\u043a\u0440\u0430\u043d\u043e\u043c 0.96 \u0434\u044e\u0439\u043c\u0430 \u043d\u0430 ESP-WROOM-32<\/em><\/p>\n<p>  \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043d\u0430 GPIO16, \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0444\u0438\u0440\u0430. \u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u0448\u0438\u043d\u044b I2C \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 (21,22):  <\/p>\n<ul>\n<li>I2C1_DATA \u2014 GPIO5;<\/li>\n<li>I2C1_CLOCK \u2014 GPIO4.<\/li>\n<\/ul>\n<p>  \u0421\u043a\u0430\u043d\u0435\u0440 Wi-Fi \u0441\u0435\u0442\u0435\u0439, \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/devdotnetorg\/nanoFramework-samples\/tree\/master\/nanoframework-esp32-scan-wifi\">nanoframework-esp32-scan-wifi<\/a>, \u0444\u0430\u0439\u043b <a href=\"https:\/\/github.com\/devdotnetorg\/nanoFramework-samples\/blob\/master\/nanoframework-esp32-scan-wifi\/Program.cs\">Program.cs<\/a>:<\/p>\n<pre><code class=\"cs\">\/\/ Get the first WiFI Adapter WifiAdapter wifi = WifiAdapter.FindAllAdapters()[0];                 \/\/ Set up the AvailableNetworksChanged event to pick up when scan has completed wifi.AvailableNetworksChanged += Wifi_AvailableNetworksChanged; \/\/ Loop forever scanning every 15 seconds while (true)   {     Debug.WriteLine(\"starting Wifi scan\");     wifi.ScanAsync();     Thread.Sleep(15000);   } <\/code><\/pre>\n<p>  \u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u043f\u043e \u0438\u0442\u043e\u0433\u0443 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0435 <i>Wifi_AvailableNetworksChanged<\/i>. \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0444\u0438\u0440\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 8 \u0441\u0435\u043a\u0443\u043d\u0434.<\/p>\n<pre><code class=\"cs\">private static void Wifi_AvailableNetworksChanged(WifiAdapter sender, object e)   {     Debug.WriteLine(\"Wifi_AvailableNetworksChanged - get report\");     \/\/ Get Report of all scanned Wifi networks     WifiNetworkReport report = sender.NetworkReport;     \/\/ Enumerate though networks looking for our network     foreach (WifiAvailableNetwork net in report.AvailableNetworks)       {         \/\/ Show all networks found         Debug.WriteLine($\"Net SSID :{net.Ssid},  BSSID : {net.Bsid},  rssi : {net.NetworkRssiInDecibelMilliwatts},  signal : {net.SignalBars}\");       } <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u0447\u0435\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0430\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/dg\/ie\/oo\/dgieooogipjcmylytgyz7dwnesy.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/dg\/ie\/oo\/dgieooogipjcmylytgyz7dwnesy.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/dg\/ie\/oo\/dgieooogipjcmylytgyz7dwnesy.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Wi-Fi \u0441\u0435\u0442\u0435\u0439 \u043d\u0430 nanoFramework<\/em><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u043b\u043d\u044b\u0439 \u0432\u0438\u0434 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e<\/b>                         <\/p>\n<div class=\"spoiler_text\"><a href=\"https:\/\/habrastorage.org\/webt\/2g\/nh\/3c\/2gnh3csr99bpgom-qkmzrtea2tc.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/2g\/nh\/3c\/2gnh3csr99bpgom-qkmzrtea2tc.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/2g\/nh\/3c\/2gnh3csr99bpgom-qkmzrtea2tc.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Wi-Fi \u0441\u0435\u0442\u0435\u0439 \u043d\u0430 nanoFramework<\/em>  <\/div>\n<\/p><\/div>\n<p>  \u0412\u0438\u0434\u0435\u043e:  <\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/629fd1c558b073b4525f7906\" data-style=\"\" id=\"629fd1c558b073b4525f7906\" width=\"\"><\/div>\n<\/div>\n<p>  <\/p>\n<h1>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/h1>\n<p>  LCD \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438, \u043d\u043e \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438 \u043a\u0440\u043e\u043c\u0435 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f! \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435, \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a, \u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u043e\u0441\u0442\u044c, \u0441 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u044e\u0431\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u043e\u0432 \u0441\u043f\u0440\u0430\u0432\u0430-\u043d\u0430\u043b\u0435\u0432\u043e). \u0418 \u0435\u0449\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c, \u043e\u0434\u0438\u043d \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 LCD \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0434\u043b\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \ud83d\ude09<\/p>\n<h1>\u0420\u0435\u0441\u0443\u0440\u0441\u044b<\/h1>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/devdotnetorg\/nanoFramework-samples\">nanoFramework-samples \u2014 GitHub<\/a><\/li>\n<li><a href=\"https:\/\/www.nanoframework.net\/blog\/\">Blog \u2013 .NET nanoFramework<\/a><\/li>\n<li><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=nanoframework.vscode-nanoframework\">.NET nanoFramework extension for VSCode<\/a><\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/cloud.timeweb.com\/vds-promo-10-rub?utm_source=habr&amp;utm_medium=banner&amp;utm_campaign=vds-promo-10-rub\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/co\/e2\/kh\/coe2kha8u8_pypip-2k3wk3ppa0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/co\/e2\/kh\/coe2kha8u8_pypip-2k3wk3ppa0.png\"\/><\/a><\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/669700\/\"> https:\/\/habr.com\/ru\/company\/timeweb\/blog\/669700\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/gd\/bl\/_r\/gdbl_rbssvgwklwcbgjxl3fslve.jpeg\" alt=\"nanoFramework LCD WIFI\" data-src=\"https:\/\/habrastorage.org\/webt\/gd\/bl\/_r\/gdbl_rbssvgwklwcbgjxl3fslve.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 .NET nanoFramework \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043e\u0442\u043c\u0435\u0442\u0438\u043b\u0430 \u0441\u0432\u043e\u0439 \u044e\u0431\u0438\u043b\u0435\u0439. \u0417\u0430 5 \u043b\u0435\u0442 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0430\u0441\u044c \u0438\u0437 \u043c\u0430\u043b\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0435 open-source \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 Visual Studio Code, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 Linux \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 C#, \u043a\u0430\u043a \u0438 \u0432 Windows. \u0411\u044b\u043b\u0438 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b nuget-\u043f\u0430\u043a\u0435\u0442\u044b, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u0412 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c OLED \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 SSD1306, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043f\u043e\u0434 \u043d\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0434\u0438\u0441\u043f\u043b\u0435\u044f \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u043e\u0434 \u0432 upstream, \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043a\u0430\u043d\u0435\u0440 Wi-Fi \u0441\u0435\u0442\u0435\u0439.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-334472","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/334472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=334472"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/334472\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=334472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=334472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=334472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}