最近在DF商城看到个—模拟pH计,可用于测量液体的酸碱度。想想曾经在化学实验课上还是使用pH试纸来测量溶液酸碱度,测量不仅操作复杂而且也无法得到精确的pH数值。
如今使用DF出品的硬件以及文档资料便可轻松自制pH计,用此来测量常见液体的pH值,实验室级电极测量精度在±0.1@25℃完全满足使用需求。
大家都说柠檬很酸能酸掉大牙那种,今天我们就来看看到底有多酸—来实测柠檬的pH值。

一开始选用透明屏其实并没有特殊含义,只是最近才试玩了并且觉得显示效果不错,过程中朋友问我“你都选用透明屏了为什么不让它透明,不然你选择它的意义在那”。这灵魂拷问一时间我竟无以回答。后来经过一系列的构思设计以及朋友的建议,才有了最终的展示效果。

根据pH值颜色对照表,用灯带的颜色对应不同的pH值。


X-Y坐标显示测量pH值的变化曲线

横坐标对应显示pH值

DIY手持式pH计

材料清单:

  • Beetle ESP32-C3
  • 模拟pH计V2
  • OLED透明屏幕
  • RGB 全彩灯带
  • 3.7V电池
  • 外壳

硬件组装:

安装电源开关

用电磨机给外壳开孔

固定pH计的信号转接板

用塑料片固定透明屏

连接透明屏转接板

焊接且固定C3的扩展板

插上C3

连接3.7V电池

打孔安装灯带

额。。。翻车了,3颗坏2颗(南瘦)

算了,还是重新设计一下吧,绘制图纸

用激光切割亚克力板

在反面切割开孔并安装亚克力板
使用切割工具须小心注意安全

将前盖与后盖组合起来

在外壳正面贴上黑色贴纸

连接上pH计探头

到此你便得到了一个精雕细刻、流光溢彩、妙不可言的pH计!

最后有一说一柠檬真的很酸!

实用工具推荐
钩式测试夹
在pH计的制作过程中非常实用的工具,在测试与焊接前使用钩式测试夹,直接钩住焊孔,连接稳定解放双手;彩色的设计更容易区分电路。

程序

