








{"id":94,"date":"2020-10-12T21:14:07","date_gmt":"2020-10-12T21:14:07","guid":{"rendered":"https:\/\/osoyoo.info\/?p=94"},"modified":"2020-12-02T21:22:36","modified_gmt":"2020-12-02T21:22:36","slug":"arduino-basic-lesson-15-i2c-lcd1602-display","status":"publish","type":"post","link":"https:\/\/osoyoo.info\/index.php\/2020\/10\/12\/arduino-basic-lesson-15-i2c-lcd1602-display\/","title":{"rendered":"Hardware Programming with Arduino IDE &#8211; Lesson 15: I2C LCD1602 Display"},"content":{"rendered":"<p><a href=\"https:\/\/osoyoo.info\/index.php\/2020\/10\/12\/arduino-basic-lesson-14-potentiometer\/\"><img loading=\"lazy\" class=\"alignnone\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/Previous.png\" alt=\"\" width=\"206\" height=\"59\" \/><\/a>\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<a href=\"https:\/\/osoyoo.info\/index.php\/2020\/10\/11\/arduino-basic-tutorial-directory\/\"><img loading=\"lazy\" class=\"alignnone\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/Tutorial.png\" alt=\"\" width=\"206\" height=\"59\" \/><\/a>\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<a href=\"https:\/\/osoyoo.info\/index.php\/2020\/10\/12\/arduino-basic-lesson-16-rgb-led\/\"><img loading=\"lazy\" class=\"alignright\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/Next.png\" alt=\"\" width=\"206\" height=\"59\" \/><\/a><\/p>\n<div align=\"center\">\n<div align=\"center\"><img class=\"aligncenter\" src=\"https:\/\/osoyoo.com\/picture\/icon\/authorized_retailers.png\" \/><\/div>\n<div align=\"center\"><\/div>\n<table>\n<tbody>\n<tr>\n<td>Buy from US<\/td>\n<td>Buy from UK<\/td>\n<td>Buy from DE<\/td>\n<td>Buy from IT<\/td>\n<td>Buy from FR<\/td>\n<td>Buy from ES<\/td>\n<td>Buy from JP<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/www.amazon.com\/dp\/B08J7DKJK9?ref=myi_title_dp\"><img loading=\"lazy\" class=\"alignnone size-large\" src=\"https:\/\/osoyoo.com\/picture\/icon\/us_buy_now.png\" width=\"150\" height=\"30\" \/><\/a><\/td>\n<td><a href=\"https:\/\/www.amazon.co.uk\/dp\/B08J6BL2P7\"><img loading=\"lazy\" class=\"alignnone\" src=\"https:\/\/osoyoo.com\/picture\/icon\/uk_buy_now.png\" alt=\"\" width=\"150\" height=\"30\" \/><\/a><\/td>\n<td><a href=\"https:\/\/www.amazon.de\/dp\/B08J6BL2P7\"><img loading=\"lazy\" class=\"alignnone size-large\" src=\"https:\/\/osoyoo.com\/picture\/icon\/de_buy_now.png\" width=\"150\" height=\"30\" \/><\/a><\/td>\n<td><a href=\"https:\/\/www.amazon.it\/dp\/B08J6BL2P7\"><img loading=\"lazy\" class=\"alignnone size-large\" src=\"https:\/\/osoyoo.com\/picture\/icon\/it_buy_now.png\" width=\"150\" height=\"30\" \/><\/a><\/td>\n<td><a href=\"https:\/\/www.amazon.fr\/dp\/B08J6BL2P7\"><img loading=\"lazy\" class=\"alignnone size-large\" src=\"https:\/\/osoyoo.com\/picture\/icon\/fr_buy_now.png\" width=\"150\" height=\"30\" \/><\/a><\/td>\n<td><a href=\"https:\/\/www.amazon.es\/dp\/B08J6BL2P7\"><img loading=\"lazy\" class=\"alignnone size-large\" src=\"https:\/\/osoyoo.com\/picture\/icon\/es_buy_now.png\" width=\"150\" height=\"30\" \/><\/a><\/td>\n<td><a href=\"https:\/\/www.amazon.co.jp\/dp\/B08J7TLP48\"><img loading=\"lazy\" class=\"alignnone size-large\" src=\"https:\/\/osoyoo.com\/picture\/icon\/jp_buy_now.png\" width=\"150\" height=\"30\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><strong>Content<\/strong><\/h2>\n<ol>\n<li><a href=\"#1\">Introduction<\/a><\/li>\n<li><a href=\"#2\">Preparations<\/a>\n<ul>\n<li><a href=\"#2.1\">Hardware<\/a><\/li>\n<li><a href=\"#2.2\">Software<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#3\">About the I2C LCD 1602 Display<\/a><\/li>\n<li><a href=\"#4\">Connection<\/a><\/li>\n<li><a href=\"#5\">Find the I2C address<\/a><\/li>\n<li><a href=\"#6\">Upload Sketch<\/a>\n<ul>\n<li><a href=\"#6.1\">Install Library<\/a><\/li>\n<li><a href=\"#6.2\">Library Support Functions<\/a><\/li>\n<li><a href=\"#6.3\">Code Program<\/a><\/li>\n<li><a href=\"#6.4\">Compile and upload<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#7\">Program Running Result<\/a><\/li>\n<\/ol>\n<h1 id=\"1\">Introduction<\/h1>\n<p class=\"ordinary-output target-output clearfix\">During the building of your projects for Arduino, you\u2019ll often need to read the output data directly from a LCD display. In this lesson we will show how to mount a LCD display on your Arduino using the I2C communication. Finally you will see how to program it with a simple example showing how to display text on the display.<\/p>\n<h1 id=\"2\">Preparations<\/h1>\n<h2 id=\"2.1\">Hardware<\/h2>\n<ul>\n<li>OSOYOO UNO Board (Fully compatible with Arduino UNO rev.3) x 1<\/li>\n<li>OSOYOO Magic I\/O Shield for Arduino x1<\/li>\n<li>I2C LCD 1602 Display x 1<\/li>\n<li>OSOYOO 4-Pin PNP Cable x 1<\/li>\n<li>USB Cable x 1<\/li>\n<li>PC x 1<\/li>\n<\/ul>\n<h2 id=\"2.2\">Software<\/h2>\n<ul>\n<li>Arduino IDE (version 1.6.4+)<\/li>\n<li><a href=\"https:\/\/osoyoo.com\/wp-content\/uploads\/samplecode\/LiquidCrystal_I2C.zip\" target=\"_blank\" rel=\"noopener noreferrer\">LiquidCrystal_I2C.h<\/a><\/li>\n<\/ul>\n<h1 id=\"3\">About I2C LCD 1602 Display<\/h1>\n<p><img class=\"aligncenter\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/lesson14\/1602-1.png\" \/><\/p>\n<p>The integration of an LCD display greatly facilitates the interactivity of the project you are developing, allowing the user to directly read some output parameters. These values can be either a simple text or numerical values read by the sensors, such as temperature or pressure, or even the number of cycles that the Arduino is performing.<\/p>\n<p>However, these displays have a small problem. When they are connected to a microcontroller (such as Arduino for example), these displays require virtually many connection PINs occupying practically almost all available IO and leaving the multiprocessor few outputs for any other devices and sensors. This problem has been solved thanks to the communication on the I2C bus.<\/p>\n<p>The LCD1602 display has an integrated microchip that manages this type of communication, and then all of the input and output information are limited to only two PINs (excluding power supply). I2C is a type of serial bus developed by Philips, which uses two bidirectional lines, called SDA (Serial Data Line) and SCL (Serial Clock Line). Both must be connected via pulled-up resistors. The usage voltages are standard as 5V and 3.3V.<\/p>\n<p>The blue potentiometer on the I2C LCD1602 (see the figure below) is used to adjust the backlight for better display.And there is a jumper on the board, if you take away this jumper , the backlight will aways be off.<\/p>\n<p><img class=\"aligncenter\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/lesson14\/7.png\" \/><\/p>\n<p>For the usagage of other functions, pleae refer to the &#8220;LiquidCrystal_I2C.h&#8221; in the sourcecode of <b><a class=\"external text\" href=\"https:\/\/osoyoo.com\/wp-content\/uploads\/samplecode\/LiquidCrystal_I2C.zip\" target=\"_blank\" rel=\"noopener noreferrer\">I2C LCD library<\/a>.<\/b><\/p>\n<h1 id=\"4\">Connection<\/h1>\n<p>First, please plug Osoyoo Magic I\/O shield into UNO board:<\/p>\n<p><img class=\"aligncenter\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/lesson4\/UNO%2BBase-min.png\" \/><\/p>\n<p>Then connect the<u>\u00a0I2C LCD 1602 Display<\/u>\u00a0module to the\u00a0<u>I2C\u00a0<\/u>port of the Magic I\/O shield (please move the switch on the board to 5V) with a\u00a0<u>4-pin\u00a0<\/u>PNP cable as below:<\/p>\n<p><img class=\"aligncenter\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/lesson14\/base%2B1602.png\" \/><\/p>\n<h1 id=\"5\">Find the I2C address<\/h1>\n<p>Each device has an I2C address that it uses to accept commands or send messages. For Uno board, this address usually is 0x27. But sometimes the address might be changed 0x37,0x24 \u2026., So let\u2019s go and look for the one on your device.<\/p>\n<p><a href=\"https:\/\/osoyoo.com\/download\/code\/ic2_scanner.zip\" target=\"_blank\" rel=\"noopener noreferrer\">Download ic2 scanner sketch zip file<\/a> , then unzip and load it into Arduino IDE. By opening up the serial monitor in the upright corner, Arduino will scan the address range looking for a reply. Most Arduino board will show 0x27, however it be other number.<\/p>\n<p><a href=\"https:\/\/osoyoo.com\/wp-content\/uploads\/2017\/07\/scanneri2caddress.png\"><img loading=\"lazy\" class=\"wp-image-8386 aligncenter\" src=\"https:\/\/osoyoo.com\/wp-content\/uploads\/2017\/07\/scanneri2caddress.png\" alt=\"\" width=\"765\" height=\"419\" \/><\/a><\/p>\n<p>Write down the Address that you have found, you\u2019ll need it in the next step.<\/p>\n<h1 id=\"6\">Upload Sketch<\/h1>\n<p>After above operations are completed, connect the Arduino board to your computer using the USB cable. The green power LED (labelled <strong>PWR<\/strong>) should go on.<\/p>\n<h2 id=\"6.1\">Install Library<\/h2>\n<p>To use the I2C protocol with an LCD display and Arduino, there is a special library to be downloaded and included in the code. The name of this library is <strong><a href=\"https:\/\/osoyoo.com\/wp-content\/uploads\/samplecode\/LiquidCrystal_I2C.zip\">Liquid Crystal I2C<\/a>.<\/strong> Download the library, a zip file (you can download it from <a href=\"https:\/\/osoyoo.com\/wp-content\/uploads\/samplecode\/LiquidCrystal_I2C.zip\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>) and extract the contents in the libraries folder of the Arduino IDE. You can do directly from the Arduino IDE, select <strong>Sketch<\/strong> &gt; <strong>include Library &gt; Add .ZIP library <\/strong>from the menu.<\/p>\n<p><a href=\"https:\/\/osoyoo.com\/wp-content\/uploads\/2017\/07\/addlibrary.png\"><img loading=\"lazy\" class=\"wp-image-8387 aligncenter\" src=\"https:\/\/osoyoo.com\/wp-content\/uploads\/2017\/07\/addlibrary.png\" alt=\"\" width=\"396\" height=\"507\" \/><\/a><\/p>\n<h2 id=\"6.2\"><span id=\"Library_Support_Functions\" class=\"mw-headline\">Library Support Functions<\/span><\/h2>\n<ul>\n<li><b>LiquidCrystal_I2C()<\/b> \/\/set the LCD address for a 16 chars and 2 line display<\/li>\n<li><b>init()<\/b> \/\/Initialization for the LCD<\/li>\n<li><b>clear()<\/b> \/\/clear display, set cursor position to zero<\/li>\n<li><b>home()<\/b> \/\/set cursor position to zero<\/li>\n<li><b>createChar()<\/b> \/\/Fill the first 8 CGRAM locations with custom characters<\/li>\n<li><b>setCursor()<\/b> \/\/set the position of the cursor<\/li>\n<li><b>cursor()<\/b> \/\/Turns the underline cursor on<\/li>\n<li><b>noCursor()<\/b> \/\/Turns the underline cursor off<\/li>\n<li><b>blink()<\/b> \/\/Turn on the blinking cursor<\/li>\n<li><b>noBlink()<\/b> \/\/Turn off the blinking cursor<\/li>\n<li><b>display()<\/b> \/\/Turn the display on(quickly)<\/li>\n<li><b>noDisplay()<\/b> \/\/Turn the display 0ff(quickly)<\/li>\n<li><b>backlight()<\/b> \/\/Turn the backlight on<\/li>\n<li><b>noBacklight()<\/b> \/\/Turn the backlight off<\/li>\n<li><b>scrollDisplayLeft()<\/b> \/\/Make the display scroll left without changing the RAM<\/li>\n<li><b>scrollDisplayRight()<\/b> \/\/Make the display scroll right without changing the RAM<\/li>\n<li><b>autoscroll()<\/b> \/\/This will &#8216;right justify&#8217; text from the cursor<\/li>\n<li><b>noAutoscroll()<\/b> \/\/This will &#8216;left justify&#8217; text from the cursor<\/li>\n<li><b>leftToRight()<\/b> \/\/This is for text that flows Left to Right<\/li>\n<li><b>rightToLeft()<\/b> \/\/This is for text that flows Right to Left<\/li>\n<\/ul>\n<h2 id=\"6.3\">Code Program<\/h2>\n<p>You can <a href=\"https:\/\/osoyoo.com\/picture\/OSOYOO_PnP_Kit_for_Arduino\/code\/Lesson16_I2C_1602_Welcome.rar\" target=\"_blank\" rel=\"noopener noreferrer\">download the sketch from this link<\/a> or copy below code to your Arduino IDE window:<\/p>\n<pre><span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #d35400;\">Wire<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">LiquidCrystal_I2C<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> <b><span style=\"color: #d35400;\">LiquidCrystal_I2C<\/span><\/b> <span style=\"color: #000000;\">lcd<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">0x27<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #000000;\">2<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ set the LCD address to 0x27 for a 16 chars and 2 line display<\/span> <span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">setup<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> <span style=\"color: #000000;\">lcd<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">init<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ initialize the lcd <\/span> <span style=\"color: #434f54;\">\/\/ Print a message to the LCD.<\/span> <span style=\"color: #000000;\">lcd<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">backlight<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">lcd<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #005c5f;\">\"Hello, world!\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">}<\/span> <span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> <span style=\"color: #000000;\">}<\/span><\/pre>\n<h2 id=\"6.4\">Compile and upload<\/h2>\n<p>Open the Arduino IDE and select corresponding board type and port type for your Arduino board.<\/p>\n<p><a href=\"https:\/\/osoyoo.com\/wp-content\/uploads\/2017\/07\/upload.png\"><img loading=\"lazy\" class=\"size-full wp-image-8390 aligncenter\" src=\"https:\/\/osoyoo.com\/wp-content\/uploads\/2017\/07\/upload.png\" alt=\"\" width=\"486\" height=\"593\" \/><\/a><\/p>\n<p>After compile this sketch, simply click the \u201cUpload\u201d button in the environment. Wait a few seconds \u2013 you should see the RX and TX leds on the board flashing. If the upload is successful, the message \u201cDone uploading.\u201d will appear in the status bar.<\/p>\n<h1 id=\"7\">Running Result<\/h1>\n<p>In this experiment, <a href=\"https:\/\/osoyoo.com\/picture\/OSOYOO_PnP_Kit_for_Arduino\/code\/Lesson16_I2C_1602_Welcome.rar\" target=\"_blank\" rel=\"noopener noreferrer\">the sketch<\/a> will make a connection between Arduino and I2C LCD display and then print a text on two lines. The first line will display \u201cHello all !\u201d and second the \u201cWelcome to www.osoyoo.com !\u201d message.The circuit and the board \/ port type settings are same as above example.<\/p>\n<pre>\r\n#include \"Wire.h\"\r\n#include \"LiquidCrystal_I2C.h\"\r\n\r\nchar array1[]=\" Hello all !                \"; \/\/the string to print on the LCD\r\nchar array2[]=\"Welcome to www.osoyoo.com      \"; \/\/the string to print on the LCD\r\nint tim = 500; \/\/the value of delay time\r\n\/\/ initialize the library with the numbers of the interface pins\r\nLiquidCrystal_I2C lcd(0x3F,16,2); \/\/ set the LCD address to 0x27 for a 16 chars and 2 line display\r\n\r\nvoid setup()\r\n{\r\n  lcd.init(); \/\/initialize the lcd\r\n  lcd.backlight(); \/\/open the backlight \r\n}\r\n\r\nvoid loop() \r\n{\r\n  lcd.setCursor(15,0); \/\/ set the cursor to column 15, line 0\r\n  for (int positionCounter1 = 0; positionCounter1 < 26; positionCounter1++)\r\n  {\r\n    lcd.scrollDisplayLeft(); \/\/Scrolls the contents of the display one space to the left.\r\n    lcd.print(array1[positionCounter1]); \/\/ Print a message to the LCD.\r\n    delay(tim); \/\/wait for 250 microseconds\r\n  }\r\n  lcd.clear(); \/\/Clears the LCD screen and positions the cursor in the upper-left  corner.\r\n  lcd.setCursor(15,1); \/\/ set the cursor to column 15, line 1\r\n  for (int positionCounter = 0; positionCounter < 26; positionCounter++)\r\n  {\r\n    lcd.scrollDisplayLeft(); \/\/Scrolls the contents of the display one space to the left.\r\n    lcd.print(array2[positionCounter]); \/\/ Print a message to the LCD.\r\n    delay(tim); \/\/wait for 250 microseconds\r\n  }\r\n  lcd.clear(); \/\/Clears the LCD screen and positions the cursor in the upper-left corner.\r\n}\r\n\r\n<\/pre>\n<p>Compile and upload this sketch to the Osoyoo UNO board, you should now see your I2C LCD1602 display the flowing characters: \"Hello all !\" and \"Welcome to www.osoyoo.com\"<\/p>\n<div align=\"center\"><iframe src=\"https:\/\/www.youtube.com\/embed\/n75iqc88oOk\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/div>\n<p><a href=\"https:\/\/osoyoo.info\/index.php\/2020\/10\/12\/arduino-basic-lesson-14-potentiometer\/\"><img loading=\"lazy\" class=\"alignnone\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/Previous.png\" alt=\"\" width=\"206\" height=\"59\" \/><\/a>\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<a href=\"https:\/\/osoyoo.info\/index.php\/2020\/10\/11\/arduino-basic-tutorial-directory\/\"><img loading=\"lazy\" class=\"alignnone\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/Tutorial.png\" alt=\"\" width=\"206\" height=\"59\" \/><\/a>\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<a href=\"https:\/\/osoyoo.info\/index.php\/2020\/10\/12\/arduino-basic-lesson-16-rgb-led\/\"><img loading=\"lazy\" class=\"alignright\" src=\"https:\/\/osoyoo.com\/picture\/Arduino_Graphical_Programming_Kit\/Next.png\" alt=\"\" width=\"206\" height=\"59\" \/><\/a><\/p>\n<div align=\"center\">\n<div align=\"center\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP Content Introduction Preparations Hardware Software About the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":157,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/posts\/94"}],"collection":[{"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/comments?post=94"}],"version-history":[{"count":5,"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/posts\/94\/revisions"}],"predecessor-version":[{"id":315,"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/posts\/94\/revisions\/315"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/media\/157"}],"wp:attachment":[{"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/media?parent=94"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/categories?post=94"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/osoyoo.info\/index.php\/wp-json\/wp\/v2\/tags?post=94"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}