<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://w.electrodragon.com/w/index.php?action=history&amp;feed=atom&amp;title=ESP8266_IoT</id>
	<title>ESP8266 IoT - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://w.electrodragon.com/w/index.php?action=history&amp;feed=atom&amp;title=ESP8266_IoT"/>
	<link rel="alternate" type="text/html" href="https://w.electrodragon.com/w/index.php?title=ESP8266_IoT&amp;action=history"/>
	<updated>2026-06-10T00:13:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://w.electrodragon.com/w/index.php?title=ESP8266_IoT&amp;diff=23045&amp;oldid=prev</id>
		<title>Chao at 05:29, 24 October 2019</title>
		<link rel="alternate" type="text/html" href="https://w.electrodragon.com/w/index.php?title=ESP8266_IoT&amp;diff=23045&amp;oldid=prev"/>
		<updated>2019-10-24T05:29:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== AI-Thinker AI-Link==&lt;br /&gt;
# make sure you are using at least 1.2 version AT firmware (run cloud update first)&lt;br /&gt;
# Turn on the APP '''&amp;quot;AI-link&amp;quot;''' in your android cell phone&lt;br /&gt;
# enter the wifi SSID and password and click &amp;quot;start&amp;quot;&lt;br /&gt;
* set on module&lt;br /&gt;
# set mode AT+CWMODE=1&lt;br /&gt;
# run command on the module to start&lt;br /&gt;
 AT+CWSMARTSTART=0 &lt;br /&gt;
# now the serial monitor will show up the wifi SSID and password info and automatically connect it.&lt;br /&gt;
 OK&lt;br /&gt;
 SMART SUCCESS&lt;br /&gt;
 SSID:TP-LINK_4226&lt;br /&gt;
 PASSWORD:1234567890&lt;br /&gt;
# Try to make a ping test&lt;br /&gt;
 AT+PING=&amp;quot;www.baidu.com&amp;quot; &lt;br /&gt;
 +42&lt;br /&gt;
 OK&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP-Touch ==&lt;br /&gt;
# make sure you are using at least 1.2 version AT firmware (run cloud update first)&lt;br /&gt;
# Turn on the APP '''&amp;quot;smarthome&amp;quot;''' in your android cell phone&lt;br /&gt;
# click &amp;quot;smartlink&amp;quot; and enter wifi details then connect&lt;br /&gt;
* Set on module&lt;br /&gt;
# AT+CWMODE=1&lt;br /&gt;
 OK&lt;br /&gt;
# AT+CWSMARTSTART=1 // using mode 2, slower&lt;br /&gt;
 OK&lt;br /&gt;
 WIFI DISCONNECT&lt;br /&gt;
 SMART SUCCESS&lt;br /&gt;
 SSID:TP-LINK_4226&lt;br /&gt;
 PASSWORD:1234567890&lt;br /&gt;
&lt;br /&gt;
 OK&lt;br /&gt;
 WIFI CONNECTED&lt;br /&gt;
 WIFI GOT IP&lt;br /&gt;
# Try to make a ping test&lt;br /&gt;
 AT+PING=&amp;quot;www.baidu.com&amp;quot; &lt;br /&gt;
 +42&lt;br /&gt;
 OK&lt;br /&gt;
