1. 程式人生 > >參考大神教程完成阿里雲自建伺服器esp8266和mqtt客戶端成功對接

參考大神教程完成阿里雲自建伺服器esp8266和mqtt客戶端成功對接

阿里雲自建伺服器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易安卓進行編寫,這個應該很簡單,準備試一下。