基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)

  • 基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)
  • 基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)
  • 基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)
  • 基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)
  • 基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)

基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)

基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)

基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)

基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)

基于STM32F103ZET6 简易不间断直流电源的设计方案(原理图+源程序+bom表+演示beplay体育ios怎么用)


一、任务 设计并制作用于电池储能装置的简易不间断直流电流,实现电池的充放电功能,功能可由按键设定,亦可自动转换。电池组由18650型锂离子电池串联组成。所用电阻阻值误差的绝对值不大于5%。
二、要求

接通S1、S3,断开S2,将装置设定为充电模式。

(1)U2=30V条件下,实现对电池恒流充电。充电电流I1在1~2A范围内步进可调,步进值不大于0.1A,电流控制精度不低于5%。

(2)设定I1=2A,调整直流稳压电源输出电压,使U2在24~36V范围内变化时,要求充电电流I1的变化率不大于1%。

(3)设定I1=2A,在U2=30V条件下,变换器的效率>= 80% 

(4)测量并显示充电电流I1,在I1=1~2A范围内测量精度不低于2%。

(5)具有过充保护功能:设定I1=2A,当U1超过阈值U1th=24±0.5V时,停止充电。

电路相关文件

beplay苹果文件
源代码
2.程序.rar
描述:源程序
其他文件
教程
演示beplay体育ios怎么用.rar
描述:演示beplay体育ios怎么用
分享到:
收藏 (5)
电子硬件助手小程序 电子硬件助手小程序

beplay体育ios怎么用电路折扣劵获取途径:

beplay体育ios怎么用7~10折折扣劵(全场通用):对本电路进行评分获取;

beplay体育ios怎么用6折折扣劵(限购≤100元电路):申请成为卖家,上传电路,审核成功后获取。

(版权归王哥所有)

版权声明:beplay体育ios怎么用所有电路均源于网友上传或网上搜集,供学习和研究使用,其版权归原作者所有,对可以提供充分证据的侵权信息,本站将在确认后24小时内删除。对本电路进行投诉建议,点击投诉本电路反馈给beplay体育ios怎么用。

使用说明:直接使用附件资料或需要对资料PCB板进行打样的买家,请先核对资料的完整性,如果出现问题,beplay体育ios怎么用不承担任何经济损失!

换一批 more>>

大家都在看:

