{"id":9452,"date":"2020-11-10T16:51:32","date_gmt":"2020-11-10T16:51:32","guid":{"rendered":"https:\/\/wolles-elektronikkiste.de\/bh1750fvi-gy-30-302-ambient-light-sensor"},"modified":"2024-05-26T13:00:08","modified_gmt":"2024-05-26T13:00:08","slug":"bh1750fvi-gy-30-302-ambient-light-sensor","status":"publish","type":"post","link":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor","title":{"rendered":"BH1750FVI (GY-30, 302) ambient light sensor"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">About the post<\/h2>\n\n<p>In this article of my series<sup>1<\/sup> about light, gesture, motion and distance sensors I would like to introduce the ambient light sensor BH1750FVI. More specifically, it is about the BH1750FVI module &#8211; the BH1750FVI itself is the small six-pin IC on the module. Often you can also find the abbreviation BH1750 or even only GY-302 or GY-30, but this is always the same module or at least the same base.&nbsp;<\/p>\r\n<p>A few posts ago, I presented the light sensor <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/tsl2561-light-sensor-module\" target=\"_blank\" rel=\"noopener noreferrer\">TSL2561<\/a>, which at first glance works similarly to the BH1750FVI, but has a clear difference in detail. A comparison of this and all other sensors in this series is available when I have completed the series. &nbsp;<\/p>\r\n<p>In this article, I will first discuss the technical features, present the setting options, explain the control via Arduino and present my library for this module. There are already a number of libraries for the BH1750FVI, but I haven&#8217;t found one where the setting of the measurement time was implemented or worked according to my expectations.&nbsp;<\/p>\r\n<p><sup>1<\/sup> <em>A summary of the series can be found <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/sensor-comparison-ambient-light-proximity-motion\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/em><\/p>\r\n\n<h2 class=\"wp-block-heading\">Properties<\/h2>\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750_beide_Modelle.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"414\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750_beide_Modelle-1024x414.jpg\" alt=\"Various BH1750FVI modules\" class=\"wp-image-3361\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750_beide_Modelle-1024x414.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750_beide_Modelle-300x121.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750_beide_Modelle-768x311.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750_beide_Modelle-1320x534.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750_beide_Modelle.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Two BH1750FVI modules<\/figcaption><\/figure>\n\n<h3 class=\"wp-block-heading\">Principle<\/h3>\n\n<p>The BH1750FVI has a photodiode with a response range of approx. 400 &#8211; 700 nm, i.e. essentially the area of visible light. The photo voltage is amplified and stored with an A\/D converter in a 16-bit reading. The measured value are integrated over an adjustable measurement period.&nbsp;<\/p>\r\n\n<h3 class=\"wp-block-heading\">Specifications of the BH1750FVI module<\/h3>\n\n<p>The most important technical data are:<\/p>\r\n<ul>\r\n<li><strong>Power supply<\/strong>: 3 &#8211; 5 VDC<\/li>\r\n<li><strong>Current Consumption<\/strong>: &nbsp; x 0.14 mA&nbsp;\r\n<ul>\r\n<li>Power Off Mode: 0 mA &nbsp;<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li><strong>Communication<\/strong>: I2C (SDA\/SCL)<\/li>\r\n<li><strong>I2C addresses<\/strong>: 0x23 or 0x5C adjustable<\/li>\r\n<li><strong>Measuring range<\/strong>: 0 &#8211; 65535 lx, expandable up to 100000 (according to data sheet)\r\n<ul>\r\n<li>in my view, the values are not quite right &#8211; more on that later.&nbsp;<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>&nbsp;<strong>Maximum resolution<\/strong>: depending on the setting 0.11 &#8211; 7.4 lx<\/li>\r\n<\/ul>\r\n<p>The standard I2C address of the module is 0x23. You can change it to 0x5C by connecting the address pin (ADDR or ADD) to HIGH. The pin is apparently &#8220;pulled down&#8221;. Therefore, no connection to GND is necessary for the use of the default address. You can check the address with an I2C scanner, for example <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/i2c-scanner?lang=en\" target=\"_blank\" rel=\"noopener noreferrer\">the one here<\/a>.&nbsp;<\/p>\r\n\n<p>You can buy the module for about 2 euros, e.g. at <a href=\"https:\/\/smile.amazon.de\/s?k=BH+1750+FVI&amp;__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;ref=nb_sb_noss_2\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon<\/a> from numerous providers.&nbsp;<\/p>\r\n<p>You can get a detailed data sheet <a href=\"https:\/\/www.mouser.com\/ds\/2\/348\/bh1750fvi-e-186247.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\r\n\n<h2 class=\"wp-block-heading\">Setting options \/ operating modes<\/h2>\n\n<h3 class=\"wp-block-heading\">Resolution modes<\/h3>\n\n<p>The BH1750HVI has three continuous and three discontinuous (&#8220;One Time&#8221;) modes:<\/p>\r\n<ul>\r\n<li>Continuously H-Resolution Mode<\/li>\r\n<li>Continuously H-Resolution Mode2<\/li>\r\n<li>Continuously L-Resolution Mode<\/li>\r\n<li>One Time H-Resolution Mode<\/li>\r\n<li>One Time H-Resolution Mode2<\/li>\r\n<li>One Time L-Resolution Mode<\/li>\r\n<\/ul>\r\n<p>The advantage of the &#8220;One Time&#8221; modes is that the module automatically goes into Power Off mode after the measurement and thus saves power.&nbsp;<\/p>\r\n<p>Otherwise, the modes differ in terms of resolution and measurement time:&nbsp;<\/p>\r\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Modes_vs_res_vs_mt.png\"><img loading=\"lazy\" decoding=\"async\" width=\"949\" height=\"226\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Modes_vs_res_vs_mt.png\" alt=\"\" class=\"wp-image-21267\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Modes_vs_res_vs_mt.png 949w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Modes_vs_res_vs_mt-300x71.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Modes_vs_res_vs_mt-768x183.png 768w\" sizes=\"auto, (max-width: 949px) 100vw, 949px\" \/><\/a><figcaption class=\"wp-element-caption\">Operating modes of the BH1750HVI versus measuring time and resolution<\/figcaption><\/figure>\n\n<p>The continuous H-Resolution Mode is the default. You go into L-Resolution Mode if you want to measure fast or at high frequency. The H-Resolution Mode2 is a good way to achieve a higher resolution in the dark.&nbsp;<\/p>\r\n\n<h4 class=\"wp-block-heading\">Resolution vs maximum light intensity<\/h4>\n\n<p>The measured value is stored as a 16 bit value, correspondingly 65535 is the maximum value. To convert the measured values into Lux, the raw data in H-Resolution and L-Resolution Mode must be divided by 1.2, according to the data sheet. This results in a maximum value of 54612 lx. In H-Resolution Mode2, the result must be divided by two again. This results in a maximum value of 27306 lx.\u00a0<\/p>\n\n<h4 class=\"wp-block-heading\">How to set the modes<\/h4>\n\n<p>If you are not using a library, you only need to send a single control byte (called OpeCode in the data sheet) to the BH1750HVI via I2C to set the desired mode. Later you can see in the example sketches how this works in detail. &nbsp; &nbsp;<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/11\/Mode_vs_OpCode.png\"><img decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/11\/Mode_vs_OpCode.png\" alt=\"OpeCodes of the BH1750FVI for setting the resolution\" class=\"wp-image-3379\"\/><\/a><figcaption class=\"wp-element-caption\">Setting the resolution by means of control codes<\/figcaption><\/figure>\n\n<h3 class=\"wp-block-heading\">Setting the measurement time<\/h3>\n\n<p>Frankly, I had to read the section on the setting procedure of the measurement time several times because it is, let&#8217;s say, unusual. First, one should know that the setting of the measuring time is relative to the basic measurement time set by the mode, i.e. 16 or 120 ms. This means that you do not specify a value in milliseconds, but work with factors.\u00a0<\/p>\r\n<p>The measurement time or factor is set in the Measurement Time Register (MTReg). \u00a0 The default setting is 69 (0b01000101). This value can be varied from 31 to 254. A change to 31 means:<\/p>\r\n<p><code>New measurement time = base value x 31\/69 \u2248 base value x 0,45<\/code><\/p>\r\n<p>A change to the maximum value 254 means:<\/p>\r\n<p><code>New measurement time = base value x 254\/69 \u2248 base value x 3,68<\/code><\/p>\r\n<p>The measuring time can be changed by a factor of 0.45 to 3.68.\u00a0<\/p>\r\n<p>The measurement time change is directly proportional to the raw data. Accordingly, the maximum measurable light intensity changes. For example, in Continuous H mode, the maximum measurable Lux value is 65535 \/ 1.2 \u2248 54612. If the measuring time is reduced to the 0.45fold, the light can be correspondingly more intense without the 16-bit data register overflowing. The maximum measurable value in Lux is thus 65535 x (69\/31) \/ 1.2 \u2248 121557 lx. I don&#8217;t know why the data sheet specifies 100000 lx as the maximum value.<\/p>\r\n<p>It is important to take the factors into account when converting the raw data into lux values, otherwise the results are wrong. However, there may also be a reason not to do this, and that is when you are performing a calibration. More on that. \u00a0 \u00a0\u00a0<\/p>\n\n<h4 class=\"wp-block-heading\">Why change the measurement time? <\/h4>\n\n<p>There are three reasons to change the measurement time:<\/p>\r\n<ol>\r\n\t<li>Expanding the measuring range upwards<\/li>\r\n\t<li>Ensure a higher resolution a low values\u00a0<\/li>\r\n\t<li>Calibration, e.g. due to the use of a window that absorbs part of the light<\/li>\r\n<\/ol>\r\n<p>Let&#8217;s say the BH1750FVI is installed behind a window that only passes through 50% of the light. In this case, the measuring time would be doubled to compensate for the effect (calibration). And in this case, of course, the factor would not be factored out at the end, as in 1 and 2.\u00a0<\/p>\n\n<h4 class=\"wp-block-heading\">Resolution versus measurement time<\/h4>\n\n<p>Derived from the calculation rules given above, the resolution can be determined depending on the MTReg value:<\/p>\r\n<p><code>Resolution in H-Resolution Mode = 1\/1.2 x 69\/MTReg<\/code><\/p>\r\n<p><code>Resolution in H-Resolution Mode2 = (1\/1.2 x 69\/MTReg)\/2\u00a0<\/code><\/p>\r\n<p><code>Resolution in L-Resolution Mode = (1\/1.2 x 69\/MTReg) x 4<\/code><\/p>\r\n<p>This results in:<\/p>\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/11\/Resolution_vs_MTReg.png\"><img decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/11\/Resolution_vs_MTReg-1024x192.png\" alt=\"Resolution versus measurement time and operating mode\" class=\"wp-image-3392\"\/><\/a><figcaption class=\"wp-element-caption\">Resolution versus measurement time and operating mode<\/figcaption><\/figure>\n\n<h4 class=\"wp-block-heading\">How to change the measurement time<\/h4>\n\n<p>In principle, I have already given the answer. You need to change the default value in MTReg from 69 to the desired value. If you have a library that has implemented this feature, you don&#8217;t have to worry about the details and can skip the rest of the section.&nbsp;<\/p>\r\n<p>For those who work without a library or want to change something in their library or just want to know what&#8217;s going on behind the scenes, I&#8217;ll explain that.&nbsp;<\/p>\r\n<p>You are normally used to changing a register value by addressing a control register, passing the destination register address, and then sending the values \u200b\u200bbyte by byte. Things are a little different here. The three upper bits and the five lower bits of the MTReg value (short: MTReg) are passed to the BH1750FVI in two steps, packaged in two control bytes. This happens according to the following scheme:<\/p>\r\n<ul>\r\n<li>Byte1 = 01000 [MTReg Bit7] [MTReg Bit6] [MTReg Bit5]<\/li>\r\n<li>Byte2 = 011 [MTReg Bit4] [MTReg Bit3] [MTReg Bit2] [MTReg Bit1] [MTReg Bit0]<\/li>\r\n<\/ul>\r\n<p>The best way to calculate the bytes is by binary operations:<\/p>\r\n<p><code>Byte1 = (MTReg &gt;&gt; 5) | 0b01000000<\/code><\/p>\r\n<p>The 5 digit shift positions the bits 7,6 and 5 in the correct position. The subsequent logical OR operation ensures that the lower bits remain unchanged and the higher bits are 01000.<\/p>\r\n<p><code>Byte2 = (MTReg &amp; 0b01111111) | 0b01100000<\/code><\/p>\r\n<p>Here, the first logical AND ensures write a 0 in bit 7 of the byte2 without changing the other bits. The subsequent OR operation sets bits 6 and 7 without changing the other bits.&nbsp;<\/p>\r\n\n<h3 class=\"wp-block-heading\">Other settings<\/h3>\n\n<p>Here are a few more settings with the corresponding OpeCodes:<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/11\/Other_Settings.png\"><img decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/11\/Other_Settings.png\" alt=\"More settings on the BH1750FVI\" class=\"wp-image-3397\"\/><\/a><\/figure>\n\n<h2 class=\"wp-block-heading\">Control of the BH1750FVI without library <\/h2>\n\n<h3 class=\"wp-block-heading\">The sketch<\/h3>\n\n<p>Here is the Arduino Sketch for controlling the BH1750FVI without a library.<\/p>\r\n<p>The MTReg value (measuringTimeFactor) is entered as a factor and the byte value for the MT register is calculated from it. I find this more practical than setting the MTReg value directly. In line 38 and 41, the factor is factored out again to get the &#8220;real&#8221; Lux values. If the factor is used for calibration, this calculation step must be omitted.&nbsp;<\/p>\r\n<p>Based on the previous explanations, the sketch should be self-explanatory.&nbsp;<\/p>\r\n\n<div class=\"scroll-paragraph-long\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"BH1750FVI_ohne_Bibliothek.ino\" data-enlighter-title=\"BH1750FVI_ohne_Bibliothek.ino\">#include\u00a0&lt;Wire.h&gt;\r\n#define\u00a0BH_1750\u00a00x23\r\n#define\u00a0DATA_REG_RESET\u00a00b00000111\r\n#define\u00a0POWER_DOWN\u00a00b00000000\r\n#define\u00a0POWER_ON\u00a00b00000001\r\n\r\nenum\u00a0BH1750Mode\u00a0{\r\n\u00a0\u00a0CHM\u00a0=\u00a00b00010000,\u00a0\u00a0\u00a0\u00a0\u00a0\/\/CHM:\u00a0Continuously\u00a0H-Resolution\u00a0Mode\r\n\u00a0\u00a0CHM_2\u00a0=\u00a00b00010001,\u00a0\u00a0\u00a0\/\/CHM_2:\u00a0Continuously\u00a0H-Resolution\u00a0Mode2\r\n\u00a0\u00a0CLM\u00a0=\u00a00b00010011,\u00a0\u00a0\u00a0\u00a0\u00a0\/\/CLM:\u00a0Continuously\u00a0L-Resolution\u00a0Mode\r\n\u00a0\u00a0OTH\u00a0=\u00a00b00100000,\u00a0\u00a0\u00a0\u00a0\u00a0\/\/OTH:\u00a0One\u00a0Time\u00a0H-Resolution\u00a0Mode\r\n\u00a0\u00a0OTH_2\u00a0=\u00a00b00100001,\u00a0\u00a0\u00a0\/\/OTH_2:\u00a0One\u00a0Time\u00a0H-Resolution\u00a0Mode2\r\n\u00a0\u00a0OTL\u00a0=\u00a00b00100011\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/OTL:\u00a0One\u00a0Time\u00a0L-Resolution\u00a0Mode\r\n}\u00a0mode;\r\n\r\nfloat\u00a0measuringTimeFactor;\r\n\r\nvoid\u00a0setup(){\r\n\u00a0\u00a0Serial.begin(9600);\r\n\u00a0\u00a0Wire.begin();\r\n\u00a0\u00a0mode\u00a0=\u00a0CHM;\r\n\u00a0\u00a0measuringTimeFactor\u00a0=\u00a01;\r\n\u00a0\u00a0setMode();\r\n\u00a0\u00a0setMeasuringTime();\u00a0\r\n\u00a0\u00a0delay(200);\r\n}\r\n\r\nvoid\u00a0loop(){\u00a0\r\n\u00a0\u00a0getLux();\r\n\u00a0\u00a0delay(1000);\r\n}\r\n\r\nvoid\u00a0getLux(){\r\n\u00a0\u00a0uint16_t\u00a0rawLux;\r\n\u00a0\u00a0float\u00a0lux;\r\n\u00a0\u00a0rawLux\u00a0=\u00a0readBH1750();\r\n\u00a0\u00a0if((mode==CHM_2)||(mode==OTH_2)){\r\n\u00a0\u00a0\u00a0\u00a0lux\u00a0=\u00a0(rawLux\/2.4)\/measuringTimeFactor;\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0}\r\n\u00a0\u00a0else{\r\n\u00a0\u00a0\u00a0\u00a0lux\u00a0=\u00a0(rawLux\/1.2)\/measuringTimeFactor;\r\n\u00a0\u00a0}\r\n\u00a0\u00a0Serial.print(F(\"Lichtst\u00e4rke:\u00a0\"));\r\n\u00a0\u00a0Serial.print(lux);\r\n\u00a0\u00a0Serial.println(F(\"\u00a0Lux\"));\r\n}\r\n\r\nvoid\u00a0powerDown(){\r\n\u00a0\u00a0writeBH1750(POWER_DOWN);\r\n}\r\n\r\nvoid\u00a0powerOn(){\r\n\u00a0\u00a0writeBH1750(POWER_ON);\r\n\u00a0\u00a0setMode();\r\n}\r\n\r\nvoid\u00a0dataRegReset(){\r\n\u00a0\u00a0writeBH1750(DATA_REG_RESET);\r\n}\r\n\r\nvoid\u00a0setMode(){\r\n\u00a0\u00a0writeBH1750(mode);\r\n}\r\n\r\nvoid\u00a0setMeasuringTime(){\r\n\u00a0\u00a0byte\u00a0mt\u00a0=\u00a0round(measuringTimeFactor*69);\r\n\u00a0\u00a0byte\u00a0highByteMT\u00a0=\u00a0((mt&gt;&gt;5)\u00a0|\u00a00b01000000);\r\n\u00a0\u00a0byte\u00a0lowByteMT\u00a0=\u00a0(mt\u00a0&amp;\u00a00b01111111);\r\n\u00a0\u00a0lowByteMT\u00a0|=\u00a00b01100000;\r\n\u00a0\u00a0writeBH1750(highByteMT);\r\n\u00a0\u00a0writeBH1750(lowByteMT);\r\n}\r\n\r\nuint16_t\u00a0readBH1750(){\r\n\u00a0\u00a0uint8_t\u00a0MSbyte,\u00a0LSbyte;\r\n\u00a0\u00a0Wire.requestFrom(BH_1750,\u00a02);\r\n\u00a0\u00a0if(Wire.available()){\r\n\u00a0\u00a0\u00a0\u00a0MSbyte=Wire.read();\r\n\u00a0\u00a0\u00a0\u00a0LSbyte=Wire.read();\u00a0\r\n\u00a0\u00a0}\r\n\u00a0\u00a0return\u00a0((MSbyte&lt;&lt;8)\u00a0+\u00a0LSbyte);\r\n}\r\n\r\nvoid\u00a0writeBH1750(byte\u00a0val){\r\n\u00a0\u00a0Wire.beginTransmission(BH_1750);\r\n\u00a0\u00a0Wire.write(val);\r\n\u00a0\u00a0Wire.endTransmission();\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\r\n<\/div>\n\n<h3 class=\"wp-block-heading\">Wiring <\/h3>\n\n<p>For completeness, here is the circuit, even if it is anything but complex. It should be noted that I did not use pull-up resistors for the SDA \/ SCL lines. It also works without. If you get problems, add them.&nbsp;<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750FVI_Wiring.png\"><img loading=\"lazy\" decoding=\"async\" width=\"930\" height=\"630\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750FVI_Wiring.png\" alt=\"Circuit: the BH1750FVI connected to the Arduino\" class=\"wp-image-3404\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750FVI_Wiring.png 930w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750FVI_Wiring-300x203.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/BH1750FVI_Wiring-768x520.png 768w\" sizes=\"auto, (max-width: 930px) 100vw, 930px\" \/><\/a><figcaption class=\"wp-element-caption\">The BH1750FVI connected to the Arduino<\/figcaption><\/figure>\n\n<h2 class=\"wp-block-heading\">BH1750FVI Library<\/h2>\n\n<p>Since, as already mentioned, I did not find a library where the setting of the measurement time was implemented to my satisfaction, I wrote my own. It&#8217;s called BH1750_WE and you&#8217;ll find it <a href=\"https:\/\/github.com\/wollewald\/BH1750_WE\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> on Github. If you want to work with it, download it as a zip file and unpack it in the Arduino\/libraries folder. The following example sketch can be found in the example folder. (<em>New: you can now also install the library directly via the library manager in the Arduino IDE<\/em>).&nbsp;<\/p>\r\n\n<div class=\"scroll-paragraph-long\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-group=\"BH1750_WE_example_sketch.ino\" data-enlighter-title=\"BH1750_WE_example_sketch.ino\">\/***************************************************************************\r\n* Example sketch for the BH1750_WE library\r\n* \r\n* Mode selection \/ abbreviations:\r\n* CHM:    Continuously H-Resolution Mode\r\n* CHM_2:  Continuously H-Resolution Mode2\r\n* CLM:    Continuously L-Resolution Mode\r\n* OTH:    One Time H-Resolution Mode\r\n* OTH_2:  One Time H-Resolution Mode2\r\n* OTL:    One Time L-Resolution Mode\r\n* \r\n* Measuring time factor:\r\n* 1.0 ==&gt; Mresuring Time Register = 69\r\n* 0.45 ==&gt; Measuring Time Register = 31\r\n* 3.68 ==&gt; Mesuring Time Register = 254\r\n* \r\n* Other implemented functions, not used in the example:\r\n* resetDataReg() --&gt; rests Data Register\r\n* powerOn() --&gt; Wake Up!\r\n* powerDown() --&gt; Sleep well, my BH1750\r\n* \r\n* If you change the measuring time factor for calibration purpose, \r\n* then you need to devide the light intensity by the measuring time factor \r\n* \r\n* Further information can be found on:\r\n* https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor\r\n* or in German:\r\n* https:\/\/wolles-elektronikkiste.de\/bh1750fvi-lichtsensormodul\r\n***************************************************************************\/\r\n\r\n#include &lt;Wire.h&gt;\r\n#include &lt;BH1750_WE.h&gt;\r\n#define BH1750_ADDRESS 0x23\r\n\r\nBH1750_WE myBH1750(BH1750_ADDRESS); \r\n\/\/ You may also pass a TwoWire object like wire2 \r\n\/\/ BH1750_WE myBH1750(&amp;wire2, BH1750_ADDRESS);\r\n\r\nvoid setup(){\r\n  Serial.begin(9600);\r\n  Wire.begin();\r\n  myBH1750.init(); \/\/ sets default values: mode = CHM, measuring time factor = 1.0\r\n  \/\/ myBH1750.setMode(CLM);  \/\/ uncomment if you want to change default values\r\n  \/\/ myBH1750.setMeasuringTimeFactor(0.45); \/\/ uncomment for selection of value between 0.45 and 3.68\r\n}\r\n\r\nvoid loop(){ \r\n  float lightIntensity = myBH1750.getLux();\r\n  Serial.print(F(\"Lichtst\u00e4rke: \"));\r\n  Serial.print(lightIntensity);\r\n  Serial.println(F(\" Lux\"));\r\n  delay(1000);\r\n}<\/pre>\r\n<p>\u00a0<\/p>\r\n<\/div>\n\n<h3 class=\"wp-block-heading\">Measurements in One Time Modes<\/h3>\n\n<p>For measurements in one time modes, please note that <code>setMode()<\/code> starts the measurement. You have to wait until the measurement is complete, and then you can read out the new measured value. According to the data sheet, a measurement in OTH modes takes approx. 120 milliseconds, in OTL mode it takes 16 milliseconds.<\/p>\r\n\n<div class=\"scroll-paragraph\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-group=\"BH1750_WE_one_time_measurement.ino\" data-enlighter-title=\"BH1750_WE_one_time_measurement.ino\">#include &lt;Wire.h&gt;\r\n#include &lt;BH1750_WE.h&gt;\r\n#define BH1750_ADDRESS 0x23\r\n\r\nBH1750_WE myBH1750 = BH1750_WE(BH1750_ADDRESS); \r\n\/\/ You may also pass a TwoWire object: \r\n\/\/BH1750_WE myBH1750 = BH1750_WE(&amp;Wire, BH1750_ADDRESS);\r\n\/\/ If you don't pass any parameter, Wire and 0x23 will be applied\r\n\r\nvoid setup(){\r\n  Serial.begin(9600);\r\n  Wire.begin();\r\n  if(!myBH1750.init()){ \/\/ sets default values: mode = CHM, measuring time factor = 1.0\r\n    Serial.println(\"Connection to the BH1750 failed\");\r\n    Serial.println(\"Check wiring and I2C address\");\r\n    while(1){}\r\n  }\r\n  else{\r\n    Serial.println(\"BH1750 is connected\");\r\n  }\r\n  \/\/ myBH1750.setMeasuringTimeFactor(0.45); \/\/ uncomment for selection of value between 0.45 and 3.68\r\n}\r\n\r\nvoid loop(){ \r\n  myBH1750.setMode(OTH); \/\/ sets mode and starts measurement\r\n  \/* An OTH and OTH_2 measurement takes ~120 ms. I suggest to wait \r\n     140 ms to be on the safe side. \r\n     An OTL measurement takes about 16 ms. I suggest to wait 20 ms\r\n     to be on the safe side. *\/\r\n  delay(140); \/\/ wait for measurement to be completed.\r\n  float lightIntensity = myBH1750.getLux();\r\n  Serial.print(F(\"Light intensity: \"));\r\n  Serial.print(lightIntensity);\r\n  Serial.println(F(\" Lux\"));\r\n  delay(1000);\r\n}<\/pre>\r\n<p>\u00a0<\/p>\r\n<\/div>\r\n\n<h2 class=\"wp-block-heading\">Acknowledgement<\/h2>\n\n<p>The background for the post image is by <a href=\"https:\/\/pixabay.com\/de\/users\/AnnaKovalchuk-5692419\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2597242\" target=\"_blank\" rel=\"noopener noreferrer\">Hanna Kovalchuk<\/a> on <a href=\"https:\/\/pixabay.com\/de\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2597242\" target=\"_blank\" rel=\"noopener noreferrer\">Pixabay<\/a>.<\/p>\r\n<p>I took the BH1750FVI as Fritzing component from <a href=\"https:\/\/github.com\/vdemay\/fritzing-parts\/blob\/master\/parts\/BH1750.fzpz\" target=\"_blank\" rel=\"noopener noreferrer\">vdemay on Github.<\/a><\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>I explain the control of BH1750FVI modules in detail. I also present a library that includes the measurement time setting.<\/p>\n","protected":false},"author":1,"featured_media":8193,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[573,572],"tags":[877,878,883,884,875,876,879,880,882,881],"class_list":["post-9452","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-distance-light-movement","category-sensors","tag-bh1750-en","tag-bh1750fvi-en","tag-gy-30-en","tag-gy-302-en","tag-light-sensor","tag-light-sensor-module","tag-measurement-time-register-en","tag-resolution-en","tag-resolution-en-2","tag-resolution-mode-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>BH1750FVI (GY-30, 302) ambient light sensor &#8226; Wolles Elektronikkiste<\/title>\n<meta name=\"description\" content=\"I explain the control of BH1750FVI modules in detail. I also present a library that implemented the measurement time setting.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"BH1750FVI (GY-30, 302) ambient light sensor &#8226; Wolles Elektronikkiste\" \/>\n<meta property=\"og:description\" content=\"I explain the control of BH1750FVI modules in detail. I also present a library that implemented the measurement time setting.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor\" \/>\n<meta property=\"og:site_name\" content=\"Wolles Elektronikkiste\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-10T16:51:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-26T13:00:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Beitragsbild.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Wolfgang Ewald\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wolfgang Ewald\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor\"},\"author\":{\"name\":\"Wolfgang Ewald\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"headline\":\"BH1750FVI (GY-30, 302) ambient light sensor\",\"datePublished\":\"2020-11-10T16:51:32+00:00\",\"dateModified\":\"2024-05-26T13:00:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor\"},\"wordCount\":1597,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"image\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/Beitragsbild.jpg\",\"keywords\":[\"BH1750\",\"BH1750FVI\",\"GY-30\",\"GY-302\",\"light sensor\",\"light sensor module\",\"measurement time register\",\"Resolution\",\"resolution\",\"resolution mode\"],\"articleSection\":[\"Distance, light, movement\",\"Sensors\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor\",\"name\":\"BH1750FVI (GY-30, 302) ambient light sensor &#8226; Wolles Elektronikkiste\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/Beitragsbild.jpg\",\"datePublished\":\"2020-11-10T16:51:32+00:00\",\"dateModified\":\"2024-05-26T13:00:08+00:00\",\"description\":\"I explain the control of BH1750FVI modules in detail. I also present a library that implemented the measurement time setting.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor#primaryimage\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/Beitragsbild.jpg\",\"contentUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/Beitragsbild.jpg\",\"width\":1200,\"height\":1200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/bh1750fvi-gy-30-302-ambient-light-sensor#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"BH1750FVI (GY-30, 302) ambient light sensor\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#website\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\",\"name\":\"Wolles Elektronikkiste\",\"description\":\"Die wunderbare Welt der Elektronik\",\"publisher\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\",\"name\":\"Wolfgang Ewald\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"contentUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"width\":512,\"height\":512,\"caption\":\"Wolfgang Ewald\"},\"logo\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"BH1750FVI (GY-30, 302) ambient light sensor &#8226; Wolles Elektronikkiste","description":"I explain the control of BH1750FVI modules in detail. I also present a library that implemented the measurement time setting.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor","og_locale":"en_US","og_type":"article","og_title":"BH1750FVI (GY-30, 302) ambient light sensor &#8226; Wolles Elektronikkiste","og_description":"I explain the control of BH1750FVI modules in detail. I also present a library that implemented the measurement time setting.","og_url":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor","og_site_name":"Wolles Elektronikkiste","article_published_time":"2020-11-10T16:51:32+00:00","article_modified_time":"2024-05-26T13:00:08+00:00","og_image":[{"width":1200,"height":1200,"url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Beitragsbild.jpg","type":"image\/jpeg"}],"author":"Wolfgang Ewald","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Wolfgang Ewald","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor#article","isPartOf":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor"},"author":{"name":"Wolfgang Ewald","@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"headline":"BH1750FVI (GY-30, 302) ambient light sensor","datePublished":"2020-11-10T16:51:32+00:00","dateModified":"2024-05-26T13:00:08+00:00","mainEntityOfPage":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor"},"wordCount":1597,"commentCount":5,"publisher":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"image":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor#primaryimage"},"thumbnailUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Beitragsbild.jpg","keywords":["BH1750","BH1750FVI","GY-30","GY-302","light sensor","light sensor module","measurement time register","Resolution","resolution","resolution mode"],"articleSection":["Distance, light, movement","Sensors"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor","url":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor","name":"BH1750FVI (GY-30, 302) ambient light sensor &#8226; Wolles Elektronikkiste","isPartOf":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#website"},"primaryImageOfPage":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor#primaryimage"},"image":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor#primaryimage"},"thumbnailUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Beitragsbild.jpg","datePublished":"2020-11-10T16:51:32+00:00","dateModified":"2024-05-26T13:00:08+00:00","description":"I explain the control of BH1750FVI modules in detail. I also present a library that implemented the measurement time setting.","breadcrumb":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor#primaryimage","url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Beitragsbild.jpg","contentUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/09\/Beitragsbild.jpg","width":1200,"height":1200},{"@type":"BreadcrumbList","@id":"https:\/\/wolles-elektronikkiste.de\/en\/bh1750fvi-gy-30-302-ambient-light-sensor#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/wolles-elektronikkiste.de\/en"},{"@type":"ListItem","position":2,"name":"BH1750FVI (GY-30, 302) ambient light sensor"}]},{"@type":"WebSite","@id":"https:\/\/wolles-elektronikkiste.de\/en#website","url":"https:\/\/wolles-elektronikkiste.de\/en","name":"Wolles Elektronikkiste","description":"Die wunderbare Welt der Elektronik","publisher":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wolles-elektronikkiste.de\/en?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46","name":"Wolfgang Ewald","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","contentUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","width":512,"height":512,"caption":"Wolfgang Ewald"},"logo":{"@id":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png"}}]}},"_links":{"self":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts\/9452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/comments?post=9452"}],"version-history":[{"count":0,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts\/9452\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/media\/8193"}],"wp:attachment":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/media?parent=9452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/categories?post=9452"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/tags?post=9452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}