物聯(lián)網(wǎng)WiFi開發(fā)板相關電路:
- 物聯(lián)網(wǎng)開發(fā)板——NuMaker Uni資料開源下載(硬件+軟件+Android APP+用戶指南)
- 物聯(lián)網(wǎng)時代萬能的開發(fā)模塊 - “小哪吒“FPGA+Wifi開發(fā)模塊
- (全部資料共享)極Q開發(fā)板——QQ物聯(lián)開發(fā)(原理圖、參考程序、視頻教程等)
- WIOT board(無線物聯(lián)開發(fā)板)
- 智能硬件開發(fā)平臺—小e物聯(lián)網(wǎng)WiFi開發(fā)板電路圖+PCB+源代碼
WIFI小車用小E開發(fā)板作為服務器(AP模式),然后用手機作為客戶端進行連接。簡單理解就是用小E開發(fā)板發(fā)出熱點,然后手機連接上wifi熱點,之后進行TCP協(xié)議進行通信。從而控制小車的方向和轉速。
一、小E開發(fā)-wifi-AP模式配置
user_set_softap_config(void)
{
struct softap_config ap_config;
constchar *wifi_name = "四驅車"; //發(fā)出的熱點名稱
wifi_set_opmode(SOFTAP_MODE); //設置為AP模式,并保存到 flash
ap_config.ssid_len = strlen(wifi_name); //計算ssid長度
os_strcpy(ap_config.ssid,wifi_name); //設置ssid名字
os_strcpy(ap_config.password,"12345678"); //設置密碼
ap_config.authmode=3; //設置加密模式
ap_config.beacon_interval=100; //信標間隔時槽100 ~ 60000 ms
ap_config.channel=1; //通道號1 ~ 13
ap_config.max_connection=4; //最大連接數(shù)
ap_config.ssid_hidden=0; //隱藏SSID
wifi_softap_set_config(&ap_config);
//定時查看wifi是否連成功 。。
os_timer_disarm(&test_timer);
os_timer_setfn(&test_timer,(os_timer_func_t *) user_esp_platform_check_ip,NULL);
os_timer_arm(&test_timer,1000, 0); //1S回調異常
}
二、建立TCP協(xié)議
1、先檢查IP地址是否為零。
2、IP地址不為0,開始初始化配置TCP協(xié)議。
TCP協(xié)議初始化配置函數(shù)
user_tcpserver_init(uint32 port)
{
esp_conn.type = ESPCONN_TCP;
esp_conn.state = ESPCONN_NONE;
esp_conn.proto.tcp = &esptcp;
esp_conn.proto.tcp->local_port =port;
espconn_regist_connectcb(&esp_conn,tcp_server_listen);
//注冊TCP 回調函數(shù)
espconn_regist_time(&esp_conn,0,0);
//設置超時斷開時間 單位:秒,最大值:7200 秒
sint8 ret =espconn_accept(&esp_conn);
//創(chuàng)建TCP_Sevser服務器 監(jiān)聽
//if(ret==0)
//os_printf("rn創(chuàng)建TCP_Sevser監(jiān)聽成功?。n");
}
TCP配置成功之后,創(chuàng)建事件回調函數(shù)。具體大家可以參考手冊附錄有詳細說明
/****************************************************
*TCP服務器創(chuàng)建監(jiān)聽連接成功
*****************************************************/
LOCAL void ICACHE_FLASH_ATTR
tcp_server_listen(void*arg)
{
struct espconn *pesp_conn = arg;
//os_printf("tcp_server_listen !!! rn");
espconn_regist_recvcb(pesp_conn,tcp_server_recv_cb); //tcp收到數(shù)據(jù)后回調函數(shù)
espconn_regist_sentcb(pesp_conn,tcp_server_sent_cb); //TCP發(fā)送完成回調函數(shù)
espconn_regist_reconcb(pesp_conn,tcp_server_recon_cb); //tcp鏈接發(fā)送異常斷開
espconn_regist_disconcb(pesp_conn,tcp_server_discon_cb); //TCP鏈接正常斷開
tcp_server_multi_send(); //查詢客戶端接入ip地址
espconn_regist_time(&esp_conn,0,0); //設置超時斷開時間 0 為一直連著不斷開
//os_printf("注冊各個回調函數(shù)完成 !!! rn");
}
三、TCP接收數(shù)據(jù)和處理數(shù)據(jù)函數(shù)
tcp_server_recv_cb(void *arg, char *pusrdata,
unsignedshort length)
{
//接收成功的回調函數(shù)
struct espconn *pespconn = arg;
uint8 i =0;
os_printf("%s",pusrdata); //UART透傳出去
espconn_sent(pespconn,pusrdata, length);
If(..)
{
...........
}
}
四、PWM配置