Giter Site home page Giter Site logo

lou-lan / smartconfig Goto Github PK

View Code? Open in Web Editor NEW
35.0 4.0 8.0 3.88 MB

SmartConfig ESP8266 with Swift language(Swift 语言编写的 Smart Config UDP 广播给 ESP WiFi 芯片入网程序)

License: MIT License

Swift 70.69% Objective-C 17.54% HTML 11.78%
swift swift3 smartconfig esptouch esp8266 esp32 airkiss

smartconfig's Introduction

SmartConfig

SmartConfig is an ESP board auto connect WiFi demo written in Swift.

Requirements

  • iOS 8.0+
  • Xcode 8.0+
  • Swift 3.0

Bridge ESPtouch lib

1.Xcode -> Create a new Xcode project -> Single View App.
2.Download lib https://github.com/EspressifApp/LibEsptouchForIOS.
3.Move libEsptouch_v0.3.5.3.a, ESPTouchTask.h, ESPTouchResult.h, ESPTouchDelegate.h to your new project.
4.In project group finder, create a new fire, select Objecttive-C file, then select Create Bridging Header.
5.In Demo-Bridging-Header.h file, import lib.

#import "ESPTouchTask.h"
#import "ESPTouchResult.h"
#import "ESPTouchDelegate.h"

Hardware ESP8266 NodeMCU Code init.lua Test

print("Start SmartConfig ...")
wifi.setmode(wifi.STATION)
wifi.startsmart(0,
    function(ssid, password)
        print(string.format("Success. SSID:%s ; PASSWORD:%s", ssid, password))
        print("Back init.lua")
        dofile("init.lua")
    end
)

TODO

[] SwiftUI
[] WiFi 5G

smartconfig's People

Contributors

lou-lan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

smartconfig's Issues

esptouchResult for multidevice

I have 2 ESP32
I want the Smart config for swift to be able to set up multiple devices and have a detailed reply. Same as in Objective-C.

Please, how should I write an Array in Swift? This will work like obj-c.

func executeForResult() -> ESPTouchResult {
        // 同步锁
        condition.lock()
        // 获得配置所需要的参数
        esptouchTask = ESPTouchTask(apSsid: SSID, andApBssid: BSSID, andApPwd: PASS)
        // 设置代理
        esptouchTask.setEsptouchDelegate(esptouchDelegate)
        condition.unlock()
        let esptouchResult: ESPTouchResult = self.esptouchTask.executeForResult()
        print("⭕️\(esptouchResult)")
        return esptouchResult
    }

Output Swift
⭕️[isSuc: YES,isCancelled: NO,bssid: 240ac41000e4,inetAddress: 192.168.1.4]


Objective-C

- (NSArray *) executeForResults
{
    [self._condition lock];
    NSString *apSsid = self.ssidLabel.text;
    NSString *apPwd = self._pwdTextView.text;
    NSString *apBssid = self.bssid;
    int taskCount = [self._taskResultCountTextView.text intValue];
    BOOL useAES = NO;
    if (useAES) {
        NSString *secretKey = @"1234567890123456"; // TODO modify your own key
        ESPAES *aes = [[ESPAES alloc] initWithKey:secretKey];
        self._esptouchTask = [[ESPTouchTask alloc]initWithApSsid:apSsid andApBssid:apBssid andApPwd:apPwd andAES:aes];
    } else {
        self._esptouchTask = [[ESPTouchTask alloc]initWithApSsid:apSsid andApBssid:apBssid andApPwd:apPwd];
    }
    
    // set delegate
    [self._esptouchTask setEsptouchDelegate:self._esptouchDelegate];
    [self._condition unlock];
    NSArray * esptouchResults = [self._esptouchTask executeForResults:taskCount];
    NSLog(@"ESPViewController executeForResult() result is: %@",esptouchResults);
    return esptouchResults;
}

Output Obj-C

ESPViewController executeForResult() result is: (
    "[isSuc: YES,isCancelled: NO,bssid: 240ac41000e4,inetAddress: 192.168.1.4]",
    "[isSuc: YES,isCancelled: NO,bssid: b4e62dc84e71,inetAddress: 192.168.1.6]"
)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.