继续阅读

  • Type-c接口的arduino MEGA2560_air

    arduino mega2560开发板 air版本。为学校的比赛特地设计。尺寸缩小,比信用卡还短一点。下载部分改为CH340方案。usb接口改为type-c。数据线插上即可使用。AD格式 pcb和原理图,提供PDF版本原理图。PCB:实物图:文件包括:与以太网模块连接:
    来自:DIY创意产品时间:2019-09-19 diy制作 arduino 开源
  • 树莓派扩展板

    树莓派扩展板,使用stm32f107作为扩展板主控芯片。扩展板和树莓派通信可以通过USB通信和串口TTL通信。扩展板可以单独使用部分功能,树莓派也可以单独使用部分功能。全部功能是需要stm32和树莓派同时连接才能实现。扩展板STM32功能有:16路pwm输出输入;蜂鸣器;RGB LED;RTC时钟;USB通信;USB转TTL通信;12伏供电可以输出5v、3.3v、12V电源;OLED接口;AIP1628数码管驱动,按键功能扩展板树莓派功能:RGB LED;OLED接口;AIP1628数码管驱动;按键;蜂鸣器;风扇;SPI 、IIC扩展接口;40pin扩展接口。
    来自:其他开发板时间:2019-09-12 stm32 开源 raspberry pi 3
  • 简易甲醛测量器

    4位数码管显示甲醛值 便携式锂电池供电
    来自:DIY创意产品时间:2019-09-14 diy制作
  • beplay体育app苹果-机器人模型

    以实物的纯三维图纸Morphex球形变型六足机器人模型3D图纸+Solidworks设计
    来自:机器人时间:2019-09-16 开源
  • LT8612降压模块( 12V 转 3.3V/1.5A)

    这个模块是本人在摩尔吧学习电源课做的一个小的电源模块,12V转3.3V/1.5A,非常小巧测试条件:输入:12.003V 输入电流:0.362A输出:3.329V 输出电流:1.216A效率:93.16% 纹波:1.4mV~1.8mV空载电流:约2μA注:数据仅供参考模块图片:
    来自:电源模块时间:2019-09-15 diy制作
  • Iot标签

    IoT 标 签源 起: 在我们小区门口,有一家不大的店~叫“福美家超市”。主打是卖菜,兼有副食品和小百货等。奇怪的是,旁边有几家类似功能的店,其他家多是冷冷清清,这一家却总是得排队付款。就算附近农村卖小菜的农民在附近围了一圈儿又一圈儿,似乎也没能冲淡这家店的生意! 今天,照例来到这家店里准备买菜,大家伙儿自觉地站了两排,向前推进得似火比平常慢了点。正在选菜中,老板娘不知对谁发了个话,“哎,大妈,您稍等会儿啊,今天缺两人没来吶”。今天小两口子一同协作:一个称重贴标签,另一个扫码收款(向多数老年人),年轻人常常是手机付款。时不时也有不想多等的年轻人离开店铺。 我的感觉是排队买菜的现象已经有几年了。有一次为关于他儿子学编程事聊了一会儿。他们每天3~4点就得起床,要赶往蔬菜集散中心采购,回到店里,还要不停地整理菜品,全家齐上阵,吃饭不定点,直到晚上23点接近24点才能睡觉。几乎天天如此,年年如此。所以老板的问题似乎也是我的问题,忽然自动激发了是不是可以利用最近学习人工智能技术,其中之一是机器学习,可以对各种菜品进行训练学习,达到一定次数后不难识别常见超市蔬菜瓜果等。由此制作一种能自动识别称重贴标的AI菜篮子。 这家店年轻的老板及老板娘怎么也不会想到,一位顾客会为他们店更高效地卖菜而想办法。哈哈,这就是创客吧。当然,小白的我对人工智能才刚刚接触,这个AI菜篮子当前仅存脑海里备档哟。 但是结合电子墨水屏制作未来超市的商品IoT标签并不难。 IoT标签: 一种在超市、便利店、药房、甚至员工胸牌等场景显示信息的电子类标签。随着人工智能时代的来临,将越来越多地替代传统纸质标签;每一个电子价签通过无线网络与商场计算机数据库或上云互连,实时、准确地显示不同区域商品最新的基本信息。IoT标签 VS 纸质标签:IoT标签纸质标签1、便利性:一次到位,仅几年后更换电池繁琐2、体验佳:改善顾客线上线下体验不一致,更可实物参照不同步3、节约成本:人力、时间、环保成本高,易出错4、易管理:随时更新,调整,云上操作不易出错,及时提供数据...... 目前制作IoT标签的最佳选择是电子墨水屏。什么是电子墨水屏?(参考:电子发烧友网~"传感器技术")电子墨水屏(E-link): 电子墨水屏技术最早可以追溯到 1996 年,它基于美国麻省理工学院媒体实验室(MIT Media Lab)的一项研究,利用电泳技术(EPD)实现显示,这类屏幕的显示效果十分接近传统纸张,因此也被成为“电子纸”。1997 年,麻省理工学院的教授 Joseph Jacobson 创立 E_Ink 公司,开始推动电子纸技术走向商业化,电子墨水技术成为电子纸的主流。 电子墨水与印刷使用的墨水很相似,都是用颜料所制,这也是为什么我们看到电子墨水屏和传统纸张显示效果相似的原因。电子墨水通常会制成薄膜,由大量微胶囊﹙microcapsules﹚组成,这些微胶囊只有人类头发的直径大小。微胶囊中的黑白小球是带不同电荷的色素颗粒,初始状态下,色素颗粒悬浮在微胶囊中,当施加一定方向的电场后,相应的色素颗粒被推到顶部,微胶囊就会显示不同的颜色,而不同颜色的微胶囊组成了各种文字和图案。电子纸显示屏是靠反射环境光来显示图案的,不需要背光,即使是在阳光底下,电子纸显示屏依然清晰可视,可视角度几乎达到了 180°。因此,电子纸显示屏非常适合阅读。 电子墨水屏基本结构如下图所示: ⒈上层;⒉透明电极层;⒊透明微胶囊;⒋带正电荷的白色颜料;⒌带负电荷的黑色颜料;⒍透明液体(油);⒎电极像素层;⒏基板;⒐光线;⒑白色;⒒黑色。电子墨水屏是由许多电子墨水组成,它是融合化学,物理和电子学的整体产生的一种新材料。电子墨水可以看成一个个胶囊的样子(如上图所示)。每一个胶囊(位置6)里面有液体电荷,其中正电荷染白色,负电荷染黑色。当在一侧(位置8)给予正负电压,带有电荷的液体就会被分别吸引和排斥。这样,每一个像素点就可以显示白色或者黑色了。因为电子墨水的刷新是不连续的,每一次刷新完成就可以保持现在的图形,即使拔掉电池也依旧保存,因为电子墨水具有双稳态效应(磁滞效应)。电子墨水屏的优点:1、省电(可用于低功耗场景)2、护眼(未来很可能替代纸质阅读)电子墨水屏当前的缺点:1、目前主要只有黑白产品,彩色有三色(黑白红)/(黑白黄)/4096色。2、不能快速响应一些动画类需求。3、彩色屏刷新过程中会闪屏。4、成本高。 微雪的柔性墨水屏祼屏(黑白):尺寸: 2.13 inch工作电压:3.3V/5V通信接口:SPI点距:0.229* 0.228分辨率:212*104显示颜色:黑、白灰度等级:2局部刷新 :0.3s全局刷新 :2s 注意事项(摘自微雪):1. 支持局刷的屏幕,注意使用的时候不能一直用局刷对屏幕进行刷新,需要在做几次局刷之后,对屏幕进行一次全刷清屏。否则会造成屏幕显示效果异常,无法修复。2. 三色的墨水屏,建议将屏幕刷白朝上存放,使用前,先上电做几次刷白操作。3. 注意屏幕不能长时间上电,在屏幕不刷新的时候,要将屏幕设置成睡眠模式,或者进行断电处理。否则屏幕长时间保持高电压状态,会损坏膜片,无法修复。4. 使用墨水屏的时候,建议刷新时间间隔至少是 180s, 并且至少每 24 小时做一次刷新,如果长期不使用墨水屏的话,要将墨水屏刷白存放。5. 屏幕进入睡眠模式之后,会忽略发送的图片数据,只有重新初始化才能正常刷新。6. 屏幕的 FPC 排线比较脆弱,注意使用的时候沿屏幕水平方向弯曲排线,不可以沿屏幕垂直方向弯曲排线。7. 墨水屏屏幕较为脆弱,注意尽量避免跌落,碰撞,用力按压。 DF~FireBeetle 三色电子墨水屏(黑白红):工作电压:3.3V数据总线:SPI颜色:黑白红三色屏幕尺寸:2.13 inch像素:212×104刷新时间:12~15s 背面(下角白色方块与微控制器上一致,是防呆防反插标志哟^_^): DF~FireBeetle 低功耗系列之一萤火虫 ESP32微控制器 (支持WiFi&Bluetooth):可以较方便地控制FireBeetle电子墨水屏。 DF为FireBeetle(三色)电子墨水屏提供的API列表:#include "DFRobot_IL0376F_SPI.h"DFRobot_IL0376F_SPI eink; //创建一个ePaper对象函数功能:设定字库和墨水屏片选引脚并初始化。void begin(const char cs_W21, const char cs_GT30, const char dc, busy);函数功能:清除屏幕为指定颜色。InkScreen_Error clear(uint8_t color);函数功能:显示图片(212*104),可以是红色、黑白、红白黑三色图片。void drawPicture(const unsigned char *pic_bw, const unsigned char *pic_red);函数功能:刷新屏幕显示。void flush(void);函数功能:显示字符串。void disString(uint8_t x, uint8_t y, char *ch, uint8_t color);函数功能:画点。InkScreen_Error drawPoint(const unsigned char x, const unsigned char y, const unsigned char color);函数功能:画线。InkScreen_Error drawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint8_t color);函数功能:画矩形框。InkScreen_Error drawRectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint8_t color)函数功能:画圆形边框或者填充圆形。InkScreen_Error drawFillRect(uint16_t x1, uint16_t y1, uint16_t width, uint16_t length, uint8_t color);参数1 (xc,yc): 圆心坐标 (xc∈(0,211),yc∈(0,103)。InkScreen_Error drawCircle(uint16_t xc, uint16_t yc, uint16_t r, uint16_t fill, uint8_t color);结合例程及上API对电子墨水屏~IoT货架标签进行界面布局:主要是在程序中对各种元素进行坐标定位、字号选择、颜色确定、图形绘制等。 测试电子墨水屏程序(Arduino): [C++] 纯文本查看 复制代码?010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172/*!* 08/19/2019测试电子墨水屏程序 * from file FigureDemo.ino* 分辨率:212*104*/#include "Arduino.h"#include "DFRobot_IL0376F_SPI.h"#define STOCK_PIN A2 // 这里可以利用环境光线传感器收集数据模拟商品“美福记”库存状态变化DFRobot_IL0376F_SPI epaper;#define EPAPER_CS D3#define Font_CS D6#define EPAPER_DC D8#define EPAPER_BUSY D7char foodName[]="";float price = 0.0;int stock_per = 100;void setup(void){Serial.begin(115200);//Select the corresponding pinsepaper.begin(EPAPER_CS, Font_CS, EPAPER_DC, EPAPER_BUSY);}void loop(void){epaper.fillScreen(WHITE);//Displays a string, black fontepaper.disString(1,5, 2,"食",BLACK);epaper.disString(1,45, 2,"品",BLACK);epaper.disString(0,83, 1,"FOOD",BLACK);//Let me draw 2 red dotLinesfor(uint8_t x=33,y=0; y<103; y+=2){epaper.drawPixel(x,y,RED);epaper.drawPixel(x+1,y,RED);} epaper.disString(35,1, 1,"品名:",BLACK);epaper.disString(35,18, 1,"Name",BLACK);epaper.disString(35,35, 1,"价格:",BLACK);epaper.disString(35,52, 1,"Price",BLACK);epaper.disString(35,69, 1,"库存:",BLACK);epaper.disString(35,86, 1,"Stock",BLACK);epaper.disString(78,1, 1,"美福记",RED);epaper.disString(78,30, 2,"29.8",RED);epaper.disString(140,45, 1,"¥/Kg",RED);epaper.disString(185,1, 1,"20%",RED);// Draw a down arrowepaper.fillRect(191,18, 12,40,RED);epaper.fillTriangle(184,50, 210,50, 197,70,RED);//Draw a black rectangle(x,y,l,r,c)epaper.drawRoundRect(75,75, 135,23,8,BLACK);epaper.drawRoundRect(76,76, 133,21,8,WHITE);epaper.drawRoundRect(77,77, 131,19,8,WHITE);stock_per =map(analogRead(A2),0,1023,0,100);epaper.fillRoundRect(78,78, 129*stock_per/100,17,7,RED);epaper.disString(185,1, 1,"20%",RED);//Refresh screen displayepaper.flush();delay(10000);}测试IoT程序(ARDUINO): [C++] 纯文本查看 复制代码?001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054055056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089090091092093094095096097098099100101102103104105106107108109110111112#include #include #include #include "DFRobot_Aliyun.h"#include "DFRobot_DHT11.h"#define DHT11_PIN D2 //定义传感器引脚,用于收集数据模拟库存数据/*配置WIFI名和密码*/const char * WIFI_SSID = "your ssid";const char * WIFI_PASSWORD = "your password";/*配置设备证书信息*/String ProductKey = "xxxxxxxxxx";String ClientId = "12345";String DeviceName = "STOCK";String DeviceSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";/*配置域名和端口号*/String ALIYUN_SERVER = "www.mer-corp.com";uint16_t PORT = 1883;/*需要操作的产品标识符(温度和湿度两个标识符)*/String TempIdentifier = "xxxxxxx";String HumiIdentifier = "xxxxxxxx";/*需要上报和订阅的两个TOPIC*/const char * subTopic = "xxxxxxxxxxxxxxxxxxxxxxxxx/property/set";//****setconst char * pubTopic = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/property/post";//******postDFRobot_Aliyun myAliyun;WiFiClient espClient;PubSubClient client(espClient);DFRobot_DHT11 DHT;void connectWiFi(){Serial.print("Connecting to ");Serial.println(WIFI_SSID);WiFi.begin(WIFI_SSID,WIFI_PASSWORD);while(WiFi.status() != WL_CONNECTED){delay(500);Serial.print(".");}Serial.println();Serial.println("WiFi connected");Serial.print("IP Adderss: ");Serial.println(WiFi.localIP());}void callback(char * topic, byte * payload, unsigned int len){Serial.print("Recevice [");Serial.print(topic);Serial.print("] ");for (int i = 0; i < len; i++){Serial.print((char)payload[i]);[/i][i] }[/i][i] Serial.println();[/i][i]}[/i][i]void ConnectAliyun(){[/i][i] while(!client.connected()){[/i][i] Serial.print("Attempting MQTT connection...");[/i][i] /*根据自动计算的用户名和密码连接到Alinyun的设备,不需要更改*/[/i][i] if(client.connect(myAliyun.client_id,myAwww.mer-corp.com,myAliyun.password)){[/i][i] Serial.println("connected");[/i][i] client.subscribe(subTopic);[/i][i] }else{[/i][i] Serial.print("failed, rc=");[/i][i] Serial.print(client.state());[/i][i] Serial.println(" try again in 5 seconds");[/i][i] delay(5000);[/i][i] }[/i][i] }[/i][i]}[/i][i]void setup(){[/i][i] Serial.begin(115200);[/i][i] /*连接WIFI*/[/i][i] connectWiFi();[/i][i] /*初始化Alinyun的配置,可自动计算用户名和密码*/[/i][i] myAliyun.init(ALIYUN_SERVER,ProductKey,ClientId,DeviceName,DeviceSecret);[/i][i] client.setServer(myAliyun.mqtt_server,PORT);[/i][i] /*设置回调函数,当收到订阅信息时会执行回调函数*/[/i][i] client.setCallback(callback);[/i][i] /*连接到Aliyun*/[/i][i] ConnectAliyun();[/i][i]}[/i][i]uint8_t tempTime = 0;[/i][i]void loop(){[/i][i] if(!client.connected()){[/i][i] ConnectAliyun();[/i][i] }[/i][i] /*一分钟上报两次温湿度(模拟福美记和福美佳两种商品的库存状态数据)信息*/[/i][i] if(tempTime > 60){[/i][i] tempTime = 0;[/i][i] DHT.read(DHT11_PIN);[/i][i] Serial.print("DHT.temperature=");[/i][i] Serial.println(DHT.temperature);[/i][i] Serial.print("DHT.humidity=");[/i][i] Serial.println(DHT.humidity);[/i][i] www.mer-corp.com(pubTopic,("{\"id\":"+ClientId+",\"params\":{\""+TempIdentifier+"\":"+DHT.temperature+",\""+HumiIdentifier+"\":"+DHT.humidity+"},\"method\":\"www.mer-corp.com"}").c_str());[/i][i] }else{[/i][i] tempTime++;[/i][i] delay(500);[/i][i] }[/i][i] client.loop();[/i][i]}利用阿里云生成安卓APP:本应用采取 DHT11 温湿度传感器获取环境温度和湿度模拟商品库存状态,并将数据传输给手机 App 显示,从而实现远程实时监控库存的功能。应用目标:通过手机 App 实时监测超市商品库存情况。 所需元件:DHT11 温湿度传感器 x1FireBettle Board-ESP32 x1FireBettle Gravity 扩展板 x1DHT11x1智能手机 x1硬件连接:把 FireBettle Gravity 扩展板直插在 FireBettle Board-ESP32 主板上,再把 DHT11 温湿度模块接在扩展板的 D2 数字引脚上,确保电源引脚、接地引脚和信号引脚都连接正确。按以下我亲自成功的步骤进行即可:(或者参考官方教程)1.打开浏览器,输入网址 https://www.mer-corp.com,登录并进入物联网平台.2.创建一个名为“库存监测”的产品,如下图所示,若产品创建成功,会自动出现在产品列表中; 3. 为库存监测产品定义功能名分别为“美福记”和“美福佳”的属性,自定义产品标识符,美福记取值范围为0~100,美福佳为 0~100,如下图所示。功能添加完毕后,会自动出现在自定义功能栏下。 4.为库存监测产品添加一个名为 STOCK 的设备,如下图所示,设备添加完毕后,会自动出现在设备列表中。 5.将库存监测产品导入“我的智能云家庭管理”项目中,如下图所示: 6.创建移动应用开发APP:选中左侧导航栏的移动应用开发在右侧单击打开“新增可视化应用”,如下图所示: 7.点击自定义页面后的+号,编辑,将“自定义新增页 1”改为库存监测,用鼠标将可视化组建下的实时曲线控件拖动到中间的页面上,如下图所示: 8.选中其中一个实时曲线,点击数据->配置数据,在弹出的选项框里选择相应的选项,并点击确定。 9.修改样式,常常保存。 10.配置首页模块。这一步是为了设置一个导航栏,链接到上面设计的“库存监测”。选中[功能]首页模块->列表,如下图所示,选中新增页面入口,在弹出的“页面入口 1”下,完成相应信息的选择,将其链接到刚才设计的“库存监测“页面,如下图所示,点击确定完成配置后,别忘了点击保存。 11.安装包生成。在编辑页面,点击构建,选择 Andriod 构建或 iOS 发构建,如下图所示: 12.手机扫码,APP到手了! 13.我定义的APP~“IoT标签”界面: 以上测试程序合并为最终程序(ARDUINO): [C++] 纯文本查看 复制代码?001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054055056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089090091092093094095096097098099100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166#include "Arduino.h"#include #include #include #include "DFRobot_Aliyun.h"#include "DFRobot_DHT11.h"#include "DFRobot_IL0376F_SPI.h"/////////////////////////////////////////////DFRobot_IL0376F_SPI epaper;#define DHT11_PIN D2 //定义传感器引脚,用于收集数据模拟库存数据#define EPAPER_CS D3 //定义电子墨水屏相关#define Font_CS D6#define EPAPER_DC D8#define EPAPER_BUSY D7///////////////////////////////////////////////*配置WIFI名和密码*/const char * WIFI_SSID = "XXXXXXX";const char * WIFI_PASSWORD = "XXXXXXXXXX";/*配置设备证书信息*/String ProductKey = "XXXXXXXXXXX";String ClientId = "12345";String DeviceName = "STOCK";String DeviceSecret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";/*配置域名和端口号*/String ALIYUN_SERVER = "www.mer-corp.com";uint16_t PORT = 1883;/*需要操作的产品标识符(温度和湿度两个标识符)*/String TempIdentifier = "meifuji";String HumiIdentifier = "meifujia";/*需要上报和订阅的两个TOPIC*/const char * subTopic = "/sys/XXXXXXXXXXX/STOCK/thing/service/property/set";//****setconst char * pubTopic = "/sys/XXXXXXXXXXX/STOCK/thing/event/property/post";//******postDFRobot_Aliyun myAliyun;WiFiClient espClient;PubSubClient client(espClient);DFRobot_DHT11 DHT;///////////////////////////////////////////////void connectWiFi(){Serial.print("Connecting to ");Serial.println(WIFI_SSID);WiFi.begin(WIFI_SSID,WIFI_PASSWORD);while(WiFi.status() != WL_CONNECTED){delay(500);Serial.print(".");}Serial.println();Serial.println("WiFi connected");Serial.print("IP Adderss: ");Serial.println(WiFi.localIP());}///////////////////////////////////////////////void callback(char * topic, byte * payload, unsigned int len){Serial.print("Recevice [");Serial.print(topic);Serial.print("] ");for (int i = 0; i < len; i++){Serial.print((char)payload[i]);[/i]}Serial.println();}///////////////////////////////////////////////void ConnectAliyun(){while(!client.connected()){Serial.print("Attempting MQTT connection...");/*根据自动计算的用户名和密码连接到Alinyun的设备,不需要更改*/if(client.connect(myAliyun.client_id,myAwww.mer-corp.com,myAliyun.password)){Serial.println("connected");client.subscribe(subTopic);}else{Serial.print("failed, rc=");Serial.print(client.state());Serial.println(" try again in 5 seconds");delay(5000);}}}///////////////////////////////////////////////////void setup(){Serial.begin(115200);//Select the corresponding pinsepaper.begin(EPAPER_CS, Font_CS, EPAPER_DC, EPAPER_BUSY); /*连接WIFI*/connectWiFi();/*初始化Alinyun的配置,可自动计算用户名和密码*/myAliyun.init(ALIYUN_SERVER,ProductKey,ClientId,DeviceName,DeviceSecret);client.setServer(myAliyun.mqtt_server,PORT);/*设置回调函数,当收到订阅信息时会执行回调函数*/client.setCallback(callback);/*连接到Aliyun*/ConnectAliyun();}//////////////////////////////////////////////////uint8_t tempTime = 0;uint8_t stock_per = 100;void loop(){if(!client.connected()){ConnectAliyun();}/*上报温湿度(模拟福美记和福美佳两种商品的库存状态数据)信息*/DHT.read(DHT11_PIN);Serial.print("DHT.temperature= ");Serial.println(DHT.temperature);Serial.print("DHT.humidity= ");Serial.println(DHT.humidity);www.mer-corp.com(pubTopic,("{\"id\":"+ClientId+",\"params\":{\""+TempIdentifier+"\":"+DHT.temperature+",\""+HumiIdentifier+"\":"+DHT.humidity+"},\"method\":\"www.mer-corp.com"}").c_str());client.loop();/*借用DH11传感器的温度数据显示福美记商品的库存状态信息*/stock_per = DHT.temperature;epaper.fillScreen(WHITE);//Displays a string, black fontepaper.disString(1,5, 2,"食",BLACK);epaper.disString(1,45, 2,"品",BLACK);epaper.disString(0,83, 1,"FOOD",BLACK);//Let me draw 2 red dotLinesfor(uint8_t x=33,y=0; y<103; y+=2){epaper.drawPixel(x,y,RED);epaper.drawPixel(x+1,y,RED);} epaper.disString(35,1, 1,"品名:",BLACK);epaper.disString(35,18, 1,"Name",BLACK);epaper.disString(35,35, 1,"价格:",BLACK);epaper.disString(35,52, 1,"Price",BLACK);epaper.disString(35,69, 1,"库存:",BLACK);epaper.disString(35,86, 1,"Stock",BLACK);epaper.disString(78,1, 1,"美福记",RED);epaper.disString(78,30, 2,"29.8",RED);epaper.disString(140,45, 1,"¥/Kg",RED);epaper.disString(185,1, 1,"20%",RED);// Draw a down arrowepaper.fillRect(191,18, 12,40,RED);epaper.fillTriangle(184,50, 210,50, 197,70,RED);//Draw a black rectangle(x,y,l,r,c)epaper.drawRoundRect(75,75, 135,23,8,BLACK);epaper.drawRoundRect(76,76, 133,21,8,WHITE);epaper.drawRoundRect(77,77, 131,19,8,WHITE);epaper.fillRoundRect(78,78, 129*stock_per/100,17,7,RED);epaper.disString(185,1, 1,"20%",RED);//Refresh screen displayepaper.flush(); delay(12000);}运行代码串口显示温度(库存)28: 再看电子墨水屏显示库存(指红色部分约28%):
    来自:Hackaday Prize 2019时间:2019-08-22 diy制作
  • beplay苹果-球形HUB 11口HUB USB中继器 科幻 AD版本 附PCB

    USB中继器 11口球形的USB中继器
    来自:DIY创意产品时间:2019-08-21 diy制作 usb hub
  • 空中飞鼠

    作品采用合泰32位HT32f1656单片机来核心控制与处理,通过IIC来读取mpu9250陀螺仪模块数据并经过单片机进行处理后通过蓝牙hid设备与PC或移动设备蓝牙匹配,来实现鼠标基础功能,并通过单片机程序设计增加了演示控制器、电子笔的功能。此外,对单片机留出接口,方便增加手势控制、性能优化等功能。
    来自:Hackaday Prize 2019时间:2019-08-20 diy制作
  • 基于FPGA的DDS信号发生器

    该项目是基于FPGA,并行传送数据,采用DAC908和OPA277外置硬件模块进行数模转换,可产生100hz—500khz的正弦波、方波、三角波、锯齿波,频率步进有100hz和10Khz两档;同时可产生二进制ASK和PSK信号(频率可调)。
  • 辉光钟电路板

    具体不多说 此板子适合在in14 in16 in18 qs30等辉光管上
销量
0
查看
5706
参数名 参数值
发布于 2019 年 04 月 22日
Moore8直播课堂

tracer