你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

WiFi数字控制直流电源---Web界面

[复制链接]
点点&木木 发布时间:2019-3-11 17:06
本帖最后由 点点&木木 于 2019-4-13 10:16 编辑

带网络接口和USB的WiFi数字控制直流电源。
1.jpg

这个项目中使用的东西
         Microchip MCP41010(10KΩ数字电位器)    ×      1               
         STM32F103C8T6开发板   ×         1               
         LM2596 PSU    ×  1               
         AMS1117-3.3模块  ×    1               
         ST-Link(通用)    ×   1               
         光电耦合继电器(通用)   ×     1               

         SparkFun Snappable Protoboard    × 1               
         ESP8266-05模块      ×       1               


介绍
    欢迎来到我的下一个项目!原帖是从这里开始的:http://www.stupid-projects.com/wifi-digital-control-dc-power-supply-with-web-interface-and-usb/
    我在我的一个“神奇”组件柜中有一堆这些可调节的LM2596 DC-DC板,你可以在eBay上找到相当便宜的价格(约1.5美元)。
2.jpg

       正如您所看到的,它由几个元件组成,如电感器,电容器,电阻器等。您应用直流输入电压,然后在另一侧获得降压DC输出。您可以使用10KΩ电位器控制输出电压(蓝色电池装置顶部带有螺丝)。那很棒。但这意味着每次需要更改输出电压时,需要多次旋转螺丝才能获得它。好处是,如果你有一个好的万用表,你可以获得非常精确的输出电压,因为POT是模拟的。不好的是,每次需要更改输出电压时都需要手动操作。
      我们的想法是简单地用数字POT改变模拟POT,然后找到一种远程控制它的方法。那么,为什么不使用UART端口,甚至更好的USB端口。哦,等等......为什么不让它控制WiFi并且还有一个网络界面?为此,我们需要以下组件。

组件
数字电位计
     eBay上有几个数字电位器,价格便宜,但这里的诀窍是找到一个有足够抽头点(或步骤)的数字电位器。为什么你需要很多步骤?数字电位器的“步长”定义了它的分辨率,因此对于具有100步的10KΩ电位器(如X9C103P),每一步都是10KΩ/ 100 =100Ω。当它用在电压分压器(如LM2596电路板上的电位器)时,它非常大。另一方面,通过使用具有256级步长的MCP41010这样的数字电位器,分辨率变得更高。您可以在eBay上找到这些微芯片数码相机,每个约1.5美元。

3.jpg

       MCP41010采用SPI接口控制,这意味着您需要一个微控制器。这很酷,因为这意味着你也可以使用ESP8566 WiFi模块,如果控制器附带它,为什么不能使用USB接口。

微控制器
       我喜欢ARM处理器。我最喜欢的主板是stm32f103c8t6,你可以在eBay上找到2美元的板。它们非常便宜,几乎可以为我的项目提供任何界面,并且它们还有一个非常好的API来编程它们。stm32f103有一个USB端口,超过了需要的2个UART和一个用于控制数字电位器的SPI接口。

4.jpg

    该板由USB连接器或5V或3.3V板载引脚供电。切勿同时使用它们!


ESP8266
        ESP8266再次出现在这个项目上,也出现在第一个项目上。上一篇文章中的复制粘贴如下:使用SDK修改源代码很容易,您也可以使用任何支持网络的设备与它们进行交互。我将来会写一篇关于ESP8266的单独帖子,以及如何为这些模块编写自己的代码。你可以在eBay找到它们,它们的成本约为2.50美元。这个模块有几种类型,它们有不同的闪存大小(512KB,1MB),但你现在唯一需要关心的是它需要支持9600波特率而不仅仅是115200,因为我正在使用Arduino的软件串行库,在较低的波特率下表现得更好。请注意,ESP8266仅为3V3设备。这是模块:
5.jpg

输出继电器
      在输出中,我使用了一个继电器来打开和关闭LM2596的输出; 你可能不想这样做,但拥有它很好。在eBay中有许多便宜的光电耦合继电器,价格为1美元至2美元,如下所示:
6.jpg

       我更喜欢高级驱动继电器作为微处理器,通常在复位后它们将引脚驱动为低电平,这是安全的,因为当mcu复位时继电器不会被激活。您可以将参考电源的正电压输出连接到COM和NC端子。另外,请确保继电器符合您要使用的直流输出,因此请勿使用30V继电器输出40V。最后,确保使用3V3输入触发器激活继电器。

