{"id":4782,"date":"2018-06-26T22:26:09","date_gmt":"2018-06-26T22:26:09","guid":{"rendered":"http:\/\/fambach.net\/?p=1052"},"modified":"2023-10-14T06:47:36","modified_gmt":"2023-10-14T06:47:36","slug":"ssd1306-monochrom-oled-128x64-i2c-2-2","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c-2-2\/","title":{"rendered":"ESP8266 SSD1306 Monochromatic OLED 128\u00d764 I2C"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Contents\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c-2-2\/#Versuchsaufbau\" >Experimental setup<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c-2-2\/#Bibliothek\" >Library<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c-2-2\/#Programmierung\" >Programming<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c-2-2\/#Beispielprogram\" >Example programme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c-2-2\/#Die_Genaue_Uhr\" >The Exact Clock<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c-2-2\/#Verwandte_Beitrage\" >Verwandte Beitr&auml;ge<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c-2-2\/#Quellen\" >Sources<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">Ich habe mir zwei fast baugleiche 128&#215;64 Displays gekauft um diese zu testen. Diese werden &uuml;ber den Wire (I2C) Bus angesteuert. Es gibt aber auch Varianten f&uuml;r den SPI Bus, die hier aber nicht behandelt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die beiden Displays haben auf den ersten Blick nur zwei offensichtliche Unterschiede. Erstens sie haben unterschiedlich gro&szlig;e Bohrl&ouml;cher und zweitens bei ihnen ist VCC und GND vertauscht. Also aufpassen beim anschliessen eines &auml;hnlichen displays, sonst raucht&#8217;s.<br>\nAls ich sie das erstes Mal leuchteten sah, fiel mir noch auf, dass das eine Display blaue Schrift hat und das andere wei&szlig;e. Wenn man den schnellen Ali fragt, findet man noch weitere Variationen.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Versuchsaufbau\"><\/span>Experimental setup<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">First, I've set up a test rig with a NodeMCU V3. I'm getting the power supply from the Node. I've connected the communication to pins D5 and D6. The circuit looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SD1306OledDisplay128x64WithoutReset_Versuchsaufbau.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"591\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SD1306OledDisplay128x64WithoutReset_Versuchsaufbau.jpg\" alt=\"\" class=\"wp-image-1057\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2018\/06\/SD1306OledDisplay128x64WithoutReset_Versuchsaufbau.jpg 600w, https:\/\/www.fambach.net\/wp-content\/uploads\/2018\/06\/SD1306OledDisplay128x64WithoutReset_Versuchsaufbau-300x296.jpg 300w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bibliothek\"><\/span>Library<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Da ich andere Pins f&uuml;r den Wirebus verwende als die standard Arduino und ich feststellen musste, dass in der entsprechenden <a href=\"https:\/\/github.com\/adafruit\/Adafruit_SSD1306\/blob\/master\/Adafruit_SSD1306.cpp\">Adaruit Library<\/a> zum einen der Wirebus hardcodiert ist und zum anderen diese f&uuml;r Displays mit Resetanschluss gedacht ist. Habe ich mich, ohne weiter zu forschen f&uuml;r die <a href=\"https:\/\/github.com\/ThingPulse\/esp8266-oled-ssd1306\">ThingPulse Library<\/a> entschieden. Diese kann entweder &uuml;ber GIT herunter geladen werden oder &uuml;ber den LibraryManager in der Arduino Gui installiert werden.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/02\/dht11bug1-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"541\" height=\"220\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/02\/dht11bug1-1.png\" alt=\"\" class=\"wp-image-350\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2018\/02\/dht11bug1-1.png 541w, https:\/\/www.fambach.net\/wp-content\/uploads\/2018\/02\/dht11bug1-1-300x122.png 300w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nach SSD suchen und die von Daniel Eichorn ausw&auml;hlen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SSD1306OledDisplayLibman2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"440\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SSD1306OledDisplayLibman2.png\" alt=\"\" class=\"wp-image-1058\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2018\/06\/SSD1306OledDisplayLibman2.png 784w, https:\/\/www.fambach.net\/wp-content\/uploads\/2018\/06\/SSD1306OledDisplayLibman2-300x168.png 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2018\/06\/SSD1306OledDisplayLibman2-768x431.png 768w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\" \/><\/a><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Programmierung\"><\/span>Programming<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Beispielprogram\"><\/span>Example programme<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As a test program, I'm using the clock from the examples.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SSD1306OledDisplaySelExamlpe.png\"><img loading=\"lazy\" decoding=\"async\" width=\"669\" height=\"443\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SSD1306OledDisplaySelExamlpe.png\" alt=\"\" class=\"wp-image-1059\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2018\/06\/SSD1306OledDisplaySelExamlpe.png 669w, https:\/\/www.fambach.net\/wp-content\/uploads\/2018\/06\/SSD1306OledDisplaySelExamlpe-300x199.png 300w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The correct pins have been entered, here is the code:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/ESP8266_SSD1306ClockDemo.zip\">ESP8266_SSD1306ClockDemo<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compiled and programmed the ESP and this is what it looked like.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SD1306OledDisplay128x64WithoutReset_Analoganzeiger.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SD1306OledDisplay128x64WithoutReset_Analoganzeiger-150x150.jpg\" alt=\"\" class=\"wp-image-1053\"><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SD1306OledDisplay128x64WithoutReset_Digitalanzeige.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/SD1306OledDisplay128x64WithoutReset_Digitalanzeige-150x150.jpg\" alt=\"\" class=\"wp-image-1054\"><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Die_Genaue_Uhr\"><\/span>The Exact Clock<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To ensure the clock is also accurate, I quickly integrated the NTP server query.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/fambach.net\/wp-content\/uploads\/2018\/06\/ESP8266_SSD1306ClockDemoNTP.zip\">ESP8266_SSD1306ClockDemoNTP<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ein Bild er&uuml;brigt sich, da sich hieran nichts ge&auml;ndert hat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nachtrag 27.06.2018: Ich habe einige fertige NTP Clients gefunden, ihre Verwendung ist wahrscheinlich leichter als als meine kleinst Entwicklung aus zusammen gest&uuml;ckelten Quellen.<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/aharshac\/EasyNTPClient\n<\/figure>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/gmag11\/NtpClient\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Verwandte_Beitrage\"><\/span>Verwandte Beitr&auml;ge<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<div class=\"display-posts-listing\">\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp-web-serial-bibliothek\/\">ESP WEB Serial Library<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp01-relay-platinen-2\/\">ESP01 \u2013 DHT11 Temperature and Humidity Sensor Boards<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/customkeyboard\/\">CustomKeyboard Library<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp8266-32-wifi-manager\/\">ESP8266\/32 WiFi Manager.<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/\">ESP01 \u2013 Relay Board<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/neo-6m-gps-logger-shield-v1-0\/\">NEO-6M GPS Logger Shield V1.0<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/zumo-v1-2\/\">Zumo V1.2<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp8266-rtos-sdk\/\">ESP8266 RTOS SDK<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/\">Espressif IDF \u2013 GPIOs<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/\">Espressif IDF \u2013 Tasks<\/a><\/div>\n<\/div>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Quellen\"><\/span>Sources<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/aharshac\/EasyNTPClient\n<\/figure>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/gmag11\/NtpClient\n<\/figure>","protected":false},"excerpt":{"rendered":"<p>Ich habe mir zwei fast baugleiche 128&#215;64 Displays gekauft um diese zu testen. Diese werden &uuml;ber den Wire (I2C) Bus angesteuert. Es gibt aber auch Varianten f&uuml;r den SPI Bus, die hier aber nicht behandelt werden. Die beiden Displays haben auf den ersten Blick nur zwei offensichtliche Unterschiede. Erstens sie haben unterschiedlich gro&szlig;e Bohrl&ouml;cher und &#8230;<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/ssd1306-monochrom-oled-128x64-i2c-2-2\/\" class=\"read-more-link\">Carry on reading <span class=\"screen-reader-text\">\"ESP8266 SSD1306 Monochrom OLED 128&#215;64 I2C\"<\/span> <span class=\"meta-nav\">\u2192<\/span><\/a>","protected":false},"author":1,"featured_media":1053,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[214,189,190,193,200],"tags":[138],"class_list":["post-4782","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-displays","category-esp-projekte","category-esp8266","category-indikatoren","category-node-mcu","tag-display","penguin-post","penguin-post-not-sticky"],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/4782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/comments?post=4782"}],"version-history":[{"count":2,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/4782\/revisions"}],"predecessor-version":[{"id":9753,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/4782\/revisions\/9753"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media\/1053"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=4782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=4782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=4782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}