Editing
Wemos D1 Mini
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=Notes= Most sample sketches show D2 and D1 as the SDA and SCL pins, but some show D3 and D5. Both work. {{template:top}} ==DS18B20 temperature sensor== Reference: [http://www.esp8266learning.com/wemos-mini-ds18b20-temperature-sensor-example.php Wemos mini DS18B20 temperature sensor example.] <br> [[File:Wemos-mini-and-ds18b20.png|480px]]<br clear=all> <nowiki>#include <OneWire.h> // OneWire DS18S20, DS18B20, DS1822 Temperature Example OneWire ds(D4); // on pin D4 (a 4.7K resistor is necessary) // =============================== setup() =============================== void setup(void) { Serial.begin(115200); } // =============================== loop() =============================== void loop(void) { byte i; byte present = 0; byte type_s; byte data[12]; byte addr[8]; float celsius, fahrenheit; if ( !ds.search(addr)) { ds.reset_search(); delay(250); return; } if (OneWire::crc8(addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); return; } Serial.println(); // the first ROM byte indicates which chip switch (addr[0]) { case 0x10: type_s = 1; break; case 0x28: type_s = 0; break; case 0x22: type_s = 0; break; default: Serial.println("Device is not a DS18x20 family device."); return; } ds.reset(); ds.select(addr); ds.write(0x44, 1); // start conversion, with parasite power on at the end delay(1000); present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for ( i = 0; i < 9; i++) { data[i] = ds.read(); } // Convert the data to actual temperature int16_t raw = (data[1] << 8) | data[0]; if (type_s) { raw = raw << 3; // 9 bit resolution default if (data[7] == 0x10) { raw = (raw & 0xFFF0) + 12 - data[6]; } } else { byte cfg = (data[4] & 0x60); if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms } celsius = (float)raw / 16.0; fahrenheit = celsius * 1.8 + 32.0; Serial.print(" Temperature = "); Serial.print(celsius); Serial.print(" Celsius, "); Serial.print(fahrenheit); Serial.println(" Fahrenheit"); }</nowiki> {{template:top}} ==Make an XBM image file== First, make your image in Photoshop. To stay in the blue area of a 128x64 display, make the canvas no larger than 128x48.<br> Draw the monochrome image on the canvas then save it as a png file.<br> Next, go to [[https://www.online-utility.org/image/convert/to/XBM Online Image Converter]]<br> When you download the XBM file, edit it. * Change the first two lines to change the image number to the imageName.<br> * Change the third line to "const uint8_t imageName_bits[] PROGMEM = {"<br> * Save the file as imageName.h<br> <br> To display it on the OLED display, import the imagName.h file, then in loop(), add this code: display.drawXbm(x, y, imageName_width, imageName_height, imageName_bits); x,y are the top-left corner of the image. _width, _height and _bits are defined in the .h file. {{template:top}}
Summary:
Please note that all contributions to Notebook may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Notebook:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Home Page
C++ Reference
ESP Hardware
ESPHome
Home Assistant
Network Stuff
Tools
What links here
Related changes
Special pages
Page information