{"id":228285,"date":"2014-07-01T15:13:06","date_gmt":"2014-07-01T11:13:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=228285"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=228285","title":{"rendered":"<span class=\"post_title\">\u041f\u0440\u0438\u043c\u0435\u0440 IoT: \u0414\u0435\u043b\u0430\u0435\u043c bitcoin-\u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0438\u0437 \u044d\u043a\u0440\u0430\u043d\u0430 \u043e\u0442 Nokia, \u043f\u043b\u0430\u0442\u044b \u043e\u0442 Netduino \u0438 \u043e\u0431\u043b\u0430\u043a\u0430<\/span>"},"content":{"rendered":"<div class=\"content html_format\">       \u041c\u043e\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0430 \u0438 \u043c\u0435\u043d\u044f \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0414\u0443\u0440\u0431\u0430\u043d\u0441\u043a\u043e\u043c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0434 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u043a\u0443\u0440\u0441\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Netduino \u0438\/\u0438\u043b\u0438 Windows Phone \u0432 \u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p>\n<p>  \u041d\u0430\u043c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0438\u0433\u0430\u044e\u0449\u0438\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434, \u043d\u043e \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0436\u0438\u0432\u044b\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u043c. \u0418 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/92d\/5fd\/ffe\/92d5fdffe5ee2dbbcce94c3fbe1f23b0.gif\"\/><\/p>\n<p>  \u041f\u0440\u043e\u0441\u0438\u043c \u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0437\u0430 \u0443\u0436\u0430\u0441\u043d\u044b\u0439 GIF. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0442\u0440\u0435\u043a\u0435\u0440\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0446\u0435\u043d\u044b \u043d\u0430 \u0431\u0438\u0442\u043a\u043e\u0438\u043d. \u0413\u0440\u0430\u0444 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435, \u0430 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043c\u0435\u043d\u044f\u0435\u0442 \u0446\u0432\u0435\u0442 \u043d\u0430 \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u043f\u0440\u0438 \u0440\u043e\u0441\u0442\u0435 \u0446\u0435\u043d\u044b \u0438 \u043d\u0430 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u043a\u043e\u0433\u0434\u0430 \u0446\u0435\u043d\u0430 \u043f\u0430\u0434\u0430\u0435\u0442. (\u041d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443 \u2013 \u0432\u043c\u0435\u0441\u0442\u043e USD \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f BTC).<br \/>  <a name=\"habracut\"><\/a><br \/>  <a href=\"http:\/\/blog.roguecode.co.za\/wp-content\/uploads\/2014\/02\/WP_20140213_10_14_46_Pro-Copy.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"WP_20140213_10_14_46_Pro - Copy\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/be6\/cc6\/abe\/be6cc6abedb5c04f25fc26f0da2cc622.jpg\" width=\"640\" height=\"360\"\/><\/a><\/p>\n<h3>Azure<\/h3>\n<p>  \u041f\u0435\u0440\u0432\u044b\u043c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u0434\u043b\u044f \u043d\u0430\u0441 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435. \u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0438 \u043b\u0435\u0433\u043a\u0438\u0445 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f API \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/data.mtgox.com\/api\/2\/BTCUSD\/money\/ticker\">mtgox<\/a> (\u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0440\u043e\u0434\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u043c\u0438 \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u044f\u043c\u0438 \u0432\u043e\u043a\u0440\u0443\u0433 \u043d\u0438\u0445, \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 Bitstamp). \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043d\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043e \u0446\u0435\u043d\u0435, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0432\u044b\u0434\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430 Netduino. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0438 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u0442 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0418 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Azure \u0414\u0415\u0419\u0421\u0422\u0412\u0418\u0422\u0415\u041b\u042c\u041d\u041e \u043b\u0435\u0433\u043a\u043e.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 Azure:<\/p>\n<p>  <a href=\"http:\/\/blog.roguecode.co.za\/wp-content\/uploads\/2014\/02\/image.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" alt=\"image\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/583\/790\/f2c\/583790f2cbb646d0fa341f43867cb873.png\" width=\"535\" height=\"136\"\/><\/a><\/p>\n<p>  \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043b\u044e\u0431\u043e\u0439 URL \u043f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u0430, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u0437\u0430\u0442\u0435\u043c \u0432 Visual Studio. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\u0435 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 ASP.NET MVC:<\/p>\n<p>  <a href=\"http:\/\/blog.roguecode.co.za\/wp-content\/uploads\/2014\/02\/image1.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" alt=\"image\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/3e7\/efe\/bd6\/3e7efebd6cb4c0c2f21d94f88759765c.png\" width=\"492\" height=\"331\"\/><\/a><\/p>\n<p>  \u041c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0446\u0435\u043d\u0435 \u0438\u0437 mtgox API \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0446\u0435\u043d\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c JSON-\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 .NET-\u043e\u0431\u044a\u0435\u043a\u0442\u044b. <a href=\"https:\/\/data.mtgox.com\/api\/2\/BTCUSD\/money\/ticker\">\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a API<\/a> \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 JSON-\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0417\u0430\u0442\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 .cs-\u0444\u0430\u0439\u043b \u0432 \u043f\u0430\u043f\u043a\u0435 Models \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <em>MtGoxTicker.cs<\/em>. \u0423\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b <em>Edit &gt; Paste Special &gt; Paste JSON as classes <\/em>\u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442. \u0426\u0435\u043b\u0430\u044f \u043f\u0430\u0447\u043a\u0430 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 API, \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0439\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 RootObject \u0432 <em>MtGoxTicker.<\/em><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>   public class MtGoxTicker     {         public string result { get; set; }         public Data data { get; set; }     }       public class Data     {         public High high { get; set; }         public Low low { get; set; }         public Avg avg { get; set; }         public Vwap vwap { get; set; }         public Vol vol { get; set; }         public Last_Local last_local { get; set; }         public Last_Orig last_orig { get; set; }         public Last_All last_all { get; set; }         public Last last { get; set; }         public Buy buy { get; set; }         public Sell sell { get; set; }         public string item { get; set; }         public string now { get; set; }     }       public class High     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Low     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Avg     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Vwap     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Vol     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Last_Local     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Last_Orig     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Last_All     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Last     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Buy     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }       public class Sell     {         public string value { get; set; }         public string value_int { get; set; }         public string display { get; set; }         public string display_short { get; set; }         public string currency { get; set; }     }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412 \u043f\u0430\u043f\u043a\u0435 <em>Controllers<\/em> \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 WebAPI-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043a\u0440\u043e\u043c\u0435 Get. \u0412\u0441\u0435 \u0447\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u2013 \u044d\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0446\u0435\u043d\u0430\u0445 \u0438\u0437 API \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 BUY, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>  \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0442\u0438\u043f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 Get \u043d\u0430 double, \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0434\u0438\u0442\u0435 \u043c\u0435\u0442\u043e\u0434 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>  public double Get()         {             try             {                 var wc = new WebClient();                 var response = JsonConvert.DeserializeObject&lt;MtGoxTicker&gt;(wc.DownloadString(&quot;https:\/\/data.mtgox.com\/api\/2\/BTCUSD\/money\/ticker&quot;));                 if (response != null)                 {                     return double.Parse(response.data.buy.value);                 }             }             catch (Exception)             {               }               return -1;         }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041f\u0440\u043e\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u043a\u043e\u0433\u0434\u0430 \u043a\u0442\u043e-\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 Get, \u043e\u043d \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0446\u0435\u043d\u044b \u0438\u0437 API, \u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0438\u0445 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u2014 \u044d\u0442\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448 API \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u0432 JSON. \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 Appication_Start \u0432 <em>Global.asax.cs<\/em> \u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u043e\u0447\u0435\u043a:<\/p>\n<pre><code>GlobalConfiguration.Configuration.Formatters.Clear(); GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());<\/code><\/pre>\n<p>  \u041a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u0432\u0430\u0448 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 \u0432 Azure \u0443\u0436\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u0441\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441\u0430\u0439\u0442 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 Visual Studio. \u0421\u0430\u043c\u044b\u0439 \u043b\u0435\u0433\u043a\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u2013 \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432 Solution Explorer \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 Publsh. \u0417\u0430\u0442\u0435\u043c \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Import \u0438 \u043f\u0440\u043e\u0439\u0434\u0438\u0442\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u0438\u043c\u043e\u043f\u0440\u0442\u0430 \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u0432\u0430\u0448\u0435\u0439 Azure-\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 (\u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u0435\u0435 \u0432 Visual Studio 2013). \u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442\u0443 \u0438\u043b\u0438 \u0434\u0432\u0435,\u00a0 \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u043d\u0435\u0433\u043e.<\/p>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e, \u043a\u0430\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u0430\u0448 \u0441\u0430\u0439\u0442, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u043c\u043e\u0439 <a href=\"http:\/\/bitcoinpusher.azurewebsites.net\/api\/Price\">http:\/\/bitcoinpusher.azurewebsites.net\/api\/Price<\/a> (\u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0435\u0447\u043d\u043e).<\/p>\n<h3>Hardware<\/h3>\n<p>   \u2014 <strong><a href=\"http:\/\/netduino.com\/\">Netduino<\/a> Plus (\u0438\u043b\u0438 Plus 2)<\/strong><\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/464\/bda\/4c0\/464bda4c015a0a65f83325f03c6826ae.jpg\" width=\"221\" height=\"155\"\/><\/p>\n<p>   \u2014 <strong>Nokia 5110 LCD<\/strong> <a href=\"http:\/\/dx.com\/p\/replacement-1-6-lcd-screen-with-blue-backlight-for-nokia-5110-blue-145860\">($4 \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 DX)<\/a><\/p>\n<p>   \u2014 <strong>RGB LED \u2013 <\/strong>\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 SMD 5050, \u043d\u043e \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043b\u044e\u0431\u043e\u0439 RGB LED. <\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/e6c\/2dc\/a26\/e6c2dca26ad972806420fab48c4e641f.jpg\"\/><\/p>\n<h3>Netduino<\/h3>\n<p>  Netduino \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0446\u0435\u043d\u0435 \u0438\u0437 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0432 Azure, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0438\u0445 \u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e, \u043a\u0430\u043a \u0441\u043c\u043e\u0436\u0435\u0442 (\u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430).<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d Nokia 5110 LCD \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0443\u044e \u0447\u043b\u0435\u043d\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 Netduino, \u043f\u0440\u043e \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e <a href=\"http:\/\/blog.roguecode.co.za\/oldschool-newschool-snake-with-lumia920-controlling-nokia-lcd-netduino\">\u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435<\/a>. \u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b (\u0432 \u043a\u043e\u043d\u0446\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438) \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u044e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e.<\/p>\n<p>  \u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HTTP-\u043a\u043b\u0438\u0435\u043d\u0442 \u0438\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 <a href=\"http:\/\/netmftoolbox.codeplex.com\/\">.NET MF Toolbox<\/a>. <\/p>\n<p>  \u0412\u043c\u0435\u0441\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0437\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u043e\u0439, \u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e \u0432\u0435\u0441\u044c \u043a\u043e\u0434 <em>Program.cs <\/em>\u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438. \u041e\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>    public class Program     {         \/\/the red and green pins of the RGB LED         private static OutputPort _redPin = new OutputPort(Pins.GPIO_PIN_D1, false);         private static OutputPort _greenPin = new OutputPort(Pins.GPIO_PIN_D0, false);           public static void Main()         {               \/\/setup the LCD with appropriate pins.             var lcd = new Nokia_5110(true, Pins.GPIO_PIN_D10, Pins.GPIO_PIN_D9, Pins.GPIO_PIN_D7, Pins.GPIO_PIN_D8)             {                 BacklightBrightness = 100             };               \/\/create these to store values             var history = new Queue();             double lastValue = 0;             var nextUpdateTime = DateTime.MinValue;             while (true)             {                 try                 {                     \/\/download the price from our API                     var WebSession = new HTTP_Client(new IntegratedSocket(&quot;bitcoinpusher.azurewebsites.net&quot;, 80));                     var response = WebSession.Get(&quot;\/api\/price\/&quot;);                     if (response.ResponseCode == 200)                     {                         \/\/convert the price to a double from a string                         var result = double.Parse(response.ResponseBody);                           \/\/if the value went up, change the LED to green, if it went down change to red                         if (result &gt; lastValue)                         {                             _greenPin.Write(true);                             _redPin.Write(false);                         }                         else if (result &lt; lastValue)                         {                             _greenPin.Write(false);                             _redPin.Write(true);                         }                         \/\/store this value so we can compare it to the next one                         lastValue = result;                           \/\/only add points to the graph every x seconds, else it will barely move                         if (DateTime.Now &gt; nextUpdateTime)                         {                             history.Enqueue(result);                             \/\/store a max of 80 data points as each point will take up 1 pixel, and the screen is                             \/\/only 80 wide                             if (history.Count &gt; 80)                             {                                 history.Dequeue();                             }                             \/\/store a value of what time we should add the next data point to the list                             nextUpdateTime = DateTime.Now.AddSeconds(15);                         }                           var high = 0d;                         var low = double.MaxValue;                         \/\/find the max and min value to determine our range (for the graph).                         \/\/The reason for this is so that the min value will be the very bottom of the graph, and                         \/\/the max value will be the very top of the graph regardless of what the values are                         foreach (double item in history)                         {                             if (item &lt; low)                             {                                 low = item;                             }                             if (item &gt; high)                             {                                 high = item;                             }                         }                         if (high == low)                         {                             \/\/if all numbers are the same, artificially seperate high and low so that the                             \/\/graph will draw in the middle of the screen. Without doing this the                              \/\/point will be at the very top.                             high--;                             low++;                         }                         double diff = high - low;                         lcd.Clear();                         short x = 1;                         short prevY = -1;                         \/\/this loop draws a line from the previous point to the current point, which makes the graph                         foreach (double item in history)                         {                             \/\/work out the y value based on the min\/max range, and the available height.                             \/\/We have 39 pixels height to work with, and shift it by 9 at the end so it doesn't                              \/\/overlap the text at the top                             var thisY = (short)((39 - (((item - low) \/ diff) * 39)) + 9);                               if (prevY != -1) \/\/don't draw from 0,0                             {                                 \/\/draw a line from the previous point to this point                                 lcd.DrawLine((short)(x - 1), prevY, x, thisY, true);                             }                             \/\/remember this pos so we can draw a line from it in the next iteration                             prevY = thisY;                             x++;                         }                         \/\/Refresh pushes all DrawLine\/Rect\/Point calls to the screen                         \/\/Note that this does not apply to writing text, which pushes instantly                         lcd.Refresh();                           \/\/there is no Math.Round(double,int) so use ToString to get 4 decimals                         lcd.WriteText(&quot;$ &quot; + result.ToString(&quot;f4&quot;) + &quot; \/ BTC&quot;);                     }                     else                     {                         FlickerLEDForFaliure();                     }                 }                 catch (Exception)                 {                     FlickerLEDForFaliure();                 }             }         }           private static void FlickerLEDForFaliure()         {             \/\/if the downlaod of the new value fails then flicker the LED. After flickering turn the LED off             for (int i = 0; i &lt; 30; i++)             {                 _redPin.Write(true);                 Thread.Sleep(100);                 _greenPin.Write(true);                 Thread.Sleep(100);                 _redPin.Write(false);                 Thread.Sleep(100);                 _greenPin.Write(false);             }         }       }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u0445\u0435\u043c\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439:<\/p>\n<p>  <a href=\"http:\/\/blog.roguecode.co.za\/wp-content\/uploads\/2014\/02\/BitcoinPusher_bb.png\"><img decoding=\"async\" alt=\"BitcoinPusher_bb\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/438\/b42\/041\/438b42041850953dc895584487f9036a.png\"\/><\/a><\/p>\n<p>  <a href=\"http:\/\/blog.roguecode.co.za\/wp-content\/uploads\/2014\/02\/WP_20140128_16_08_32_Pro-Copy.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"WP_20140128_16_08_32_Pro - Copy\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/932\/2b8\/86f\/9322b886fb0f8afcf75ec65d433b8fba.jpg\" width=\"640\" height=\"360\"\/><\/a><\/p>\n<p>  \u042f \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u044d\u0442\u0443 \u0441\u0445\u0435\u043c\u0443 \u043d\u0430 \u043d\u043e\u0447\u044c \u0438 \u043e\u043d\u0430 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. \u041e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u0441\u0435\u0442\u0438 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u0436\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e.<\/p>\n<h3>Windows Phone<\/h3>\n<p>  \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Windows Phone \u0434\u0435\u043b\u0430\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0447\u0442\u043e \u0438 \u0441\u0430\u043c Netduino: \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0446\u0435\u043d\u0443, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0435\u0435 \u0438 \u0437\u0430\u0442\u0435\u043c \u0440\u0438\u0441\u0443\u0435\u0442 \u0433\u0440\u0430\u0444\u0438\u043a.<\/p>\n<p>  UI \u2013 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e <em>TextBlock<\/em> \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0446\u0435\u043d\u044b \u0438 <em>Grid, <\/em>\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u0438.<\/p>\n<p>  <a href=\"http:\/\/blog.roguecode.co.za\/wp-content\/uploads\/2014\/02\/wp_ss_20140202_0001.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"wp_ss_20140202_0001\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/785\/9ce\/052\/7859ce0527fb29d78ef475fd2d9a1aa2.png\" width=\"327\" height=\"546\"\/><\/a><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>    &lt;Grid x:Name=&quot;LayoutRoot&quot; Background=&quot;Transparent&quot;&gt;         &lt;Grid.RowDefinitions&gt;             &lt;RowDefinition Height=&quot;Auto&quot;\/&gt;             &lt;RowDefinition Height=&quot;*&quot;\/&gt;         &lt;\/Grid.RowDefinitions&gt;           &lt;StackPanel x:Name=&quot;TitlePanel&quot; Grid.Row=&quot;0&quot; Margin=&quot;12,17,0,28&quot;&gt;             &lt;TextBlock Text=&quot;price&quot; x:Name=&quot;PriceTextBlock&quot; Margin=&quot;9,-7,0,0&quot; Style=&quot;{StaticResource PhoneTextTitle2Style}&quot; FontSize=&quot;40&quot;\/&gt;         &lt;\/StackPanel&gt;           &lt;Grid x:Name=&quot;ContentPanel&quot; Grid.Row=&quot;1&quot; Margin=&quot;0&quot;&gt;           &lt;\/Grid&gt;     &lt;\/Grid&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041d\u0438\u0436\u0435 \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u043a\u043e\u0434. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u0434 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043a\u043e\u0434\u0435 \u0434\u043b\u044f Netduino, \u044f \u043d\u0435 \u0441\u0442\u0430\u043b \u0435\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u043a\u043e\u0434\u0443 \u0434\u043b\u044f Netduino, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e. <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>    public partial class MainPage : PhoneApplicationPage     {         private Queue&lt;double&gt; _history = new Queue&lt;double&gt;();         private double _lastValue = 0;         private DateTime _nextUpdateTime = DateTime.MinValue;         public MainPage()         {             InitializeComponent();             DownloadAndPlotPrice();         }           private async void DownloadAndPlotPrice()         {             try             {                 var WebSession = new HttpClient();                 var response = await WebSession.GetAsync(&quot;http:\/\/bitcoinpusher.azurewebsites.net\/api\/price\/&quot;);                 if (response.IsSuccessStatusCode)                 {                     var result = double.Parse(await response.Content.ReadAsStringAsync());                       \/\/if the value went up, change the back to green, if it went down change to red                     if (result &gt; _lastValue)                     {                         LayoutRoot.Background = new SolidColorBrush(Colors.Green);                     }                     else if (result &lt; _lastValue)                     {                         LayoutRoot.Background = new SolidColorBrush(Colors.Red);                     }                     _lastValue = result;                       \/\/only add points to the graph every x seconds, else it will barely move                     if (DateTime.Now &gt; _nextUpdateTime)                     {                         _history.Enqueue(result);                         if (_history.Count &gt; 400)                         {                             _history.Dequeue();                         }                         _nextUpdateTime = DateTime.Now.AddSeconds(4);                     }                       var high = 0d;                     var low = double.MaxValue;                     \/\/find the max and min value to determine our range (for the graph)                     foreach (double item in _history)                     {                         if (item &lt; low)                         {                             low = item;                         }                         if (item &gt; high)                         {                             high = item;                         }                     }                     if (high == low)                     {                         \/\/if all numbers are the same, artificially seperate high and low so that the                         \/\/graph will draw in the middle of the screen                         high--;                         low++;                     }                     double diff = high - low;                     \/\/remove all previous lines in preperation for redrawing them                     ContentPanel.Children.Clear();                     short x = 1;                     short prevY = -1;                     foreach (double item in _history)                     {                         \/\/we now have 300 pixels of vertical space to play with                         var thisY = (short)(300 - (((item - low) \/ diff) * 300));                           if (prevY != -1) \/\/don't draw from 0,0                         {                             \/\/draw a line from the previous point to this point                             \/\/Line is a XAML control that we use to display lines                             ContentPanel.Children.Add(new Line                             {                                 X1 = (x - 1),                                 Y1 = prevY,                                 X2 = x,                                 Y2 = thisY,                                 StrokeThickness = 4,                                 Stroke = new SolidColorBrush(Colors.White)                             });                         }                         prevY = thisY;                         x++;                     }                      PriceTextBlock.Text = (&quot;$ &quot; + result.ToString(&quot;f5&quot;) + &quot; \/ BTC&quot;);                 }                 else                 {                     ShowFaliureFaliure();                 }             }             catch (Exception)             {                 ShowFaliureFaliure();             }               DownloadAndPlotPrice();         }           private async void ShowFaliureFaliure()         {             \/\/if the download of the new value fails then flicker the background.              for (int i = 0; i &lt; 30; i++)             {                 LayoutRoot.Background = new SolidColorBrush(Colors.Orange);                 await Task.Delay(100);                 LayoutRoot.Background = new SolidColorBrush(Colors.Black);                 await Task.Delay(100);             }         }     }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0435. \u0414\u0430\u0439\u0442\u0435 \u043c\u043d\u0435 \u0437\u043d\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 (\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2013 \u043f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.) \u0438\u043b\u0438 <a href=\"https:\/\/twitter.com\/roguecode\">\u043d\u0430 \u0442\u0432\u0438\u0442\u0442\u0435\u0440\u0435<\/a>.<\/p>\n<h3>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b <a href=\"http:\/\/aka.ms\/Uh0rjz\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>!<\/h3>\n<p>  <\/p>\n<h3>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438<\/h3>\n<p>  <\/p>\n<ul>\n<li>\n<h5><a href=\"http:\/\/aka.ms\/azure_trial_free_rus\">\u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c Azure<\/a> \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u043d\u0430 30 \u0434\u043d\u0435\u0439!<\/h5>\n<p>   <\/li>\n<li>\n<h5><a href=\"http:\/\/aka.ms\/getvsrus\">\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c<\/a> \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0443\u044e \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043d\u0443\u044e Visual Studio<\/h5>\n<p>   <\/li>\n<li>\n<h5>\u041f\u0440\u043e\u0439\u0442\u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0435 \u043a\u0443\u0440\u0441\u044b \u043d\u0430 <a href=\"http:\/\/aka.ms\/gomvarus\">\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0438 Microsoft<\/a> (MVA)<\/h5>\n<p>   <\/p>\n<ul>\n<li><a href=\"http:\/\/www.microsoftvirtualacademy.com\/training-courses\/app-development-on-microsoft-platform-rus\">\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Microsoft<\/a><\/li>\n<li><a href=\"http:\/\/www.microsoftvirtualacademy.com\/training-courses\/cross-platforming-dev-for-windows-phone-windows-8-rus\">\u041a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f Windows Phone \u0438 Windows 8<\/a><\/li>\n<li><a href=\"http:\/\/www.microsoftvirtualacademy.com\/training-courses\/build-for-windows-8-windows-phone\">\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u043e\u0431\u0449\u0438\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c Windows 8 \u0438 Windows Phone<\/a><\/li>\n<li><a href=\"http:\/\/www.microsoftvirtualacademy.com\/training-courses\/windows-phone-8-for-begginers\">\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u043f\u0440\u0438\u0451\u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f Windows Phone 8<\/a> <\/li>\n<li><a href=\"http:\/\/www.microsoftvirtualacademy.com\/training-courses\/advanced-possibilities-appdev-windows-phone-8-rus\">\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f Windows Phone 8<\/a> <\/li>\n<li>\u0438\u043b\u0438 <a href=\"http:\/\/www.microsoftvirtualacademy.com\/product-training\/product-windows-azure-ru\">\u043a\u0443\u0440\u0441\u044b \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435 Azure<\/a><\/li>\n<li>\u0438\u043b\u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 <a href=\"http:\/\/aka.ms\/gomvarus\">\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u043a\u0443\u0440\u0441\u044b MVA<\/a>!<\/li>\n<\/ul>\n<p>  <\/li>\n<li>\n<h5><a href=\"http:\/\/aka.ms\/wpstartrus\">\u0421\u0442\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c<\/a> \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Windows Phone <\/h5>\n<p>   <\/li>\n<\/ul>\n<div class=\"polling\">\n<form action=\"\/json\/polling\/\" class=\"poll\" method=\"post\">\n<div class=\"poll_title\">\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u044d\u0442\u043e\u043c\u0443\u2026<\/div>\n<p>  \t\t<input type=\"hidden\" name=\"post_id\" value=\"228285\"\/> \t\t<input type=\"hidden\" name=\"polling_question_id\" value=\"11479\"\/>  \t\t<\/p>\n<table class=\"answer\">\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv57609\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"57609\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv57609\">\u043c\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0432\u0435\u0449\u0435\u0439 (IoT)<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv57611\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"57611\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv57611\">\u043c\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043e\u0434 \u043e\u0431\u043b\u0430\u043a\u043e<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv57613\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"57613\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv57613\">\u043c\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv57615\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"57615\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv57615\">\u043c\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e \u00ab\u0421\u0434\u0435\u043b\u0430\u0439 \u0421\u0430\u043c\u00bb (Do It Yourself)<\/label> \t\t\t\t<\/td>\n<\/tr>\n<\/table>\n<p class=\"for_users_only_msg\">\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a href=\"https:\/\/habrahabr.ru\/auth\/login\/\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<p class=\"total\">\u041d\u0438\u043a\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b. \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442.<\/p>\n<\/p><\/form>\n<\/p><\/div>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/228285\/\"> http:\/\/habrahabr.ru\/post\/228285\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">       \u041c\u043e\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0430 \u0438 \u043c\u0435\u043d\u044f \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0414\u0443\u0440\u0431\u0430\u043d\u0441\u043a\u043e\u043c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0434 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u043a\u0443\u0440\u0441\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Netduino \u0438\/\u0438\u043b\u0438 Windows Phone \u0432 \u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p>\n<p>  \u041d\u0430\u043c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0438\u0433\u0430\u044e\u0449\u0438\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434, \u043d\u043e \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0436\u0438\u0432\u044b\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u043c. \u0418 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/92d\/5fd\/ffe\/92d5fdffe5ee2dbbcce94c3fbe1f23b0.gif\"\/><\/p>\n<p>  \u041f\u0440\u043e\u0441\u0438\u043c \u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0437\u0430 \u0443\u0436\u0430\u0441\u043d\u044b\u0439 GIF. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0442\u0440\u0435\u043a\u0435\u0440\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0446\u0435\u043d\u044b \u043d\u0430 \u0431\u0438\u0442\u043a\u043e\u0438\u043d. \u0413\u0440\u0430\u0444 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435, \u0430 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043c\u0435\u043d\u044f\u0435\u0442 \u0446\u0432\u0435\u0442 \u043d\u0430 \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u043f\u0440\u0438 \u0440\u043e\u0441\u0442\u0435 \u0446\u0435\u043d\u044b \u0438 \u043d\u0430 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u043a\u043e\u0433\u0434\u0430 \u0446\u0435\u043d\u0430 \u043f\u0430\u0434\u0430\u0435\u0442. (\u041d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443 \u2013 \u0432\u043c\u0435\u0441\u0442\u043e USD \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f BTC).  <\/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-228285","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/228285","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=228285"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/228285\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=228285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=228285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=228285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}