stm32-FreeRTOS-ESP8266-OneNET物联网远程开关,心知天气网络时间,开源代码电路原理图altium-pcb
分享下自己基于OneNet物联网云平台的远程开关,可电脑 / 手机APP远程控制,亦可获取当前时间和近3日天气。
还有好多坑待填,开源仅作学习。
资源下载链接在文章末尾。stm32-FreeRTOS源码、原理图、AD-PCB。
实物展示
- 上电自动联网,获取开关状态、时间、天气的过程:(5FPS)
- OLED时间界面:(15FPS)
- OLED整体界面:(15FPS)
- 电脑控制远程开关:(15FPS)
- 手机APP控制远程开关:(15FPS)
(现在的远程开关由于是HTTP GET的方式,每隔3S刷新一次,所以有时延)
- 高清图:
设计概况
- 硬件组成:
主控MCU:stm32F103c8t6
WIFI:ESP8266(ESP-12F/S)、EMW3080【选其一使用】
以太网:W5500
显示:SPI-OLED / SPI-TFT
运行系统:FreeRTOS
功率输出:两路250V/10A继电器、两路600V/6A可控硅(交流)
供电方式:USB / DC-5V / 18650锂电池(备用电源)
通信接口:CAN / RS485 / USB从机 / USB串口 / 2xTTL串口
传感器:红外发射(3W | 120°)、红外接收、APDS-9930(光强、接近)、DHT12(或其他I2C的温湿度传感器)
- 特点:
全,硬件全面,CAN / RS485 / USB从机 / USB串口 / 2xTTL串口,红外发射/接收,满足 家居/轻工控需求。
全,周全,wifi连接 / 以太网连接均可。
全,安全,18650锂电备用电源,从容应对断电情况,亦可随手携带进行场外调试。
- 设计初衷:
最开始只是想设计个远程开关,能放进防水盒可远程遥控,没想那么多功能。可一想打5公分的PCB也是打,打10公分的PCB也是打,干脆集成的东西多一点,可搭配出的功能也多一些。到手后发现,最重要的配网按键忘记搞了,虽然其他的方式也能弥补,例如用红外遥控器做触发,用光强做触发,但总感觉少了那个随心所欲的味道。于是搁置争议,先填好远程开关这个坑,其他功能留着以后有时间再完善。
- 目前实现功能:
stm32F103 运行 FreeRTOS。
ESP8266(ESP-12F/S)wifi,HTTP 连接 OneNET、心知天气。
4路远程开关控制、北京时间、近3日天气。
OLED平移滚动界面:时钟界面、开关状态界面、近3日天气界面。
多种供电方式:USB / DC-5V / 18650锂电池(备用电源)。
- 待填坑:
stm32代码RAM优化,目前已使用19.2KB。(好多其实都是可以省的)
温湿度传感器代码。(DHT12缺货,而其他I2C的温湿度传感器都比较贵。)
红外接收、红外发射代码,遥控记录功能。
CAN / RS485 / USB从机 代码。
APDS-9930代码。
W5500以太网代码。
阿里云物联网平台、MQTT连接。
- 设计缺陷:
RTC晶振不起振,F103的老毛病了。(所以时间计时使用FreeRTOS的软件定时器+每10分钟联网校准)
温湿度传感器,一开始准备用DHT12的,后来发现DHT12缺货,而其他I2C的温湿度传感器都比较贵。
配网按键忘记加了。
备用电源切换方案待优化。(觉得备用电源也没什么用,毕竟要是外部断电了,wifi路由器也会断电。现在来看,只是方便携带,不必担心供电问题,放哪里都可以用)
开放代码、电路、资料:
- 代码、电路、相关资料:
wifi密码修改、OneNet云平台账号、城市天气修改:wifi.h、onenet_http.h、seniverse_http.h 中的宏定义
OLED界面平移、滚动的实现:OLED界面平移滚动实现
OneNET云平台产品创建:OneNET云平台使用
心知天气产品创建:心知天气获取消息
GitHub源码仓库、电路:F103_IOT_DEV
字体、图片的取模方式:
https://blog.csdn.net/Mark_md/article/details/107930207
https://blog.csdn.net/Mark_md/article/details/107932293
stm32-FreeRTOS-ESP8266-OneNET物联网远程开关,心知天气网络时间,开源代码电路原理图altium-pcb相关推荐
- STM32使用ESP8266模块AT指令连接心知天气API获取天气信息
由于之前使用STM32单片机来开发一些物联网的小项目,接触到了WIFI模块ESP8266,所以写下来记录一下.本文主要介绍的是STM32通过发送AT指令集来控制ESP8266 WIFI模块连接WiFi ...
- ESP8266+oled连接心知天气显示时间和实时天气
因为时间比较仓促,目前存在许多问题没有解决. 首先进行aduino环境配置,具体方法可参考以下链接,若选错开发板型号编译会报错配置esp8266开发板的Arduino开发环境_交通运输怪味张的博客-C ...
- 分享一个stm32的OLED驱动,实现图像平移滚动滑动,esp8266-wifi物联网远程开关天气,开源代码电路原理图
分享一个自己写的OLED驱动库,可实现平移,滑动,图像拼接等操作. 亦可使用 esp8266-wifi 交互OneNET物联网云平台实现远程开关,心知天气获取近3日天气. 先上图: 上面是单独的时钟界 ...
- STM32的oneNet物联网远程智能家居控制系统-思路分享
设计了一款基于OneNET的物联网智能家居系统,用于家庭的智能控制系统.系统采用意法半导体公司的STM32F103C8T6作为控制单片机,果云科技的GA6作为物联网通信的载体.中国移动的OneNET作 ...
- stm32+esp8266 GET请求心知天气的简单方法
文章目录 前言 一.ESP8266调试 二.代码部分 1.esp8266部分 2.单片机代码部分 总结 前言 因为之前学习stm32+esp8266请求心知天气时看的不是很懂,然后在成功调试出来之后发 ...
- 使用 Fiddler 调试 心知天气,stm32 esp8266获取天气api
心知天气 - 免费用户的功能: 国内 370 个主要城市 天气实况,包括天气现象文字.代码和气温 3 项数据 未来 3 天天气预报,包括白天天气现象文字及代码.晚间天气现象文字及代码.当天最高温度和最 ...
- esp8266点灯LCD12864心知天气+农历+空气质量ArduinoJson6
接上篇 esp8266 mixly blynk远程控制 + NTP+天气预报及一体 智能钟 时钟原理图见上篇文章 心知天气.农历API用的是ArduinoJson6解析.且采用的char* 变量 .上 ...
- ESP8266使用AT指令获取时间和心知天气
一.硬件:ESP8266,USB TO TTL模块,软件:串口调试助手 二.在心知官网注册账号:心知天气 - 高精度气象数据 - 天气数据API接口 - 行业气象解决方案 三.连接esp8266和us ...
- STM32使用CJSON获取心知天气
文章目录 1.程序配置 2.新建json数据 3.读取json数据 4.解析心知天气 5.ESP01S获取数据 6.STM32获取数据 本文是接着上一篇文章的后续来写,上一篇写的太长了后面太累了就没写 ...
最新文章
- 基于XMPP的IOS聊天客户端程序(XMPP服务器架构)
- Linux eval命令
- java反多态的代码_Java多态性代码详解
- Hibernate模糊查询
- [导入].net分布式事务例子
- TPC-H生成Spark测试用的伪数据集(转载)
- Android之常见面试题
- 转换文档参数_明明2秒可以搞定Word、Excel相互转换,你却用了半小时!真亏了...
- .html()和.text()及.val()的区别
- FileProvider的使用
- spring mvc 接收表单 bean
- 配置Https 和 HSTS
- nginx rtmp直播无延迟_Ubuntu中使用Nginx+rtmp搭建流媒体直播服务
- mega linux教程,LINUX 安装MegaRAID Storage Manager (MSM)安装使用教程.doc
- java有关继承与多态的初学者操作实验题------初学者学习多态专用
- 《管理学》第八章 领导
- JEECMS 自定义标签
- EMV规范(七)——持卡人验证(CVM)一
- 基于NSGA2算法的多AGV柔性车间调度多目标优化【附python源码】
- python编写猜大小游戏_python编写猜数字小游戏
热门文章
- 常见蛋白质种类_蛋白粉 你必须知道的五大知识
- PCB上面的元器件辨识方法
- WML语言基础(WAP建站)二(转)
- Python的len()函数
- 基于常见投票系统的作弊方法
- context:annotation-config vs context:component-scan 的区别
- ORA-20000:ORU-10027:buffer overflow,limit of 2000 bytes 解决办法
- ip 淘宝地址库 好东西
- 云计算虚拟化技术与开发-------虚拟化技术应用第二章内容(CPU虚拟机X86要解决的问题、VT-x、VMX、vCPU、EPT、VT-d)
- 统计推断 完备性与完备统计量的思想与历史渊源