彩色笔 发表于 2017-9-22 10:11:22

SOC方案,利用ESP12F模块来做智能插座(完结)

本帖最后由 彩色笔 于 2017-11-2 21:03 编辑

      从一个什么都不会的小白,到做出一款智能插座我用了三个多月的时间,其中趟过的坑真是数不过来。在此特别,特别,特别真诚地感谢群里和论坛上的各路大神。尤其是下面这位大神给我帮助最多。感谢感谢。

    可能教程更新过程会比较慢,但我在此保证肯定会完结,这是我向以上大神的承诺。也是让后面来的小伙伴们更快地做出自己想要的东西。程序和PCB我会全部公开。     先来几张图镇镇场,吸引下你们的学习兴趣。
   
软件条件:
          1、Eclipse安装了吗?我推荐用安信可的。论坛上搜,有相关帖子。
          2、Android Studio安装了吗? 我只会安卓的,而且还特别菜。
          3、其它软件,PS,AD分别用来处理图片和PCB布板,当然你也可以用别的软件来做。                           





硬件条件:
          1、ESP12F ,淘宝上安信可店12元左右。
   以上准备好了,我们就去官网自己的账号下建立产品项目吧。
第一部分,官网上建立项目
机智云关于插座这块有模块数据点,我们可以利用下,如下图操作。
   


2、修改和增加数据点


关于数据点要说一下,后面系统自动生成APP端和MCU端,都是根据这里的数据点“标识名”来生成的,所以取名时花点心思,方便以后自己或别人判读。生成后端代码之前,这里要多想想需要哪些数据点,以后再来增加,操作起来就很麻烦了。增加后需要重新生成。看到这里,如果有好方法的朋友,一定不要吝啬,请分享下你的办法帮助更多人。
3、应用配置生成


4、选择“应用开发”生成APP端的框架


在“Product Secret:”处填入编码,这个编码在“基本信息”栏里找,如下图




点击:“显示完整密钥”,在密码框内输入你账号的登录密码,然后将完整的密钥复制下来。粘贴到应用开发内。然后点击,“生成开发包”,等待APP端开发包生成后下载下来。


5、生成设备端代码,点击“MCU开发”
   ESP12F本身就是个单片机,考虑到插座体积和功能,我选择SOC方案,够用了。
   ESP12F选择32M。现在官方功能有增加了,有不同内存版本的可选了。以前询问机智云技术,推荐用12F来搞,现在难道ESP-01S也可以做了?至于哪个型号对应哪个容量 ,还没查,后期补,知道的帖下留言。
   
输入密钥后,同样生成。等待后,下载下来。

第二部分,硬件原理图和PCB板设计

外壳厂家地址:https://detail.1688.com/offer/554695408415.html?spm=0.0.0.0.u6xmmj
      在进行硬件电路设计前,首先要考虑的是内部供电问题,衡量各方面条件,最终内部供电采用深圳深鸿盛 KP3211SG,非隔离降压IC。注意:如果采用KP3210 APP上操作快速多次开关时,动作会失控,最终原因是电流不够导致的。故你们在选IC时,输出电流要>=500mA 为好。
       为什么采用这款IC,首先有两点考虑,1、输出电压可调,2、供电电流能够满足。3、电路结构简单
继电器常规最小控制电压是5V的,而ESP12F供电电压是3.3V,可采用ASM1117-3.3V 线性降压IC,这里压降要尽量小,如果供电电源输出是12V的,将会导致线性降压IC损耗过大,发烫,长期使用会损坏。故输出电压我选择5V。

      ACS712是霍尔型电流传感器,根据通过的电流会产生一个电压,我们经过分压后,传给ESP12F的AD引脚进行采样,根据计算得到能耗值。该功能目前我还未进行,只是PCB上有设计。关键AD采样不怎么明白,希望AD操作成功的朋友指教一二。





      PCB板上,继电器采用的HF- JQX-115F-I- 005 012 024-1HS3(555) 6脚 5V 16A宏发继电器,体积有些大,需要改造下外壳。如果用宏发5V 10A的 就不必改了,尺寸刚好。

   

第三部分 手机APP端UI设计
      完成PCB布局后,在发出打样的这几天里,我们可以进行APP端的设计。
      解压缩文件后,我们可以看到如图两个文件,入门推荐用Android Studio来做。

         

       将图中AndroidStudio文件拷贝到项目文件夹内,改名为“SmartSocket”,然后用Android Studio软件导入项目。
       现在让我们来把机智云的框架改成自己的,从启动到操作界面来个大换血。

      打开文件后,下图就是程序中的各个界面了。

         


下面就是每个界面对应的layout文件和其名称,找到后对应修改。

   activity_gos_user_login.xml


activity_gos_device_list.xml注意:新版APP生成包,在进行这版面编辑时,出现错误,“Missing classes”鼠标滚动到下面。找到下图,点击"Build",可修复错误



activity_gos_airlink_choose_decive_workwifi.xml

activity_gos_modelist.xml

activity_gos_airlink_ready.xml


activity_gos_device_control.xml
花费最多时间的就是这个界面了,程序操作的界面,这个地方我们需要会一些PS技术来美化它。