降压(AMS1117-3.3
       您还需要一个降压型直流电源模块来为组件供电,例如AMS1117-3.3。在eBay上有一些便宜的预焊接模块与AMS1117,它们看起来像这样:
7.jpg

      如果您使用面包板或双面原型PCB,它们非常方便,因为它们只有3个引脚,所有需要的组件都在模块上。它还有一个LED指示灯,表示它已通电。


原型板
如果你想在没有设计PCB的情况下组装电路,那么你可以在eBay上以低于1美元的价格购买这些便宜的原型面包板。

8.jpg


图像来自各种PCB尺寸,您只需要一个适合焊接所需的一切。


ST-链接
      最后,您需要一个ST-Link编程器来上传固件。一般来说,我有原始的ST-Link V2和Segger J-link程序员,但说实话,我大多数时候都在使用这些便宜的st-link副本,我发现在限制使用上更方便工作区。当然,我建议您购买原始的,但如果您的空间有限,那么从eBay购买其中一个。

9.jpg


制作项目
       我没有为这个项目制作PCB,它只是我面包板上的概念证明。这些是您需要构建的电路原理图。

10.jpg


      当stm32连接到PC或AMS1117-3.3时,它可以通过USB端口供电。因此,您需要小心,如果您要使用USB适配器或将stm32连接到PC,则需要移除K1跳线。如果您不打算使用USB接口,请放置跳线。
      从LM2596 PSU模块拆下蓝色电阻POT时,PCB上会有三个空孔。LM2596-POT1和LM2596-POT2端子连接到OUT +输出旁边的PCB孔。有两个主电源输入,一个是VIN连接到AMS1117-3.3并为电路供电,另一个是PSU V+,它来自您将用于LM2596的外部电源。因此,[LM2596-POT1 / 2]和[PSU V +输入/输出]连接到LM2596 PSU。USB_UART(P1)不需要使用,它只是调试UART端口。
   
       您可以从我的Github项目下载源文件:https://github.com/dimtass/stm32f103_wifi_usb_psu
       阅读README.md文件,因为它有你需要的所有细节,但我仍然会在这里解释一些事情。您不必构建代码来使用它,但我建议您在需要更改源文件中的一些参数时执行此操作。最新版本的预构建二进制文件位于固件文件夹中,因此您可以使用Windows上的ST-Link实用程序在Linux上刷新hex文件或st-flash实用程序以刷新bin文件。要上传固件,只需连接stm32f103板上的USB电缆并运行README.md文件中的闪烁命令即可。
      如果您需要构建代码,那么您将找到适用于Windows和Linux的cmake文件和脚本。因此,如果您有Windows操作系统,那么您需要为ARM cortex-M3安装cmake,make和gcc工具链。阅读本文,了解如何做到这一点。

       在设置完所有内容之后,您需要做的就是运行build.cmd(在Windows上)或build.sh(在Linux上)来构建代码。Cmake将在build-stm / src文件夹中创建二进制文件,但也将在build-stm文件夹中创建.cproject和.project文件。这意味着您可以将此项目导入eclipseCDT IDE并在其中编辑代码。
       您可能需要编辑的一件事是src / http_server.h文件中的IP地址定义(HTTP_IP_ADDRESS)。这是AP分配给ESP8266模块的地址。这意味着您需要将AP路由器配置为,将始终相同的IP分配给ESP8266的MAC地址。然后,您可以重新构建代码并在stm32上刷新新的二进制文件。建议在上传固件之前擦除stm32的闪存,因为闪存的最后1K(地址:0x0800FC00)用于存储配置数据,如APSSID,密码和预定义的POT值。

       固件更新后第一次stm32上电,它将尝试从闪存加载配置数据。如果找不到有效配置,则会创建默认配置。在默认配置中,stm无法连接到任何AP,并且预定义的POT值都设置为127(这意味着5KΩ)。您可以使用USB或UART接口更新AP SSID和密码的配置数据。要做到这一点,只需通过计算机上的USB线连接stm并打开终端(我总是喜欢使用Bray的终端)。无论使用什么终端,都要确保LFchar被处理为(CR&LF)。Bray的终端通过选中设置区域中的[CR = LF]复选框和[ - >Send]按钮旁边的[+ CR]来选择该选项。

       如果您已经在项目文件夹中重新生成README.md文件,您知道要使用哪些命令。作为一个例子,我假设AP SSID名称是“Router”,WPA2密码是“MyPassword”; 当然,你需要用自己的方式改变这些。要更新配置,请将以下命令发送到终端。

SSID=Router PASS=MyPassword RECONNECT

      第一个命令存储SSID名称,第二个命令存储密码,第三个命令启动重新连接到路由器。如果最后一个不起作用,只需移除并重新施加电源。当stm启动时,如果没有连接ESP,LED将每隔250ms开始闪烁,当连接时,LED每隔500ms闪烁一次。当它连接时,您最终可以打开浏览器并通过在地址栏上写入其IP地址来连接到Web界面。这就是你会得到的:

11.jpg

       这是一个非常简单的HTML页面,因此有最小的Javascript自动化,这意味着Web界面不会自动恢复PSU状态,因此您不知道它是否打开/关闭以及使用了哪个预定义的输出。因此,请记住这一点。在某些浏览器上,您可能需要先在按钮上进行虚拟点击,这样您可以单击“关闭”按钮1-2次。如您所见,Web界面非常简单。在第一行中有“Power&Trim”按钮,用于关闭或打开输出继电器,并通过更改digi-pot值来调整输出电压。+/-按钮在每次单击时将数字步骤改为1,而 - / ++按钮将步长改为5.您需要使用这些按钮修剪输出并将值保存在预定义的一个上值。

        假设这是在新的固件更新和全闪存擦除后,第一次打开Web界面,因此没有任何配置数据。还假设您已选择src/ http_server.c文件中的预定义值为(2V5),(3V3​​),(5V),(6V)和(12V)。现在您需要执行校准过程,因为所有预定义值默认设置为数字电位器(5KΩ)的步骤127。
      首先将输入功率[ΙΝ+ /ΙΝ-]连接到LM2596(例如12V)和输出中的万用表以测量电压,然后单击关闭按钮的1-2倍,单击需要设置的预定义值然后单击“开”按钮。在万用表上,您将看到与数字电位器步骤127(5KΩ)对应的输出值。现在您需要更改输出。为此,请按住( - )按钮(或++),直到接近预定义值。然后使用( - / +)按钮进一步修剪并获得所需的输出。不要指望输出非常精确,因为10K数字电位器的256步每步只有39Ω。当您获得所需值的最近值时,按(保存)按钮将存储该值。
        然后按下一个预定义按钮(3V3)并重复此过程,直到设置所有值,这就是校准的完成方式。
       由于LM2596的电压下降约为0.7V,因此不要期望输出电压为12V。当您获得所需值的最近值时,按(保存)按钮将存储该值。然后按下一个预定义按钮(3V3)并重复此过程,直到设置所有值,这就是校准的完成方式。
       数字电位器是一个线性电阻器,不像你在LM2596上更换的电位器那样对数。这意味着如果您使用12VPSU作为参考,您将在5V下获得更好的分辨率,但是在此电压下,分辨率会显着下降。
       如果由于某种原因改变了LM2596的输入电压,则需要再次重复校准程序。此外,最好不时地做到这一点,以确保它已经过校准,并且在连接电路之前总是用万用表检查输出。如果您需要另一个输出电压,那么只需在输出端连接万用表,按下更接近所需输出的预定义电压,然后使用(+/-)按钮获取它。
      最后,您可以使用USB连接和README.md文件中说明的命令来完成所有这些操作。您也可以使用USB接口来设置这样的精确数码步长值。
POT=127
您可以设置0到255之间的任何值。
这是Web界面实际上在使用中的截图。

12.jpg

       您可以在src / http_server.c源代码文件中编辑html文件。您可以右键单击您的浏览器并查看页面源,因为它对C格式非常神秘,然后您可以进行任何您喜欢的更改。只是不要在那里添加太多东西,因为界面将需要更多的时间来加载。您也可以更改CSS样式以更改颜色,然后重新构建代码并上载固件。

摘要
嗯,这项目构建起来非常简单。所有需要的组件成本约为10美元。这是eBay上的组件列表及其近似价格(您可能会发现这些更便宜)。
LM2596 PSU~ $ 1.5
MCP41010(10KΩ数码电位器)~1.5美元
STM32F103C8T6开发板〜$ 2
ESP8266-05模块〜$ 2.5
光电耦合继电器板〜$ 1.5
AMS1117-3.3模块〜$ 0.20
双面原型面包板〜$ 1


这是在面包板上的照片。
13.jpg



收藏 1 评论1 发布时间:2019-3-11 17:06

举报

1个回答
长不大的小孩 回答时间:2019-3-12 09:28:14
好项目,去GITHUB找了到了源码,留个记录。

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版