查看Noduino OpenPlug CN的源代码
←
Noduino OpenPlug CN
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== Overview == * AC 85V - 250V Smart Plug * ESP8285 inside * 250V 10A relay * Shell size 53mm x 53mm x 27mm [[文件:Open-plug-board-shell.jpg | 600px]] [[文件:Open-plug-board.jpg | 600px]] <br><br> == Quick Start == [[文件:Maike-wifi-ctrl-2233-all.jpg]] * 插座通电,等 6 s 左右,指示灯 1 秒左右慢闪,表示在等待配网 * 如果不在慢闪,长按按钮 10 秒 * 手机连接 2.4G WiFi ,微信扫描二维码,点 "配置设备上网" * 按提示输入 WiFi 密码,点 “连接”,等待配网完成(注意,设备目前只支持 2.4G,不支持 5G WiFi);此外企业级安全认证也暂不支持) * WiFi 配置完成后,微信自动进入局域网发现设备模式,其会列出设备列表 * 点击第一个设备,进入页面,在页面最下面会有 “绑定设备” 按钮 (如果已经绑定过改设备,最下面的按钮为“进入公众号”),点击按钮,完成设备绑定 * 完成后,点“进入公众号”,在公众号菜单的 “智能设备”,即可列出你绑定的所有设备,点一个设备,即可进入设备控制页 其他人需要控制设备,需要先连接到同样的路由器,在设备通电的情形下,扫描同样的二维码,点“设备已联网,跳过此步”,直接“发现”、“绑定设备” 即可在公众号菜单“智能设备里控制 ;;其他说明: * 短按按钮,手动开关控制器 * 长按 10 秒按钮,恢复出厂设置 <br><br> == Open API == 编程控制起一个MQTT客户端即可 微信绑定设备后,进入公众号,公众号下面的菜单 “智能设备”列出您所绑定的所有设备,选择您的插座,进入设备控制页,点右上角,在弹出的菜单里选“复制链接”,粘贴后查看 URL 即可获得您的插座的关键控制参数: <source lang=php> <?php echo 'var devid = "' . $devid . '";'; echo 'var mqtt_uname = "' . $openid . '";'; echo 'var mqtt_pass = "' . $token . '";'; echo 'var mqtt_server = "' . $_GET['m2mip'] . '";'; echo 'var mqtt_port = ' . $_GET['m2mport'] . ';'; ?> </source> 微信控制页是一个 H5 页,里面起了一个 Javascript 的 MQTT 客户端,Javascript example, using the mqttws31.min.js mqtt library: <source lang=javascript> var client_id = parseInt(Math.random() * 10000, 10) + '_' + mqtt_uname; var client = new Paho.MQTT.Client(mqtt_server, mqtt_port, "/mqtt", client_id); var state = 0; function failConnect(e) { console.log("connect failed"); console.log(e); console.log("reconnecting ..."); client.connect({userName: mqtt_uname, password: mqtt_pass, onSuccess:onConnect, onFailure: failConnect, mqttVersion:3}); } function onConnect() { console.log("onConnect OK!"); subscribe('dev2app/' + devid); } function subscribe(topic) { client.subscribe(topic); } function onMessageArrived (message) { // MQTT message from device example: {"m":"status","d":"on","t":"2015-12-30T00:00:00+08:00"} console.log("Arrived Message: [", message.payloadString, "]"); try { job = JSON.parse(message.payloadString); state = job.d; } catch(e) { console.log("JSON object error!"); alert("JSON error, RX data is: " + message.payloadString); return; } if(state == 'on') { $('#switch').removeClass('btn_off'); $('#switch').addClass('btn_on'); } else if (state == 'off') { $('#switch').removeClass('btn_on'); $('#switch').addClass('btn_off'); } } function onDisConnect() { console.log("reconnecting ..."); client.connect({userName: mqtt_uname, password: mqtt_pass, onSuccess:onConnect, onFailure: failConnect, mqttVersion:3}); } function publish(topic, msg){ message = new Paho.MQTT.Message(msg); message.destinationName = topic; client.send(message); console.log("publish message ok!"); } function init() { client.connect({userName: mqtt_uname, password: mqtt_pass, onSuccess:onConnect, onFailure: failConnect, mqttVersion:3}); client.onMessageArrived = onMessageArrived; client.onConnectionLost = onDisConnect; } function toggle() { //console.log("toggle_devid = " + devid); var p_topic = "app2dev/" + devid; if($('#switch').hasClass('btn_off')) { //console.log("toggle off, topic = " + p_topic); publish(p_topic, "on"); } else if ($('#switch').hasClass('btn_on')) { //console.log("toggle off, topic = " + p_topic); publish(p_topic, "off"); } } </source> <br><br> == Hacking == === Prepare firmware === Get noduino-sdk: <source lang=bash> $ git clone --recursive git://github.com/icamgo/noduino-sdk.git noduino-sdk </source> Generate toolchain (you need Python 2.7): <source lang=bash> $ cd noduino-sdk/toolchain $ ./gen.py </source> Compile Open Plug firmware: <source lang=bash> $ cd ../sketch/open-plug $ make </source> The generated firmware is located in build/ dir named user1.bin annnd user2.bin Window environment please refer to [[Getting Started with Noduino SDK on Windows]], you can get how to setup the basic developmennt environment <br><br> === Upload === ==== Serial ==== [[文件:5pin.jpg]] [[文件:Ft232.jpg | 800px]] * USB2UART_GND ------> SmartNode_GPIO0 * USB2UAR_GND -----> SmartNode_GND * USB2UAR_RXD -----> SmartNode_TX * USB2UAR_TXD -----> SmartNode_RX Connect USB2UAR_VCC3.3 -----> SmartNode_VCC at last ESP8285 will be enter upload mode, we can upload the compiled firmware through serial using following commands in Linux: <source lang=bash> $ cd /path/to/noduino-sdk/sketch/open-plug $ make produce ESPPORT=/dev/ttyUSB1 </source> In windows: <source lang=bash> $ make produce ESPPORT=COM7 </source> COM7 is your USB2UART device In MAC OS, maybe it's: <source lang=bash> $ make produce ESPPORT=/dev/cu.SLAB_USBtoUART </source> /dev/cu.SLAB_USBtoUART is your USB2UART device <br><br> ==== Online ==== ;; Access: http://dev.noduino.org/openonoff ;; Login: * Username: noduino * password: noduino1234 ;; Click the "Add files", select the user1.bin and user2.bin located in /path/to/noduino-sdk/sketch/open-plug/build/ ;; Then click "Start upload" to upload the user1.bin and user2.bin into the server temporaily ;; Enter <br><br> == Hardware == [[文件:Open-plug-v0.8-sch.png | 900px]] [[文件:Open-plug-layout.png | 600px]] <br><br> == 参考 == ;;更多信息访问: * [[Noduino]] <br><br> <br><br> <br><br> <br><br> <br><br>
返回到
Noduino OpenPlug CN
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面