== Wechat Air-Kiss ==&lt;br /&gt;
== Smartlink mode ==&lt;br /&gt;
* AT + CWSMARTSTART = 0 AI-LINK intelligent connections advantages: '''fast''', the router is compatible with the best available in the phone is not connected to the case under the Wi-Fi configuration. Cons: Wi-Fi will cause the phone offline. Principle and current connection socket using the same small k.&lt;br /&gt;
* AT + CWSMARTSTART = 1 ESP-TOUCH intelligent connection Advantages: Wi-Fi will not disconnect the phone Disadvantages: slow, very few router may have compatibility issues.&lt;br /&gt;
* AT + CWSMARTSTART = 2 Airkiss intelligent connections advantages: support micro-channel hardware platform. Cons: Almost not own designs APP calls.&lt;br /&gt;
=== Lan service ===&lt;br /&gt;
* AT+LANSTART&lt;br /&gt;
==== Cloud Send ====&lt;br /&gt;
* AT+CIFSR make sure connect to internet&lt;br /&gt;
* AT+CIPSTART=&amp;quot;UDP&amp;quot;,&amp;quot;iot.ai-thinker.com&amp;quot;,5001&lt;br /&gt;
* AT+CLDSTART // cloud send start&lt;br /&gt;
* AT+CLDSTOP // cloud send stop&lt;br /&gt;
* AT+CIPMODE=1&lt;br /&gt;
* AT+CIPSEND&lt;br /&gt;
* {&amp;quot;type&amp;quot;:&amp;quot;signin&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;ai-thinker&amp;quot;,&amp;quot;password&amp;quot;:&amp;quot;12345&amp;quot;}&lt;br /&gt;
* {&amp;quot;type&amp;quot;:&amp;quot;connect&amp;quot;,&amp;quot;from*:*ai-thinker&amp;quot;,&amp;quot;to*:*anyone&amp;quot;,&amp;quot;password*:*anyonePassword&amp;quot;}&lt;br /&gt;
* {&amp;quot;type&amp;quot;:&amp;quot;disconnect&amp;quot;}&lt;br /&gt;
* {&amp;quot;type&amp;quot;:&amp;quot;signout&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;ai-thinker&amp;quot;,&amp;quot;password&amp;quot;:&amp;quot;12345&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
== Reference link ==&lt;br /&gt;
* http://bbs.ai-thinker.com/forum.php?mod=viewthread&amp;amp;tid=1005&amp;amp;highlight=smartlink&lt;br /&gt;
== ESP Cloud Data ==&lt;br /&gt;
=== NodeMCU w/relayr ===&lt;br /&gt;
* https://github.com/sheenhx/esp8266/tree/master/DHT22%20temperature&lt;br /&gt;
* SDK: https://developer.relayr.io/documents/Welcome/Introduction&lt;br /&gt;
=== Data Logging Platform ===&lt;br /&gt;
* https://thingspeak.com&lt;br /&gt;
* https://www.particle.io/prototype#cloud&lt;br /&gt;
* https://data.sparkfun.com/&lt;br /&gt;
* https://thinger.io/&lt;br /&gt;
== MQTT ==&lt;br /&gt;
===Cloudmqtt with NodeMCU ===&lt;br /&gt;
* https://www.cloudmqtt.com/docs-nodemcu.html&lt;br /&gt;
* Reference example code at https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/mqtt/mqtt2cloud.lua&lt;br /&gt;
* API page: https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en&lt;br /&gt;
====Cloudmqtt setup====&lt;br /&gt;
 m=mqtt.Client(&amp;quot;nodemcu1&amp;quot;,60,&amp;quot;swqzxzhr&amp;quot;,&amp;quot;9JMcxVeUNz3t&amp;quot;)&lt;br /&gt;
 m:connect(&amp;quot;m11.cloudmqtt.com&amp;quot;,19311,0,1)&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot;&amp;gt;&lt;br /&gt;
File:Mqttcloud_create_instance.png|Register and create instance&lt;br /&gt;
File:Important info mqttcloud.png| remember to use server, use, password, port info, and click websocket gui to monitor&lt;br /&gt;
File:Mqttcloud_send_and_receive_info.png|enter into websocket to monitor, send and receive data&lt;br /&gt;
File:Mqttcloud_monitor_info.png| Check on NodeMCU end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
==== Modified example code ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Lua&amp;quot;&amp;gt;&lt;br /&gt;
-- test with cloudmqtt.com&lt;br /&gt;
m_dis={}&lt;br /&gt;
&lt;br /&gt;
function dispatch(m,t,pl)&lt;br /&gt;
	if pl~=nil and m_dis[t] then&lt;br /&gt;
		m_dis[t](m,pl)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function topic1func(m,pl)&lt;br /&gt;
	print(&amp;quot;get1: &amp;quot;..pl)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function topic2func(m,pl)&lt;br /&gt;
	print(&amp;quot;get2: &amp;quot;..pl)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
m_dis[&amp;quot;/topic1&amp;quot;]=topic1func&lt;br /&gt;
m_dis[&amp;quot;/topic2&amp;quot;]=topic2func&lt;br /&gt;
&lt;br /&gt;
-- Lua: mqtt.Client(clientid, keepalive, user, pass)&lt;br /&gt;
m=mqtt.Client(&amp;quot;nodemcu1&amp;quot;,60,&amp;quot;swqzxzhr&amp;quot;,&amp;quot;9JMcxVeUNz3t&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-- Lua: mqtt:connect( host, port, secure, auto_reconnect, function(client) )&lt;br /&gt;
m:connect(&amp;quot;m11.cloudmqtt.com&amp;quot;,19311,0,1)&lt;br /&gt;
&lt;br /&gt;
-- ON callback event &amp;quot;connect&amp;quot;, subscribe to topic and start the first publish&lt;br /&gt;
m:on(&amp;quot;connect&amp;quot;,function(m) &lt;br /&gt;
	print(&amp;quot;connection &amp;quot;..node.heap()) &lt;br /&gt;
	m:subscribe(&amp;quot;/topic1&amp;quot;,0,function(m) print(&amp;quot;sub done&amp;quot;) end)&lt;br /&gt;
	m:subscribe(&amp;quot;/topic2&amp;quot;,0,function(m) print(&amp;quot;sub done&amp;quot;) end)&lt;br /&gt;
	m:publish(&amp;quot;/topic1&amp;quot;,&amp;quot;hello112&amp;quot;,0,0) m:publish(&amp;quot;/topic2&amp;quot;,&amp;quot;world211&amp;quot;,0,0)&lt;br /&gt;
	end )&lt;br /&gt;
&lt;br /&gt;
-- ON callback event &amp;quot;offline&amp;quot;&lt;br /&gt;
m:on(&amp;quot;offline&amp;quot;, function(conn)&lt;br /&gt;
    print(&amp;quot;disconnect to broker...&amp;quot;)&lt;br /&gt;
    print(node.heap())&lt;br /&gt;
end)&lt;br /&gt;
&lt;br /&gt;
-- ON callback event &amp;quot;message&amp;quot;, and print on NodeMCU monitor&lt;br /&gt;
m:on(&amp;quot;message&amp;quot;,dispatch )&lt;br /&gt;
&lt;br /&gt;
-- intervally publish the time&lt;br /&gt;
tmr.alarm(0,10000,1,function() local pl = &amp;quot;time: &amp;quot;..tmr.time() &lt;br /&gt;
	m:publish(&amp;quot;/topic2&amp;quot;,pl,0,0)&lt;br /&gt;
	end)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== More reference ===&lt;br /&gt;
* test.mosquitto.org&lt;br /&gt;
[[Category:ESP8266 SDK]]&lt;/div&gt;</summary>
		<author><name>Chao</name></author>
	</entry>
</feed>