ESP8266的OLED屏幕上显示一个QR码,扫码后显示您的Wi-Fi网络的SSID和密码

该代码示例展示了如何在AdafruitSSD1306OLED屏幕上生成并显示包含WiFi网络SSID和密码的QR码。程序包括了Wire库、AdafruitGFX库和SSD1306库的使用,以及qrcode库来编码WiFi数据。
摘要由CSDN通过智能技术生成
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <qrcode.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

const int qrSize = 5;
QRCode qrcode(qrSize, ECC_LOW);

void setup() {
  Wire.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextColor(WHITE);

  // Generate QR code for WiFi SSID and password
  String ssid = "MyWiFiNetwork";
  String password = "MyWiFiPassword";
  String qrData = "WIFI:T:WPA;S:" + ssid + ";P:" + password + ";;";
  qrcode.encode(qrData.c_str());
}

void loop() {
  // Clear the display buffer
  display.clearDisplay();

  // Draw QR code on the screen
  for (uint8_t y = 0; y < qrcode.size(); y++) {
    for (uint8_t x = 0; x < qrcode.size(); x++) {
      if (qrcode.getModule(x, y)) {
        display.drawPixel(x+27, y+18, WHITE);
      }
    }
  }

  // Update the display
  display.display();
}

我们使用两个嵌套的循环来遍历QR码数据,并在每个“模块”(黑色或白色)处绘制一个像素。最后,我们使用display.display()方法将显示缓冲区中的内容刷新到OLED屏幕上。请注意,由于QR码的尺寸较大,因此可能需要进行微调,以确保它适合您的OLED屏幕。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值