ESP8266 airkiss Arduino IED配网 源码



     改写光合未来N1模块过程中网上找的N多Airkiss 配网程序,遇到各种坑,现把可以正常使用的代码分享出来。目前实现功能 

       1.使用乐鑫官方公众号AIRKISS或第三方网页AIRKISS配网(有时会不稳定) 

       2.使用乐鑫ESPTOUCH软件配网(成功率很高,推荐) 

       3.自动保存已配网AP信息,开机自动连接,超过20次连接失败则自动进入配网模式 

       4.单LED指示灯指示网络状态,慢闪:WIFI连接中 快闪:配网模式 10秒闪0.1秒:待机指示 


代码如下:


#include <ESP8266WiFi.h>
#include <Ticker.h> Ticker flipper;//定义定时器


#define PIN_LED 12           //指示灯位于GPIO12

int wifi_flg = 0;//WIFI状态标志   0 未连接 1 连接中  2 配网中  3 MQTT已连接

bool autoConfig()
{
  WiFi.begin();
  for (int i = 0; i < 20; i++)
  {
    int wstatus = WiFi.status();
    if (wstatus == WL_CONNECTED)
    {
      Serial.println("AutoConfig Success");
      Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
      Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
      WiFi.printDiag(Serial);
      
        //每隔5s 翻转一下led状态,开始连网模式,慢闪
        //   flipper.attach(5, flip2); 
      flipper.detach();//定时器停止
      digitalWrite(PIN_LED,LOW);//初始LED灯置为低电平,HIGH表示点亮,LOW表示点不亮
      return true;
      //break;
    }
    else
    {
      Serial.print("AutoConfig Waiting......");
      
    // Serial.printf("PSW:%s\r\n", i);
      Serial.println(wstatus);
      delay(1000);
    }
  }
  Serial.println("AutoConfig Faild!" );
  return false;
  //WiFi.printDiag(Serial);
}


void smartConfig()
{
  WiFi.mode(WIFI_STA);
  Serial.println("\r\nWait for Smartconfig");
  WiFi.beginSmartConfig();
  while (1)
  {
    Serial.print(".");
    if (WiFi.smartConfigDone())
    {
      Serial.println("SmartConfig Success");
      Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
      Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
      WiFi.setAutoConnect(true);  // 设置自动连接

       //每隔0.5s 翻转一下led状态,开始连网模式,慢闪
           flipper.attach(0.5, flip); 
      break;
    }
    delay(1000); // 这个地方一定要加延时,否则极易崩溃重启
  }
}

void setup()
{
  pinMode(PIN_LED, OUTPUT); //初始化PIN_LED引脚模式为输出
  digitalWrite(PIN_LED,HIGH);//初始LED灯置为低电平,HIGH表示点亮,LOW表示点不亮  
  Serial.begin(115200);

  //每隔0.5s 翻转一下led状态,开始连网模式,慢闪
           flipper.attach(0.5, flip); 

  

  if (!autoConfig())
  {
    Serial.println("Start module");

 
  //每隔0.1s 翻转一下led状态,开始连网模式,慢闪
           flipper.attach(0.1, flip); 
    
    smartConfig();
  
}

  //连接成功,打印WIFI信息
  Serial.println("");
  Serial.println("WIFI SmartConfig Success");
  Serial.printf("SSID:%s", WiFi.SSID().c_str());
  Serial.printf(", PSW:%s\r\n", WiFi.psk().c_str());
  Serial.print("LocalIP:");
  Serial.print(WiFi.localIP());
  Serial.print(" ,GateIP:");
  Serial.println(WiFi.gatewayIP());
}

void flip() {
  //定时器函数 灯亮灭 一半时间
  
  
  int state = digitalRead(PIN_LED);  // get the current state of GPIO1 pin
  digitalWrite(PIN_LED, !state);     // set pin to the opposite state

}




void led_ms(int i) {
  //LED亮i MS
  
    digitalWrite(PIN_LED,HIGH);//初始LED灯置为低电平,HIGH表示点亮,LOW表示点不亮  
    delay(i);
    digitalWrite(PIN_LED,LOW);//初始LED灯置为低电平,HIGH表示点亮,LOW表示点不亮  

}



void loop() {

    
    Serial.println(WiFi.SSID());
    Serial.println(WiFi.localIP());
    
    delay(10000);// 延时10秒
    led_ms(100);//亮灯100MS,做在线指示
  
  }


分享2种 自制 光和未来N1 ESP8266 DHT11 简易烧录线

老王处入手的光合未来N1 ESP8266+DHT11 模块,自制简易烧录线,实现无损烧写程序


一、OTG 简易烧录线

     

     USB OTG 转接头


转接线连接OTG转接头和CH340 模块


OTG直接连接光合未来N1


二.麦克USB公头简易烧写线



 


 








手机归属地查询不好用,要收费,一气之下自己整个查询API

之前写的E程序,需要查询手机归属地,一直调用的百度API查询归属地,突然不能使用,淘宝的API又只能查询到省。网上找了几个免费查询API,有每天100次的,有每天500次的,注册并实名了一家,使用20来次就提示超限。想采集某38网页数据,发现需要验证COOKICE。最后无奈,搜索了个PHP查询代码稍加更改,架设到自己服务器上使用。唯一缺点数据库必须自己更新。数据库据说是到2020年3月。


gao_mobile.php 是JSON输出

gao_mobile2.php 是JSON输出 


http://www.zhigao5191.com/admin/media.php?cid=599

JSON输出效果



phone.zip (包含数据库及程序)

充电LED灯【3D打印】

N久前买的几块锂电,拆了做个充电灯

拆开前的电池

拆出来的电池

几毛钱买的触摸PCB

同样几毛钱的充放电管理PCB,直接触摸控板控制充电板MOS

R99充电器转换夹【3D打印】

年前买的R99充电器,只能接5# 7# 18650等圆柱形电池,无法对聚合物等方形电池充电,遂DIY 转换夹,可以对任意电池充电

闲置的连接线,纯铜,1.5线径

拆除连接线,对接头改造

接头特写

设计的3D图纸

打印好的转接座

特写下

立起来再来一张

侧面,光整度还行

接头直接卡入,尺寸刚刚好

换个角度

放入充电器,尺寸OK

最后来张特写