Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
http
json
【24嵌入式设计大赛】基于RT-thread 火星一号的http发送json的物联网控制程序
发布于 2024-09-16 02:16:41 浏览:342
订阅该版
**正如摘要叙述,这是个价值上亿的大项目,不同于其他iot互联技术,本技术免服务器,免app,零依赖,无套路,全开源,纯c,高兼容性**。 相比那些什么mqtt等乱七八糟的东西,本方案只要浏览器就能达到各种设备的互联,本着开源分享精神,跟这些商业套路做斗争,看完你就会发现,其实那些什么服务器装app都是坑爹的,搞个web还要你下一大堆看不懂的代码,现在本仙告诉你们,那都是完全没用的! ![1.png](https://oss-club.rt-thread.org/uploads/20240916/1f90bab3b24c20ed37df7fefa2821014.png.webp) 首先建个一百亿的项目,完成后你编译烧写,发现就能点灯了。 ![2.png](https://oss-club.rt-thread.org/uploads/20240916/740e0554b48ba0e36600573c9a54b638.png.webp) 它代码有个循环,一会拉高拉低的,所以灯就一亮一灭了,这不难理解。但这不是我们的目标,我们希望通过浏览器控制它亮灭,经过对板子几个小时的肉眼观察,发现它果真有个网络模块,名曰WiFi,我们正常人就会想着加个wifi软件包把它玩起来。 ![3.png](https://oss-club.rt-thread.org/uploads/20240916/f252f27046267f196e91d2fbdd4701f6.png.webp) 然后加入rw007那玩意,立马编译失败了,后来有人告诉你要去看原理图配置管脚,我不是看不懂原理图,主要是不想抢硬件的饭碗,作为一名优秀的软件开发人员,起码的职业素养还是有的,所以一百亿项目就这样黄了。 ![4.png](https://oss-club.rt-thread.org/uploads/20240916/d89dcd5d31edb12cdd3fa865af8ac320.png.webp) 锲而不舍是我们每个预备党员该具备的精神,经过仔细阅读开发板手册,发现有个例子直接可以搞定WiFi,直接在这个项目上修改吧,你真是太鸡贼了。 ![5.png](https://oss-club.rt-thread.org/uploads/20240916/10e76d5af5f11fb69fe6031137006ebf.png.webp) 对于单片机工程师来说可能不知道socket这东西,所以经常被那些资本家坑,我为了就大家于水深火热之中,只能讲一下什么是socket。它是操作系统用来联网的东西,我们的rtt是个操作系统,你的浏览器也运行于一个操作系统,所以操作系统就提供了个最底层的东西用来给他们建立通信,它就是socket,所以你只需要用socket就能达到万物互联,根本不需要在黑心商家面前当驴被草。由于socket是正常操作系统自带的,rtt恐怕也是正常操作系统,所以你不用装什么依赖,也不用编译那些一堆编译错误的垃圾代码。 ![6.png](https://oss-club.rt-thread.org/uploads/20240916/46dee7b4bfe5edbef7f4e2387fa12a56.png.webp) 点那个ide里面那本书,或者按f1,你就能看到文档,找到网络那,你就发现竟然有例子,然后把那个例子变成源文件放到你的工程里,这个我不用手把手教了吧。 ![7.png](https://oss-club.rt-thread.org/uploads/20240916/34f0c2a40379a8c2b73eb667cc53485e.png.webp) 代码要把端口改成80,因为web服务器的端口默认是80,我们的板子会充当web服务器,浏览器发送请求页面的包过来,我们就需要回应页面回去,所以流程就是连接然后接收数据,发送数据,它都帮我写好了,所以不是我不想写代码,是他们不给我动手的机会。 ![8.png](https://oss-club.rt-thread.org/uploads/20240916/12d3fea18551e9b8f29781d19c478ad7.png.webp) 写web页面是那些不懂硬件的低级程序员做的事情,我们这么大工程师当然不能会了,他们的工作其实机器人就可以完成,如图就那么几个字就能生成一个有按钮提交json数据回板子的页面代码。 ![9.png](https://oss-club.rt-thread.org/uploads/20240916/96023248b54ac0b3ad41a116f7210276.png.webp) 如图可见,页面也只不过是一堆字符,我们收到页面请求后给他发送回去就好。所谓互联网那帮人把这些东西吹得神乎其神,什么框架啊,分层啊,什么中间件啊,听得都脸红了,其实在我们高级程序员眼里都是字节流嘛。 ![10.png](https://oss-club.rt-thread.org/uploads/20240916/733555ff2f23a49762ef8672fff93336.png.webp) 我们编译一下烧板子里面跑起来,就能看见页面了,当然你得会连wifi这个手册里面有,我不想抄过来,免得降低我文章的含金量,反正获取到板子的ip,在浏览器里面输入就能访问到页面了。 ![11.png](https://oss-club.rt-thread.org/uploads/20240916/75c717fd101a910bbdcc4e9062ac2330.png) 这个浏览器你要找一台电脑,连接同一个wifi,这样电脑跟板子就在一个网络中,然后用ip访问板子才能访问到。 ![12.png](https://oss-club.rt-thread.org/uploads/20240916/12d84d0fd532bab369b09c9e27062002.png) 页面上可以输入一个字符串比如1,点击页面上的按钮后会发送一个json到我们的板子上,这个数据除了json还包含页面html协议一堆乱七八糟的字符,我们需要用c语言的strstr函数过滤一下。 ![13.png](https://oss-club.rt-thread.org/uploads/20240916/bb11597d9ecb35680dffec453d8adeec.png) 如图,可以看到我过滤出来的json,有了json我们就可以控制灯亮灭,或者控制多媒体播放,如音乐视频等等,着看你的页面做多少功能了。我不是不会做这些多媒体功能,只是这样一个上亿的项目不想有人直接拿去发财,所以故意删掉了这些代码,以免在技术学习的道路上害了大家。 ![微信图片_20240916020442.jpg](https://oss-club.rt-thread.org/uploads/20240916/5cdf6476027fc5f58f4517941e97630f.jpg.webp) 反复点击页面上的按钮,可以看到cpu旁边的红灯在闪烁。 ![14.png](https://oss-club.rt-thread.org/uploads/20240916/126630ab64b028561e28f13e886e5304.png.webp) 本案的难点在于很多人可能不能理解什么是json,其实json是一串字符串,它能存储各种数据类型,能封装你需要的请求数据和控制数据,我们可以通过语法图来理解它。 ![微信图片_20240916021152.jpg](https://oss-club.rt-thread.org/uploads/20240916/c50185ec00bd5d73061385c3dd974caa.jpg.webp) 最后欢迎各位迷茫少女加我,言传身教,一起探讨宇宙的奥秘。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
wangzhao
这家伙很懒,什么也没写!
文章
2
回答
0
被采纳
0
关注TA
发私信
相关文章
1
http_ota 每次下载一半就断线
2
使用http_ota时出错
3
M3中的基于http的通信的例程
4
关于HTTP OTA下载升级
5
EC20在使用AT指令实现http或者mqtt问题
6
webclient分段下载
7
https head response 403
8
HTTP OTA webclient获取不到服务器
9
webclient连接onenet平台进行SOTA升级无法使用Range字段
10
MCU + RW007实现WiFi热点和HTTP SERVER,这个需求可以吗?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部