#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>#if defined ARDUINO_SAM_ZERO
#define OLED_DC  7
#define OLED_CS  5
#define OLED_RST 6
/*ESP32 */
#elif defined(ESP32)
#define OLED_DC  1
#define OLED_CS  7
#define OLED_RST 6
/*ESP8266*/
#elif defined(ESP8266)
#define OLED_DC  D4
#define OLED_CS  D6
#define OLED_RST D5
/*AVR series board*/
#else
#define OLED_DC  2
#define OLED_CS  3
#define OLED_RST 4
#endif
U8G2_SSD1309_128X64_NONAME2_1_4W_HW_SPI u8g2(/* rotation=*/U8G2_R0, /* cs=*/ OLED_CS, /* dc=*/ OLED_DC,/* reset=*/OLED_RST);
const uint8_t col[] U8X8_PROGMEM= {0x00,0x00,0x1F,0x0E,0x04}; #include "DFRobot_PH.h"
#include <EEPROM.h>#define PH_PIN A0
float voltage,voltage1,phValue,temperature = 25;
float acidVoltage = 2032.44;
float neutralVoltage = 1500.0;
int w;
int qw;float  w0,w1,w2,w3,w4,w5,w6,w7,w8;int p;float randNumber;//随机数DFRobot_PH ph;void setup(){Serial.begin(115200);ph.begin();u8g2.begin();u8g2.setFontPosTop();}void loop(){static unsigned long timepoint = millis();if(millis()-timepoint>1000U){                  //time interval: 1stimepoint = millis();//temperature = readTemperature();         // read your temperature sensor to execute temperature compensationvoltage = analogRead(PH_PIN)/4096.0*2900;  // read the voltage//  voltage = analogRead(PH_PIN)/1024.0*5000;phValue = ph.readPH(voltage,temperature);  // convert voltage to pH with temperature compensationSerial.print("temperature:");Serial.print(temperature,1);Serial.print("^C  pH:");Serial.print(phValue,2);//voltage1=voltage-1500.00;
voltage1=voltage*0.001;Serial.print("  voltage:");Serial.print(voltage1);Serial.println("mV");}ph.calibration(voltage,temperature);           // calibration process by Serail CMDw=map(phValue, 0, 15, 5, 99);qw=map(phValue, 0, 15, 2, 39);w8=w7;
w7=w6;
w6=w5;
w5=w4;w4=w3;w3=w2;w2=w1;w1=w0;w0=qw;u8g2.firstPage();   do{u8g2.drawLine(5, 54, 104, 54);u8g2.drawLine(50, 0, 50, 40);u8g2.drawLine(50, 40, 120, 40);//u8g2.clearBuffer();        u8g2.setFont(u8g2_font_t0_11b_tr  );  u8g2.drawStr(5,55,"0");  u8g2.drawStr(50,55,"7");u8g2.drawStr(95,55,"14");//  u8g2.drawStr(w,50,"^");
u8g2.drawXBMP( /* x=*/w , /* y=*/49 , /* width=*/5 , /* height=*/5 , col );u8g2.drawLine(58, w7, 50, w8);
u8g2.drawLine(66, w6, 58, w7);
u8g2.drawLine(74, w5, 66, w6);
u8g2.drawLine(82, w4, 74, w5);u8g2.drawLine(90, w3, 82, w4);
u8g2.drawLine(98, w2, 90, w3);
u8g2.drawLine(106, w1, 98, w2);
u8g2.drawLine(114, w0, 106, w1);u8g2.setFont(u8g2_font_HelvetiPixelOutline_tr);u8g2.setCursor(/* x=*/1, /* y=*/10);    //Define the cursor of print function, any output of the print function will start at this position.u8g2.print(phValue);u8g2.sendBuffer();          } while( u8g2.nextPage() );// delay(1000);}float readTemperature(){//add your code here to get the temperature from your temperature sensor}

用透明屏+pH电极做一个pH计相关推荐

  1. dw做php怎么做表格透明,怎么用DW做一个表格?用DW做表格方法图解

    在平时我们做网店装修时,我们经常会遇到做一个小表格,例如我们做一个页面的关联营销,需要做一个表格,然后里面添加我们的图片,价格,产品标题等等,那么问题来了,在我们不懂html代码的情况下,我们怎样用D ...

  2. 罗斯蒙特1056ph电极_ROSEMOUNT 罗斯蒙特 PH电极 0396R-10-2(0396R-10-2)

    ROSEMOUNT 罗斯蒙特 PH电极 0396R-10-21-54 ROSEMOUNT分析仪1056-01-22-38-HT ROSEMOUNT分析仪1056-03-22-38-AN ROSEMOU ...

  3. 罗斯蒙特1056ph电极_Rosemount/罗斯蒙特1056-02-20-36-AN-UL 分析仪PH电极

    1056-02-20-36-AN-UL 396R-10-21-54ROSEMOUNT罗斯蒙特电极现货销售396R-10-21-54 原装进口,价格最低,及时报价 罗斯蒙特浊度电极8-0108-0003 ...

  4. 罗斯蒙特1056ph电极_罗斯蒙特PH电极0396R-10-21-54

    ROSEMOUNT罗斯蒙特 ROSEMOUNT 分析仪表,ROSEMOUNT PH电极,ROSEMOUNT 电导率电极, 罗斯蒙特溶解氧电极,罗斯蒙特1056电导率变送器. 北京英斯路 董婧 010- ...

  5. 罗斯蒙特PH电极1056-01-22-32-AN智能型四线制变送器规格及特点

    罗斯蒙特PH电极1056-01-22-32-AN智能型四线制变送器规格及特点 1056 智能型四线制变送器: 1056 双输入变送器可以单传感器或双传感器输入,并且对两个测量的选择不设限,因此降低了每 ...

  6. 张勇:做一个透明经济体的CEO

    2007年的一天,马云和新进阿里巴巴的一批高管在西湖边的湖畔居喝茶,问大家为什么来阿里.时任淘宝CFO的张勇这样回答:"我已经干过一个30亿美金的CFO了,想干个300亿美金的." ...

  7. 做一个墨水屏电子钟,炫酷!

    这周和大家介绍一个漂亮的墨水屏电子钟,兼具气象站功能(可以通过GPS自动设置),用4节AAA电池可以续航6个月左右,而且,为了保证安全和可靠性,它不需要任何网络连接. 特点包括: 自动设置(通过GPS ...

  8. 用 python 做一个动态可视化交互大屏

    你可能经常会在公司前台.展会.路演时看到可视化数据的交互大屏.今天我们就来用 python 做一个动态可视化的交互大屏图. 一.项目背景 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数 ...

  9. E+H PH电极CPF81-NN11A3

    E+H PH电极CPF81-NN11A3 废水,底漆和金属的紧凑型电极 Orbipac CPF81是在恶劣环境下进行pH测量的模拟简单解决方案.即使在纤维介质中和高流量下,它也可以可靠,准确地进行测量 ...

  10. LED透明屏多少钱一平方?—实用LED透明屏价格表参考

    透明LED显示屏主要应用在玻璃幕墙.商业橱窗.舞台.室内空间等领域.LED透明屏多少钱一个平方?对于意向的项目朋友来说,一份详细的LED透明屏报价方案,可以更好帮助你了解价格构成信息: 一.LED透明 ...

最新文章

  1. HTML5的学习,各个标签的尝试
  2. mac os下valgrind的安装
  3. 机器学习笔记:过拟合和欠拟合
  4. mysql频繁查询出错_Mysql数据库频繁查询错误解决方案
  5. 不扯概念,用例子演示什么是脏读,不可重复读,幻读?
  6. mysql 替换 汉字_MySQL替换文字
  7. haproxy 配置 说明
  8. 统计学习方法---牛顿法
  9. Django 阅读笔记 - Cache
  10. JAVA与SQL对应数据类型转换表
  11. 西门子s7-200解密软件下载_高邮哪里有西门子三菱PLC编程学习班?多久能学会?...
  12. bugku-writeup-Crypto-Ook.
  13. RocketMQ源码解析之消息生产者(获取topic路由信息)
  14. 1.Lunix系统安装及重置root密码
  15. lavarvel框架路由
  16. 使用python-control库实现MATLAB自动控制原理常用函数:Bode图 Nyquist图 根轨迹
  17. VBA 连接Oracle 数据库
  18. 人工智能基础:机器学习常见的算法介绍
  19. 中字符转换中文乱码的处理方法
  20. [渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(1)

热门文章

  1. 装XP的电脑运行慢与实用解决办法
  2. WinZip 6 for Mac(压缩压解工具)附注册码 v6.5.4149破解版
  3. 什么是php递归算法_PHP递归算法(三)
  4. 简单原生js代码实现下拉菜单
  5. 南大周志华、俞扬、钱超最新力作:演化学习:理论与算法进展一书导读
  6. loadrunner批量添加压力
  7. 20190303-AJAX教程
  8. CTF解题记录-Misc-百度识图
  9. 程序员的你不可不知的数据库northwind
  10. 重置uchome密码