|
本帖最后由 ITEAD创易工作室 于 2015-11-4 16:48 编辑
《一、首款行业通用wifi改装件》
Hello!小伙伴们,好久不见了!貌似从4月份开始就没有来论坛发帖了,也有很多坛友给我们留言了,在此给大家给个不是。
当然我们今天再次归来是一定不会让大家失望的,因为ITEAD出品,必属精品!
在这里先给大伙一个交代,从去年10月份开始,历时一年,我们开发了一套完整的WIFI智能家居方案,包括wifi模组、云平台和APP,小伙伴们一定还记得我们最早发布的esp8266方案的那篇帖子吧?对坛友们也算是进了点微薄之力,但是帖子发出后我们收到了很多坛友们技术支持上的咨询,因为实验不成功有多方原因,所以我们也没有一一回复。
为了把这个方案做到完美,经过这一年时间的努力,终于修得正果,今天我们就带给你一个你意想不到的方案:行业首款wifi通用改装件。
废话不多说,眼见为实,上视频:
从视频可以看到,我们最后展示了一个分享功能,即用户可以轻松地把自己账户下的设备分享给别的注册用户,实现共同控制。如果设备没有被分享,设备只能被添加在一个账户下,别的账户无法通过本地配置按钮添加设备,只有主用户把设备删除后才能被别的用户添加。这个机制不只是实现分享,更是一个安全机制。
最后再发两张板子全貌。
当然,作为开源硬件行业的开拓者,我们的云平台也是完全开放的,提供开放的SDK,开源供坛友们对接自己的APP和硬件。后续我们会不断开出教程。感谢小伙伴们大力支持!
《二、零开发量 串口wifi透传模块》
hello,今天给大家带来的这款wifi透传模块是基于上篇改装件的功能开发的。因为改装件只能实现电源的开关和定时,对于温湿度数据或者机器人指令等还不能实现远程监控,使用上颇有限制。表担心,今天这个透传模块就是为Maker而生的!
照例先上视频:
该模块上电自动连接我们的服务器,只需要给它配置wifi连接即可。
- int led_pin = 11;
- //定义一个10字节的整型数据变量cmd作为命令,这里可以修改为不同的数字。此处设置为10是为了有更好的兼容性。
- char cmd[10];
- //判断收到的cmd是否有内容
- bool valid_cmd = false;
-
- void setup()
- {
- //定义连接led的引脚为输出信号
- pinMode(led_pin, OUTPUT);
- Serial.begin(9600);
- }
- void loop()
- {
- /*以下部分是串口信息处理过程*/
- //定义一个整数型变量i
- int i;
- //如果串口收到有数据
- if (Serial.available() > 0)
- {
- //变量i最大为10
- for (i = 0; i < 10; i++)
- {
- //清空缓存,存入cmd变量,并以\0作为结束符
- cmd[i] = '\0';
- }
- //此时i只能取前9位,第10位是结束符\0
- for (i = 0; i < 9; i++)
- {
- //再次判断串口如果收到有数据,防止数据丢失
- if (Serial.available() > 0)
- {
- //给变量cmd赋值,取串口收到的前9位字符
- cmd[i] = Serial.read();
- delay(1);
- }
- else
- {
- //如果串口数据超过9位,后面的字符直接忽略,跳到下一步
- break;
- }
- }
- /*以上串口信息处理结束*/
-
- //得到最终变量cmd的有效值
- valid_cmd = true;
- }
-
- //判断变量cmd的值,开始处理
- if (valid_cmd)
- {
- //如果变量cmd的前2位的值是on
- if (0 == strncmp(cmd, "on", 2))
- {
- //则连接led的引脚电压被置高5V,
- digitalWrite(led_pin, HIGH);
- //串口打印返回值ON,表示ON的操作执行成功
- Serial.println("ON");
- }
- else if (0 == strncmp(cmd, "off", 3)) //否则如果变量cmd的前3位的值是off
- {
- //则连接继电器的引脚电压被置低0V,灯的电路被断开,灯灭
- digitalWrite(led_pin, LOW);
- //串口打印返回值F,表示OFF的操作执行成功
- Serial.println("OFF");
- }
- else //如果以上两个条件都不成立,前2位不是ON,或者前3位不是OFF,即不正确的命令
- {
- //仅串口打印返回值X,表示指令错误。
- Serial.println("X");
- }
- //到此,变量cmd的指令被处理完毕
- valid_cmd = false;
- }
- //延迟10毫秒,返回loop主程序继续读取新的串口指令
- delay(10);
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|