功能和界面设计,从配色到布局可以先在PS中设计好,今天将老的界面升下级,这次要增加一个定时功能,老版是只有延时开/关功能。
   在这里分享个人经验,可以从网站下载相关的 PSD文件,将有用的文件导出成单个素材,先在PS中预览效果,满意保存下来,后期程序中引用。最终的PSD文件放入项目文件夹中保留。   由于个人技术比较菜,又喜欢比较炫的效果,目前只能PS了。如果有安卓技术可以,建议还是在 Android Studio中用文本来写,这样中、英文版本后期好处理。

第四部分   APP端程序代码添加
       找到activity_gos_device_control.xml打开,设置界面布局,PS好的按钮和背景替换。这些操作详细方法就不提了,自己搜索吧。参考机智云官方的方法来进行。地址如下:
      http://docs.gizwits.com/zh-cn/quickstart/AndroidAppFrame.html

设置好的界面样式

如何快速找到该界面对应的JAVA文件。 点击左下角“Text”,找到如上图的C标识,点击,可快速定位到对应的JAVA文件。    程序文件我上传了,内部每处用户可添加的地方,我都作了注释,可参考。我也是边百度学习边修改的,程序可优化之处,请大神提出建议。
    APP端可利用项目内“虚拟设备”来进行上位机端的调试。    其它部分的APP修改,我就不多说了。套路差不多。PS后修改。







第五部分,SOC端程序

完成了。带掉电记忆功能。功能调试了下,没有问题。考虑到许多人还在摸索,所以尽快传上来了。如果有好的建议请在这下面回复。

BUG修复:
1、联网配置时,LED不会反复闪烁,已修复。
2、还有加入了AD采样。
基于有人询问user_main.c里的程序,增加了如下代码:、

bool PowerONOFFFlag;//电源开关标志位
bool airLinkFlag,airLinkLEDFlag;//联网标志位




到此全部完成,SOC程序以最新的为准,如果还有其它BUG,请留言。








彩色笔 发表于 2017-10-24 19:52:08

本帖最后由 Genius 于 2017-11-15 10:01 编辑

guge 发表于 2017-10-22 23:27
楼主能把在Eclipse编译SOC代码这部分详细的贴出来吗?我下载的代码烧进去,一直报错。就是这个链接描述的问 ...
烧录,请看我另一篇文章,关于烧录的。搜索“从小白一步步走来,ESP8266模块使用,环境搭建,编译和烧录”http://club.gizwits.com/thread-6447-1-1.html

寒枫 发表于 2017-10-7 10:01:28

很多代码不会写,等着学习一下,希望楼主更新下文,多谢:)

bigfanofloT 发表于 2017-9-25 21:19:43

感谢分享,esp8266的ADC使用可以看看这个帖子http://club.gizwits.com/thread-5453-1-1.html

羽毛虫 发表于 2017-9-22 18:37:20

感谢楼主分享,坐等下文

peter58 发表于 2017-9-23 11:10:38

先上个代码撒,让我们预热下

清脆的风铃声 发表于 2017-9-24 10:28:47

来点掌声

修雲 发表于 2017-9-25 19:14:17

支持   持续关注中   正在准备楼主的这些材料 跟着楼主走。。。

修雲 发表于 2017-9-27 20:13:02

楼主更新得怎么样了啊?

寒枫 发表于 2017-9-30 14:47:56

大神的技术贴,必须持续关注,期待更新....:handshake

Garfieldang 发表于 2017-10-5 19:56:06

正在学习,希望楼主能尽快更新

fred.liao 发表于 2017-10-11 14:58:24


感谢楼主分享!学习中。。。

寒枫 发表于 2017-10-11 19:10:00

你好,user_main.c能提供资料吗

彩色笔 发表于 2017-10-11 20:47:41

本帖最后由 彩色笔 于 2017-10-12 16:47 编辑

寒枫 发表于 2017-10-11 19:10
你好,user_main.c能提供资料吗
user_main.c上面已帖出。请查看。

simonliu009 发表于 2017-10-15 21:20:47

真不错,很详细,感谢分享

飞仔 发表于 2017-10-17 17:31:18

学习了,谢谢分享

AIcainiao 发表于 2017-10-19 11:42:56

楼主大大,关于“重复”这个怎么做的?

彩色笔 发表于 2017-10-19 23:07:58

AIcainiao 发表于 2017-10-19 11:42
楼主大大,关于“重复”这个怎么做的?

重复就是将初始值保存下来,程序运行时,当条件达到,就将初始值恢复,程序又重新读数

AIcainiao 发表于 2017-10-20 15:05:27

楼主大大,反复闪烁这个功能我在user_main.c里做了,怎么不能执行呀?

彩色笔 发表于 2017-10-21 22:28:19

AIcainiao 发表于 2017-10-20 15:05
楼主大大,反复闪烁这个功能我在user_main.c里做了,怎么不能执行呀?

请下载我最新的,以前的有这个问题。

guge 发表于 2017-10-22 23:27:12

楼主能把在Eclipse编译SOC代码这部分详细的贴出来吗?我下载的代码烧进去,一直报错。就是这个链接描述的问题http://club.gizwits.com/thread-7259-1-1.html   
页: [1] 2 3 4
查看完整版本: SOC方案,利用ESP12F模块来做智能插座(完结)