• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于小e智能硬件開(kāi)發(fā)平臺(tái)設(shè)計(jì)的WIFI小車(chē),小車(chē)APP+源代碼

2017/06/09
39
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

WIFI小車(chē)APP.rar

共2個(gè)文件

物聯(lián)網(wǎng)WiFi開(kāi)發(fā)板相關(guān)電路

  1. 物聯(lián)網(wǎng)開(kāi)發(fā)板——NuMaker Uni資料開(kāi)源下載(硬件+軟件+Android APP+用戶指南)
  2. 物聯(lián)網(wǎng)時(shí)代萬(wàn)能的開(kāi)發(fā)模塊 - “小哪吒“FPGA+Wifi開(kāi)發(fā)模塊
  3. (全部資料共享)極Q開(kāi)發(fā)板——QQ物聯(lián)開(kāi)發(fā)(原理圖、參考程序、視頻教程等)
  4. WIOT board(無(wú)線物聯(lián)開(kāi)發(fā)板)
  5. 智能硬件開(kāi)發(fā)平臺(tái)—小e物聯(lián)網(wǎng)WiFi開(kāi)發(fā)板電路圖+PCB+源代碼

WIFI小車(chē)用小E開(kāi)發(fā)板作為服務(wù)器(AP模式),然后用手機(jī)作為客戶端進(jìn)行連接。簡(jiǎn)單理解就是用小E開(kāi)發(fā)板發(fā)出熱點(diǎn),然后手機(jī)連接上wifi熱點(diǎn),之后進(jìn)行TCP協(xié)議進(jìn)行通信。從而控制小車(chē)的方向和轉(zhuǎn)速。

一、小E開(kāi)發(fā)-wifi-AP模式配置

user_set_softap_config(void)

{

struct softap_config ap_config;

constchar *wifi_name = "四驅(qū)車(chē)"; //發(fā)出的熱點(diǎn)名稱(chēng)

wifi_set_opmode(SOFTAP_MODE); //設(shè)置為AP模式,并保存到 flash

ap_config.ssid_len = strlen(wifi_name); //計(jì)算ssid長(zhǎng)度

os_strcpy(ap_config.ssid,wifi_name); //設(shè)置ssid名字

os_strcpy(ap_config.password,"12345678"); //設(shè)置密碼

ap_config.authmode=3; //設(shè)置加密模式

ap_config.beacon_interval=100; //信標(biāo)間隔時(shí)槽100 ~ 60000 ms

ap_config.channel=1; //通道號(hào)1 ~ 13

ap_config.max_connection=4; //最大連接數(shù)

ap_config.ssid_hidden=0; //隱藏SSID

wifi_softap_set_config(&ap_config);

//定時(shí)查看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回調(diào)異常

}

二、建立TCP協(xié)議

1、先檢查IP地址是否為零。

2、IP地址不為0,開(kāi)始初始化配置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);

//注冊(cè)TCP 回調(diào)函數(shù)

espconn_regist_time(&esp_conn,0,0);

//設(shè)置超時(shí)斷開(kāi)時(shí)間 單位:秒,最大值:7200 秒

sint8 ret =espconn_accept(&esp_conn);

//創(chuàng)建TCP_Sevser服務(wù)器 監(jiān)聽(tīng)

//if(ret==0)

//os_printf("rn創(chuàng)建TCP_Sevser監(jiān)聽(tīng)成功??!rn");

}

TCP配置成功之后,創(chuàng)建事件回調(diào)函數(shù)。具體大家可以參考手冊(cè)附錄有詳細(xì)說(shuō)明

/****************************************************

*TCP服務(wù)器創(chuàng)建監(jiān)聽(tīng)連接成功

*****************************************************/

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ù)后回調(diào)函數(shù)

espconn_regist_sentcb(pesp_conn,tcp_server_sent_cb); //TCP發(fā)送完成回調(diào)函數(shù)

espconn_regist_reconcb(pesp_conn,tcp_server_recon_cb); //tcp鏈接發(fā)送異常斷開(kāi)

espconn_regist_disconcb(pesp_conn,tcp_server_discon_cb); //TCP鏈接正常斷開(kāi)

tcp_server_multi_send(); //查詢客戶端接入ip地址

espconn_regist_time(&esp_conn,0,0); //設(shè)置超時(shí)斷開(kāi)時(shí)間 0 為一直連著不斷開(kāi)

//os_printf("注冊(cè)各個(gè)回調(diào)函數(shù)完成 !!! rn");

}

三、TCP接收數(shù)據(jù)和處理數(shù)據(jù)函數(shù)

tcp_server_recv_cb(void *arg, char *pusrdata,

unsignedshort length)

{

//接收成功的回調(diào)函數(shù)

struct espconn *pespconn = arg;

uint8 i =0;

os_printf("%s",pusrdata); //UART透?jìng)鞒鋈?/p>

espconn_sent(pespconn,pusrdata, length);

If(..)

{

...........

}

}

四、PWM配置

PWM采用的是硬件定時(shí)器來(lái)配置,周期為10kHZ左右。具體大家可以查看程序源碼。

  • WIFI小車(chē)APP.rar
    下載
    描述:APP源碼,用E4A編寫(xiě)
  • WIFI小車(chē)源碼(TCP-Sevser).rar
    下載
    描述:ESP8266源碼,用ecplise打開(kāi)

相關(guān)推薦

方案定制

去合作
方案開(kāi)發(fā)定制化,2000+方案商即時(shí)響應(yīng)!