參考大神教程完成阿里雲自建伺服器esp8266和mqtt客戶端成功對接
阿新 • • 發佈:2018-12-15
阿里雲自建伺服器esp8266和mqtt客戶端成功對接
阿里雲伺服器部分參考esp8266嵌入式大神資料:大神部落格 最近組建了一個小群,感興趣的可以加入一起玩:476840321
微控制器也是很簡單的,用的esp8266最小系統。
過程中間遇到了很多問題,還好都一步步解決了, 首先是linux的一些常用命令,因為伺服器買的是阿里雲的空間,跑的是linux的系統,按照網上的資料和教程,總算搞定了。 linux常用命令集:https://www.cnblogs.com/pengwenzheng/p/9795909.html 其次是硬體端的程式設計,esp8266的韌體的編寫。以及mqtt通訊SDK的修改(參考安信可和技新的資料)
程式碼備份如下:mqtt_config.h
/*IMPORTANT: the following configuration maybe need modified*/ /***********************************************************************************************************************************************************************************************************************************************************/ #define CFG_HOLDER 0x66666670 // 持有人標識(只有更新此數值,系統引數才會更新) /* Change this value to load default configurations */ /*DEFAULT CONFIGURATIONS*/ // 注:【MQTT協議規定:連線服務端的每個客戶端都必須有唯一的客戶端識別符號(ClientId)】。如果兩相同ID的客戶端不斷重連,就會進入互踢死迴圈 //-------------------------------------------------------------------------------------------------------------------------------------- #define MQTT_HOST "購買的ip" // MQTT服務端域名/IP地址 // the IP address or domain name of your MQTT server or MQTT broker ,such as "mqtt.yourdomain.com" #define MQTT_PORT 1883 // 網路連線埠號 // the listening port of your MQTT server or MQTT broker #define MQTT_CLIENT_ID "pengwenzheng" // 官方例程中是"Device_ID" // 客戶端識別符號 // the ID of yourself, any string is OK,client would use this ID register itself to MQTT server #define MQTT_USER "admin" // MQTT使用者名稱 // your MQTT login name, if MQTT server allow anonymous login,any string is OK, otherwise, please input valid login name which you had registered #define MQTT_PASS "public" // MQTT密碼 // you MQTT login password, same as above #define STA_SSID "maker_space" // WIFI名稱 // your AP/router SSID to config your device networking #define STA_PASS "chuangke666" // WIFI密碼 // your AP/router password #define STA_TYPE AUTH_WPA2_PSK #define DEFAULT_SECURITY NO_TLS // 加密傳輸型別【預設不加密】 // very important: you must config DEFAULT_SECURITY for SSL/TLS #define CA_CERT_FLASH_ADDRESS 0x77 // 【CA證書】燒錄地址 // CA certificate address in flash to read, 0x77 means address 0x77000 #define CLIENT_CERT_FLASH_ADDRESS 0x78 // 【裝置證書】燒錄地址 // client certificate and private key address in flash to read, 0x78 means address 0x78000 /*********************************************************************************************************************************************************************************************************************************************************************************/ /*Please Keep the following configuration if you have no very deep understanding of ESP SSL/TLS*/ #define CFG_LOCATION 0x79 // 系統引數的起始扇區 /* Please don't change or if you know what you doing */ #define MQTT_BUF_SIZE 1024 // MQTT快取大小 #define MQTT_KEEPALIVE 120 // 保持連線時長 /*second*/ #define MQTT_RECONNECT_TIMEOUT 5 // 重連超時時長 /*second*/ #define MQTT_SSL_ENABLE // SSL使能 //* Please don't change or if you know what you doing */ #define QUEUE_BUFFER_SIZE 2048 // 訊息佇列的快取大小 //#define PROTOCOL_NAMEv31 // 使用MQTT協議【v31】版本 /*MQTT version 3.1 compatible with Mosquitto v0.15*/ #define PROTOCOL_NAMEv311 // 使用MQTT協議【v311】版本 /*MQTT version 3.11 compatible with https://eclipse.org/paho/clients/testing/*/ #endif // __MQTT_CONFIG_H__
接下來的思路:準備寫安卓端的控制程式,和硬體和網路進行對接, 方案1: 利用java編寫(這個還是比較難的) 方案2: 利用apicloud編寫,JavaScript編寫(需要購買資料)發工資了再買。 方案3: 利用E4A易安卓進行編寫,這個應該很簡單,準備試一下。