<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qxdo的博客]]></title><description><![CDATA[存储日常学习中的代码,博文]]></description><link>https://blog.youkuaiyun.com/qxdon_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qxdon_]]></copyright><item><title><![CDATA[ESP8266驱动SG90舵机控制开关灯（灯的开关）的折腾记录]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/119087695</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/119087695</guid><author>qxdon_</author><pubDate>Sun, 25 Jul 2021 21:30:33 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/qq_47749454/article/details/117638828
想法来源地址在上面，可以去参考一下，建议是结合两篇文章一块看，按照大佬的先来折腾一次，有问题了在看我这个，会比较齐全。
具体的折腾细节方面可以去上面的博主页面去参考，这里想聊一些那个博主没涉及到的。
1.买的型号，SG90舵机，淘宝应该很多，和ESP8266的连线也是ok的，没有困难，连完线难题就开始了，首先舵机驱动并没有搞过，其次ESP8266也忘记的差不多了，然后，这个程序实际上还有另]]></description><category></category></item><item><title><![CDATA[智能家居入坑记录]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/119087382</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/119087382</guid><author>qxdon_</author><pubDate>Sun, 25 Jul 2021 21:00:49 +0800</pubDate><description><![CDATA[在网上看到别人都在用智能家居，朋友也给我了好些开发工具和电子元件让我玩，所以就想搞个智能家居系统，目标也很简单，在成本尽量控制的前提下完成一些场景的智能化，同时也尽量不去改造房子原有的器具，同时又要保证可以迁移走（租房住的，不太好搞换开关这些操作）。
对我这个阶段来说，智能家居最便携的入口自然是语音助手，所以就一顿查，查下来小米家的小爱音箱是还算比较好的，所以就买了Redmi 小爱音箱Play，还可以做蓝牙mesh网关。
同时也买了米家的空调伴侣2，可以用语音或手机控制空调，下班回家等电梯的时候开空调，也挺]]></description><category></category></item><item><title><![CDATA[使用点灯科技Blinker来控制灯的demo程序]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/119061136</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/119061136</guid><author>qxdon_</author><pubDate>Sat, 24 Jul 2021 17:10:14 +0800</pubDate><description><![CDATA[需要主意：
1.在Blinker App上必须要首次点击设备详情才有详情页面，否则是没有的，
#define BLINKER_WIFI
#define BLINKER_WITHOUT_SSL

#include &lt;Blinker.h&gt;

char auth[] = "e8e23f9485d8";
char ssid[] = "PDCN";
char pswd[] = "13037679105";

// 新建组件对象
BlinkerButton Button1("btn-abc");
Blink]]></description><category></category></item><item><title><![CDATA[HDU 2031进制转换]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/114418022</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/114418022</guid><author>qxdon_</author><pubDate>Fri, 05 Mar 2021 22:42:06 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;

int stack[100];
int top = -1;
void push(int n){
    stack[++top] = n;
}
int pop() {
    if(top &lt; -1) {
        return -1;
    }
    return stack[top--];
}


int main() {
    int n,r, tmp, flag = 0;
    while(scanf("%d %d", &amp]]></description><category></category></item><item><title><![CDATA[ESP8266获取开发板的信息]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111453147</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111453147</guid><author>qxdon_</author><pubDate>Sun, 20 Dec 2020 17:19:47 +0800</pubDate><description><![CDATA[#include&lt;FS.h&gt;
FSInfo fs_info;

void setup() {
  Serial.begin(9600);
  delay(1000);

  Serial.println("FPIFFS start ");
  SPIFFS.begin();

// 闪存文件系统信息
  SPIFFS.info(fs_info);
 
  // 可用空间总和（单位：字节）
  Serial.print("totalBytes: ");     
  Serial.print(fs]]></description><category></category></item><item><title><![CDATA[ESP8266删除文件]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111451952</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111451952</guid><author>qxdon_</author><pubDate>Sun, 20 Dec 2020 17:13:12 +0800</pubDate><description><![CDATA[#include&lt;FS.h&gt;

String file_name = "/data/qxdo1.txt";
String dir_name = "/data";
void setup() {
  Serial.begin(9600);
  delay(1000);
  if(SPIFFS.begin()) {
    Serial.println("SPIFFS started");
  } else {
    Serial.println("SPIFFS start failed");
  ]]></description><category></category></item><item><title><![CDATA[ESP8266列出文件目录]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111451271</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111451271</guid><author>qxdon_</author><pubDate>Sun, 20 Dec 2020 17:09:34 +0800</pubDate><description><![CDATA[#include&lt;FS.h&gt;

String file_name = "/data/qxdo1.txt";
String dir_name = "/data";
void setup() {
  Serial.begin(9600);
  delay(1000);
  if(SPIFFS.begin()) {
    Serial.println("SPIFFS started");
  } else {
    Serial.println("SPIFFS start failed");
  ]]></description><category></category></item><item><title><![CDATA[ESP8266文件追加]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111450026</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111450026</guid><author>qxdon_</author><pubDate>Sun, 20 Dec 2020 17:02:50 +0800</pubDate><description><![CDATA[#include&lt;FS.h&gt;

String file_name = "/data/qxdo.txt";
void setup() {
  Serial.begin(9600);
  delay(1000);
  if(SPIFFS.begin()) {
    Serial.println("SPIFFS started");
  } else {
    Serial.println("SPIFFS start failed");
  }

  if(SPIFFS.exists(file_n]]></description><category></category></item><item><title><![CDATA[ESP8266读取文件系统内容]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111449409</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111449409</guid><author>qxdon_</author><pubDate>Sun, 20 Dec 2020 16:59:34 +0800</pubDate><description><![CDATA[#include&lt;FS.h&gt;

String file_name = "/data/qxdo.txt";
void setup() {
  
  

  

  Serial.begin(9600);
  delay(1000);
  if(SPIFFS.begin()) {
    Serial.println("SPIFFS started");
  } else {
    Serial.println("SPIFFS start failed");
  }

  if(SPIFFS.ex]]></description><category></category></item><item><title><![CDATA[ESP8266 - 通过程序向ESP8266闪存文件系统写入信息]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111412913</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111412913</guid><author>qxdon_</author><pubDate>Sun, 20 Dec 2020 00:26:17 +0800</pubDate><description><![CDATA[#include&lt;FS.h&gt;

String file_name = "/data/qxdo.txt";
void setup() {
  // put your setup code here, to run once:
  

  

  Serial.begin(9600);
  delay(1000);

  Serial.println("SPIFFS format start");
  SPIFFS.format();
  Serial.println("SPIFFS format ]]></description><category></category></item><item><title><![CDATA[ESP8266开发-demo之- 将引脚状态显示在浏览器页面中]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111412529</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111412529</guid><author>qxdon_</author><pubDate>Sun, 20 Dec 2020 00:05:17 +0800</pubDate><description><![CDATA[#include &lt;ESP8266WiFi.h&gt;
#include &lt;ESP8266WebServer.h&gt;


#define buttonPin D3



const char *ssid = "PDCN";
const char *passwd = "1234567890";
bool  pinState;
ESP8266WebServer esp8266_server(80);





void setup() {
  // put your setup code her]]></description><category></category></item><item><title><![CDATA[ESP8266 物联网小demo之 - 使用物联网的力量来点灯]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111412390</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111412390</guid><author>qxdon_</author><pubDate>Sat, 19 Dec 2020 23:53:10 +0800</pubDate><description><![CDATA[#include &lt;ESP8266WiFi.h&gt;
#include &lt;ESP8266WebServer.h&gt;






const char *ssid = "PDCN";
const char *passwd = "1234567890";
ESP8266WebServer esp8266_server(80);




void setup() {
  // put your setup code here, to run once:

  Serial.begin(9600)]]></description><category></category></item><item><title><![CDATA[ESP8266 作为小型WebServer响应http请求]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111412241</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111412241</guid><author>qxdon_</author><pubDate>Sat, 19 Dec 2020 23:34:15 +0800</pubDate><description><![CDATA[#include &lt;ESP8266WiFi.h&gt;
#include &lt;ESP8266WebServer.h&gt;
const char *ssid = “PDCN”;
const char *passwd = “1234567890”;
ESP8266WebServer esp8266_server(80);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
//WiFi.softAP]]></description><category></category></item><item><title><![CDATA[ESP8266连接3已有WIFI]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111411982</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111411982</guid><author>qxdon_</author><pubDate>Sat, 19 Dec 2020 23:09:50 +0800</pubDate><description><![CDATA[#include &lt;ESP8266WiFi.h&gt;

const char *ssid = "WIFI-SSID";
const char *passwd = "1234567890";


void setup() {
  // put your setup code here, to run once:

  Serial.begin(9600);

  //WiFi.softAP(ssid, passwd);
  WiFi.begin(ssid, passwd);
  Serial.prin]]></description><category></category></item><item><title><![CDATA[ESP8266开发板-发射wifi信号]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/111411874</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/111411874</guid><author>qxdon_</author><pubDate>Sat, 19 Dec 2020 22:59:34 +0800</pubDate><description><![CDATA[ESP8266 开发板第一个wifi程序
#include &lt;ESP8266WiFi.h&gt;

const char *ssid = "st-wifi";
const char *passwd = "12345678";


void setup() {
  // put your setup code here, to run once:

  Serial.begin(9600);

  WiFi.softAP(ssid, passwd);
  
  delay(1000);

  Seria]]></description><category></category></item><item><title><![CDATA[PAT 1001 Basic Level]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/97565656</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/97565656</guid><author>qxdon_</author><pubDate>Sat, 27 Jul 2019 22:32:28 +0800</pubDate><description><![CDATA[第一题很easy啦，而且还是中文的。


#include &lt;stdio.h&gt;

int main() {
    int n=0,count = 0;
    scanf("%d",&amp;n);
    while(n!= 1){
        if(n % 2== 1){
            n=3*n+1;
        }
        n/=2;
      ...]]></description><category></category></item><item><title><![CDATA[HDU 2099]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/96896952</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/96896952</guid><author>qxdon_</author><pubDate>Mon, 22 Jul 2019 20:39:11 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
int main() {
    int a,b;
    while(scanf("%d%d",&amp;a,&amp;b)!=EOF){
        if(a==0 &amp;&amp; b == 0){
            return 0;
        }
        a*=100;
        int d = 0;
...]]></description><category></category></item><item><title><![CDATA[HDU 2097]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/96893576</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/96893576</guid><author>qxdon_</author><pubDate>Mon, 22 Jul 2019 20:08:55 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
int test(int x,int n){
    int tmp = 0;
    while(x != 0){
        tmp = tmp + (x%n);
        x= x/n;
    }
    return tmp;
}
int main() {
    //printf("%d\n",test(2992,12));...]]></description><category></category></item><item><title><![CDATA[HDU 2096]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/96892495</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/96892495</guid><author>qxdon_</author><pubDate>Mon, 22 Jul 2019 19:59:51 +0800</pubDate><description><![CDATA[这个题很神奇啊，第一次提交在test函数里写了一个若x大于等于100才做求余，而直接写求余就没问题。


#include &lt;stdio.h&gt;

int test(int x){
    return x%100;
}
int main() {
    int t;

    scanf("%d\n",&amp;t);

    for(int i=0;i&lt;t;i++){

  ...]]></description><category></category></item><item><title><![CDATA[HDU 2092]]></title><link>https://blog.youkuaiyun.com/qxdon_/article/details/96840230</link><guid>https://blog.youkuaiyun.com/qxdon_/article/details/96840230</guid><author>qxdon_</author><pubDate>Mon, 22 Jul 2019 11:30:46 +0800</pubDate><description><![CDATA[这个题本身想的方式很难受，但是后来想来想到了两个方程，联立，求判别式，并且判断判别式是否大于等于0，而且要根据最后的结果判定x的值是否是整数。

这是根的表达式，根据解题思路，首先判定判别式大于或等于0，然后分别求即可。另外还要注意一点，n和m有可能一个是0另外一个不是0，这个情况也要考虑到。比如0 -1也是成立的。


#include &lt;stdio.h&gt;
#include &lt;...]]></description><category></category></item></channel></rss>