In the 1990s, the well-known designer Luigi Colani asked why computers always have to be square and angular. He was right, they don't have to be. Not even our small micro controllers. The proof is provided by the new circular AZ-Envy, a micro controller board with the ESP8266-12F and two built-in sensors for environmental data, i.e. Envy from Environment and not from envy.
The gas sensor MQ-2 immediately catches the eye because of its explosion protection cover made of a dense stainless steel mesh. On the left side there is the ESP8266-12F with WLAN antenna and the built-in LED. The second sensor, top left in the picture, is a temperature and humidity sensor called SHT30. Otherwise you can see the µUSB socket for the power supply, to the right of it the voltage regulator, a yellow pin header and two buttons named RESET and FLASH - all in all a nice "physical computing platform" that can be programmed with the Arduino IDE.
Of course, I want to try this micro controller board immediately and use the program Blink as usual. Since I have already used other ESP8266 micro controllers, I only need to select the board " Generic ESP8266 Module" in the Arduino IDE.
If you have not yet installed the ESP8266 family with the board administrator, you must enter the additional board administrator URL under "File/Preferences" in the Arduino-IDE:
Then open the management dialog under "Tools/Board/Board manager". Enter "ESP8266" in the search box and click on "Install" in the search result.
Then, under the Tools/Board tab, you will see ESP8266 and its various board designs. As I said: for the AZ-Envy, I immediately selected the top option "Generic 8266 Module".
What is noticeable about the image in the highlighted line? Correct: Despite the USB port for the power supply no port is shown at first. The AZ-Envy does not have a USB-Serial-interface due to lack of space. This is only needed for programming and - if desired - for data output in the serial monitor. I can use the FTDI, which I have used for the ESP8266-01 so far.
On closer inspection I see that the designations on the yellow connector strip match the pin designations of the FTDI. A technician told me that originally a female connector strip was planned here, into which the FTDI would be plugged directly. It’s a pity that this was not realized, so three jumper cables (female-female) for TX, RX and GND. The connectors DTR, CTS and VCC are not used. A special feature: Because the labelling was done in the same order as the FTDI, TX is connected to TX and RX to RX; not crosswise as usual with the UART interface. When the FTDI is connected to the computer, you will also get the port display (of the FTDI) under the Tools tab. Then you are ready to start.
With the first program blink I am interested in whether the AZ-Envy with its ESP8266-12F knows the name LED_BUILTIN; otherwise I would have to add the line "int LED_BUILTIN=2;" in the sketch, as with the ESP32. And how do I put the board into programming mode?
Only pressing the FLASH key while uploading was not successful. The trick is: The FLASH key must be pressed when the power supply is established. Therefore first press the RESET button, then the FLASH button, then release RESET and finally release FLASH. This must be done at the latest when the Arduino IDE shows the dots after compilation that the connection should be established.
After uploading I have to leave the programming mode, so press RESET shortly.
Everything works at first go. LED_BUILTIN is recognized and the built-in LED next to the WLAN antenna flashes every second.
Next, I try the sensor SHT30. I don't need to connect anything here, it is connected internally. From the internet I learned that the sensor is connected via the I2C interface and has the hex address 0x44 (or 0x45 if necessary). The relative humidity should be measured with an accuracy of ±3% and the temperature with an accuracy of ±0.3°C. As usual in the Arduino world, I use an existing program library to read out the sensor. Recommended for the AZ-Envy is the library SHT3x.
Since there are now problems with the library on the ESP8266 (which is used on the Envy), a change needs to be made to one of the source files.
Error message: error: ‘Wire1’ was not declared in this scope; did you mean ‘Wire’?
- After the library has been installed, locate your Libraries folder in Sketchbook (in the preferences you will see the path given).
- In the folder SHT3x-master open the file SHT3x.h and add in line 55 after the line
insert these lines:
#if defined (ESP8266)
#define Wire1 Wire
- and save the file.
So put AZ-Envy back into programming mode (RESET, +FLASH, -RESET, -FLASH) and load a sample program installed with the SHT3x library.
Again, everything works immediately. The temperature display is a little too high and therefore the value of the relative humidity a little too low. This is quickly explained: Despite the cut-out in the circuit board, the ESP8266, the voltage regulator and the (heated!) gas sensor MQ-2 are in close proximity. The AZ-Envy shares this fate with all micro controllers that have a temperature sensor directly on the board.
In this case you may have to compensate/calibrate, or you may be satisfied with the statement "much too cold" (danger of frost?) or "much too hot" (fire?, ventilation required?). I am planning a construction where I blow ambient air with a small PC fan towards SHT30 on the AZ-Envy and will report about it.
And finally, the gas sensor. The MQ-2 gas sensor is a metal oxide semiconductor (MOS), also known as a chemical resistor (chemistry actually without e at the end). MOS sensors measure the resistance change when gases are present. This type of sensor requires the gas to strike the sensor for a chemical reaction to occur, resulting in a change in resistance.
The actual sensor for detecting the gas is located under the explosion protection cover made of a dense stainless steel mesh, which also serves as protection against dirt particles or other disturbing factors. This resistance change, related to a defined resistance value, results in an analog value, and thus it is clear where this sensor is connected, at input A0. For the evaluation the MQ-2 library from labay11 is recommended, which determines the gas concentration in ppm with simplified functions. The secret behind this remains hidden as long as we do not study the program library in detail. But that would go beyond the scope of this first consideration of the AZ-Envy.
After the installation of this library there is also a code example after installation:
After uploading, the following picture appears in the Serial Monitor:
Using the unknown algorithms, values for LPG, CO and smoke are determined. The number outlier at the bottom of the picture was the reaction to my breathing after a nice glass of rosé wine, otherwise the values in our living room after airing. Here, too, I will do further research, because basically the sensor is said to be non-gas specific, but it is very well suited for the detection of LPG, i-butane, propane, methane, alcohol, hydrogen and smoke.
This was my first examination of the new AZ-Envy, which was designed by a young developer (name is on the back) and realized with the help of AZ-Delivery. All in all a successful combination of a WLAN-capable microcontroller and two very good sensors, and the whole thing very nicely placed on a round board with less than 5 cm diameter.
The links to the program code are linked to the respective image.
And here the article as download.
Hi This is what I have using the FTDI drivers and esp8266 package with arduino ide, drivers seems to be OK in windows 10 but arduino ide does not connect.
Serial port COM7
Traceback (most recent call last):
File “C:\Users\DELL\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4/tools/upload.py”, line 65, in
File “C:/Users/DELL/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool\esptool.py”, line 2890, in main
File “C:/Users/DELL/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool\esptool.py”, line 483, in connect
raise FatalError(‘Failed to connect to %s: %s’ % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
Thank you for your Blog, it looks and probably is an extremely good piece of kit and has the stamp of AZ quality.
To be bluntly truthful you are making a big thing out of it being circular in shape, which is not the most important criteria.
Everything at present as far as computer boards go is square and I can hear already people saying you can’t fit a round pin in a square hole and have it look professional (Metaphorically speaking).
The quality of an item, to me, is ranked at No. 1 with price at No.2, and No. 3 reliability that being in line I would maybe consider whether or not it is round or square.
If you are looking to have your products sticking out from all of the others on a board then, why not change the colour? You see blue you think Arduino and so on.
People will look at products and their quality and efficiency and will pay a little extra for them.
Excuse me for speaking bluntly but that is the way I am and I will not change but I have no wish to take anything away from your product as far as I am concerned you have the quality and reliability as no doubt the same in a round one, so why change it?
We just purchased a new washing machine and when it is working it has flashing lights, why? I find them annoying a light on is sufficient to see it is operating ok, but If I see another with a similar pattern of flashing lights I will know what brand it is without looking for the name.
Volvo cars started it off with having its side lights on when the ignition was switched on, now almost everyone drives with their sidelights on.
Make them round if you wish but I doubt they will be purchased on that fact, quality, price and reliability.