Ⅰ 如何得到esp8266 id號
esp8266與單片機硬體連接好,然後參照datasheet,寫出相應的代碼就好了。
網路一下:ESP8266內核SDK討論論壇,可能會幫到。
Ⅱ esp8266作為客戶端如何固定接收數據的埠
ESP8266的串口與51單片機的串口連接,其它就是編程與設置了。
Ⅲ 如何用ESP8266獲取天氣預報數據
esp8266與單片機硬體連接好,然後參照datasheet,寫出相應的代碼就好了。
Ⅳ esp8266數據傳輸的流程
一種無線報警數顯表,包括殼體,其中在所述殼體外分別設有顯示模塊和輸入模塊,在所述殼體內分別設有傳送模塊、主控模塊和顯控模塊,所述主控模塊分別與輸入模塊和傳送模塊連接,所述顯控模塊的輸入端與所述主控模塊連接,所述顯控模塊的輸出端與所述顯示模塊連接,首先傳送模塊以WiFi的形式實現數據的傳送,傳送模塊將接收到的數據傳遞給主控模塊,主控模塊將數據處理後,通過顯控模塊來控制顯示模塊顯示具體的數值,最終數據通過顯示模塊顯示出來。
進一步改進:所述顯控模塊是由若干74LS595晶元組成,所述顯控模塊是由兩組顯控單元組成,其中一組顯控單元用於控制顯示模塊的行,另一組顯控單元用於控制顯示模塊的列。
進一步改進:所述傳送模塊採用的晶元為ESP8266,所述主控模塊採用的晶元為STC12C5A60S2,所述傳送模塊的發送端與所述主控模塊的接收端連接,所述傳送模塊的接收端與所述主控模塊的發射端連接,所述顯示模塊是由若干SZ411588K晶元組成。
進一步改進:所述輸入模塊是由四個開關按鍵組成,所述的開關按鍵分別為K1、K2、K3、K4,四個所述開關按鍵對應與主控模塊的1-4號管腳連接。
一種基於ESP8266的wifi無線報警數顯表的數據傳輸解析方法,其中包括以下步驟;
步驟一:設置報警閾值,其中;
T表示溫度數據,HT表示溫度上限,LT表示溫度下限;
P表示壓力數據,HP表示壓力上限,LP表示壓力下限;
F表示流量數據,HF表示流量上限,LF表示流量下限;
步驟二:設置數據的顯示方式,其中;
1表示向右單排滾動顯示數據;
2表示向右雙排滾動顯示數據;
3表示單排固定顯示數據;
4表示雙排固定顯示數據;
步驟三:設置報警顯示方式,其中;
1表示全屏閃爍報警;
2表示數據閃爍報警;
3表示邊框閃爍報警;
4表示顯示報警圖片;
進一步優化:在步驟一中採用開關按鍵設置閾值時,按K1鍵5秒以上,開始進入設置模式,屏幕顯示閾值設置,按K3向下選擇;按K4向上選擇;K2退出;再次按下K1鍵5秒以上,進入修改閾值數據;開始修改數據時,按K3鍵數值向下減少,長按加速減少;按K4數值向上增加,長按加速增加;K2保存返回上一層。
本發明的優點:無線報警數顯表彌補了傳統數字顯示儀表無法超限報警的功能,可以根據生產需要靈活修改超限閾值並對異常數據報警,採用無線傳輸數據,不用現場布線,放置靈活,顯示方便。
附圖說明
圖1是本發明控制框架圖。
圖2是本發明主控模塊的連接示意圖。
圖3-1是本發明顯控模塊(行)的連接示意圖。
圖3-2是本發明顯控模塊(列)的連接示意圖。
圖4是顯示模塊的連接示意圖。
圖5是本發明供電電路圖。
圖6是本發明輸入模塊的控制電路圖。
具體實施方式
下面結合說明書附圖對本發明做以下詳細說明。
如圖所示,一種無線報警數顯表,包括殼體,其中在所述殼體外分別設有顯示模塊和輸入模塊,在所述殼體內分別設有傳送模塊、主控模塊和顯控模塊,所述主控模塊分別與輸入模塊和傳送模塊連接,所述顯控模塊的輸入端與所述主控模塊連接,所述顯控模塊的輸出端與所述顯示模塊連接,首先傳送模塊以WiFi的形式實現數據的傳送,傳送模塊將接收到的數據傳遞給主控模塊,主控模塊將數據處理後,通過顯控模塊來控制顯示模塊顯示具體的數值,最終數據通過顯示模塊顯示出來;所述顯控模塊是由若干74LS595晶元組成,所述顯控模塊是由兩組顯控單元組成,其中一組顯控單元用於控制顯示模塊的行,另一組顯控單元用於控制顯示模塊的列;所述傳送模塊採用的晶元為ESP8266,所述主控模塊採用的晶元為STC12C5A60S2,所述傳送模塊的發送端與所述主控模塊的接收端連接,所述傳送模塊的接收端與所述主控模塊的發射端連接
Ⅳ 如何用ESP8266的JSON函數解析JSON數據
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於ECMAScript的一個子集。 JSON採用完全
獨立於語言的文本格式,但是也使用了類似於C語言家族的**慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)
。這些特性使JSON成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網路傳輸速
率)。
JSON 語法規則
JSON 語法是 JavaScript 對象表示語法的子集。
數據在鍵值對中
數據由逗號分隔
花括弧保存對象
方括弧保存數組
JSON 名稱/值對
JSON 數據的書寫格式是:名稱/值對。
名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在後面(同樣在雙引號中),中間用冒號隔開:
"firstName":"John"
這很容易理解,等價於這條 JavaScript 語句:
firstName="John"
JSON 值
JSON 值可以是:
數字(整數或浮點數)
字元串(在雙引號中)
邏輯值(true 或 false)
數組(在方括弧中)
對象(在花括弧中)
null
JSON實戰應用篇
由於項目需要,產品一直使用的ESP8266,為了更好的適應實時性控制項目的需求,重新設計了伺服器的架構,使用了基
於消息訂閱和**的MQTT架構,為了滿足伺服器同事更好的解析數據的需求,我很無奈的選擇了使用JSON數據格式和服務
器交互(其實我還是很喜歡01的,可惜搞**機的更喜歡直接調用現成的API),所以我的WIFI必須支撐JSON,幸好WIFI集
成了JSON API,可惜文檔特別不好理解,搞了很久才明白如何構建一個JSON樹(我都打算直接在MCU裡面用CJSON來實現了
),要構建的JSON樹也挺簡單的「device_info」:{ "sbtm":"****0882****34", "k":"0001", "v":"0" } sbtm是ID
屬性名,K功能碼屬性名,v命令熟悉值(冒號後面的屬性值)。具體代碼如下:
/******************************************************************************
* FunctionName : device_get
* Description : set up the device information parmer as a JSON format
* Parameters : js_ctx -- A pointer to a JSON set up
* Returns : result
*******************************************************************************/
LOCAL int ICACHE_FLASH_ATTR
device_get(struct jsontree_context *js_ctx)
{
const char *path = jsontree_path_name(js_ctx, js_ctx->depth - 1);
if (os_strncmp(path, "sbtm", 4) == 0)
{
jsontree_write_string(js_ctx, "****0882****34");
}
else if (os_strncmp(path, "k",1) == 0)
{
jsontree_write_string(js_ctx, "0x0002");
}
else if (os_strncmp(path, "v",1) == 0)
{
jsontree_write_string(js_ctx," 0");
}
return 0;
}
LOCAL struct jsontree_callback device_callback =
JSONTREE_CALLBACK(device_get, NULL);
JSONTREE_OBJECT(device_tree,JSONTREE_PAIR("sbtm",device_callback),JSONTREE_PAIR
("k",device_callback),JSONTREE_PAIR("v",device_callback));
JSONTREE_OBJECT(deviceinfo_tree,JSONTREE_PAIR("device_info",device_tree));
其中宏定義JSONTREE_OBJECT是生成一個JSON數的對象,第一個參數是該對象的名稱(device_tree),JSONTREE_PAIR是生
成一個鍵值對的宏。
JSONTREE_CALLBACL是生成一個回調指針的宏,該宏有兩個參數,第一個參數是設置讀取JSON樹的值的函數,這里為
device_get函數,第二個參數是設置寫入JSON樹的值的函數,這里沒有用到,為NULL。
device_get是讀取JSON樹的值的函數。其中用os_strncnp進行JSON屬性名的判斷,這里示例是:如果屬性名為"sbtm",則
獲取的值為"****0882****34"。通過json_ws_send((struct jsontree_value *)deviceinfo_tree, "device_info",
buf); 函數可以獲得JSON樹的內容,最後通過MQTT_Publish(mqttClient, "test/json",buf ,os_strlen(buf), 0,0);將
JSON發送到MQTT測試伺服器上面
接下來就是如何解析伺服器下發的JSON樹(對於JSON樹如何解析,8266都沒資料介紹,把網路谷歌找了一遍也沒找到,最後還是自己搞定了,希望後來者少走些彎路)
首先需要初始化一顆JSON樹並將你需要解析的JSON的JSON對象deviceinfo_tree填入到jsontree_setup第二個參數,最後調
用device_parse解析就行。
struct jsontree_context js;
jsontree_setup(js, (struct jsontree_value *)deviceinfo_tree, json_putchar);
json_parse(js, buffer);
LOCAL struct jsontree_callback device_callback =
JSONTREE_CALLBACK(device_get,device_parse);
/******************************************************************************
* FunctionName : device_parse
* Description : parse the device status parmer as a JSON format
* Parameters : js_ctx -- A pointer to a JSON set up
* parser -- A pointer to a JSON parser state
* Returns : result
*******************************************************************************/
LOCAL int ICACHE_FLASH_ATTR
device_parse(struct jsontree_context *js_ctx, struct jsonparse_state *parser)
{
int type;
uint8_t status,cmd;
while ((type = jsonparse_next(parser)) != 0)
{
if (type == JSON_TYPE_PAIR_NAME)
{
if (jsonparse_strcmp_value(parser, "k") == 0)
{
jsonparse_next(parser);
jsonparse_next(parser);
cmd = jsonparse_get_value_as_int(parser);
os_printf("cmd=%d",cmd);
}
else if(jsonparse_strcmp_value(parser, "v") == 0)
{
uint8 status;
jsonparse_next(parser);
jsonparse_next(parser);
status = jsonparse_get_value_as_int(parser);
os_printf("status=%d",status);
}
if(cmd== RO_STATE_CMD)
{
}
else if(cmd== POWR_CMD)
{
if(status==0x01)
{
os_printf("power off");
}
else
{
os_printf("power on");
}
}
else if(cmd== FILTER_CMD)
{
if(status==0x01)
{
os_printf("filter on");
}
else
{
os_printf("filter off");
}
}
}
}
return 0;
}
伺服器下發的JSON命令解析成功~·`~~~~
Ⅵ 如何讓esp8266利用EDP協議主動向Onenet索取數據(get)
esp8266與單片機硬體連接好,然後參照datasheet,寫出相應的代碼就好了。
Ⅶ 跪求ESP8266在32單片機上實現獲取網路時間的歷程
ESP8266實現獲取網路時間參考常式。
網頁鏈接
網頁鏈接
Ⅷ esp8266上傳串口收到的數據問題
如果我感覺沒錯的話,for循環給temp數組賦值的時候,temp[fifo_len]這個元素被你忽略了,導致新增的1和2無法顯示。另外,對於傳統的c語言,在必要時賦個轉義的0確保字元串的結束。當然,如果是發二進制數據,就只能按實際長度,這樣做反是畫蛇添足
Ⅸ 我怎麼樣讓esp8266wifi模塊接收數據並顯示在串口監視器上啊
1.正好最近研究一下8266,首先你需要配置好8266,使用AP,SAT或者AP+SAT模式,
2.第二配置一個TCP伺服器或者UDP 伺服器也可以,用於接收數據
3.開啟伺服器,發送到網卡的數據就會顯示到串口了
4.注意,波特率必須使用115200,不能使用其它的,
5.開啟伺服器後,你可以使用安卓的網路調試助手連接你的8266伺服器,然後發送數據給他,就會在串口顯示你發送的數據了。如果有什麼不懂可以繼續問我。
Ⅹ 求助,如何顯示esp8266所接收回來的訊息
轉串口,通過串口調試助手查看訊息。