diff --git a/README.md b/README.md index 22afe2fa..1167541a 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ Check out [IOT DEVICE PULLS ITS WEIGHT IN HOME BREWING](http://hackaday.com/2017 ## There are FAQs: ### [Deutsche FAQ] - docs/FAQ.md ### [English FAQ] - docs/FAQ-en.md +### [中文 FAQ] - docs/FAQ-zh.md ## Documentation in other languages @@ -33,6 +34,8 @@ Check out [IOT DEVICE PULLS ITS WEIGHT IN HOME BREWING](http://hackaday.com/2017 ### [Documentação em Português (trabalho em andamento)](docs/README_pt.md) 🇧🇷 +### [中文文档 (完善中)](docs/README_zh.md) CN + *** ***Say thanks with a beer*** :beers: @@ -110,12 +113,17 @@ Check out [IOT DEVICE PULLS ITS WEIGHT IN HOME BREWING](http://hackaday.com/2017 ## Inhaltverzeichnis -- [iSpindel - *DIY electronic Hydrometer*](#ispindel-diy-electronic-hydrometer) +- [iSpindel - *DIY electronic Hydrometer*](#ispindel---diy-electronic-hydrometer) - [Featured in german brewing magazine Braumagazin.de](#featured-in-german-brewing-magazine-braumagazinde) + - [There are FAQs:](#there-are-faqs) + - [[Deutsche FAQ] - docs/FAQ.md](#deutsche-faq---docsfaqmd) + - [[English FAQ] - docs/FAQ-en.md](#english-faq---docsfaq-enmd) + - [[中文 FAQ] - docs/FAQ-zh.md](#中文-faq---docsfaq-zhmd) - [Documentation in other languages](#documentation-in-other-languages) - [English Documentation (work in progress) 🇺🇸](#english-documentation-work-in-progress-) - [Nederlandse Vertaling (lopende werkzaamheden) 🇳🇱](#nederlandse-vertaling-lopende-werkzaamheden-) - [Documentação em Português (trabalho em andamento) 🇧🇷](#documentação-em-português-trabalho-em-andamento-) + - [中文文档 (完善中) CN](#中文文档-完善中-cn) - [Firmware download here](#firmware-download-here) - [ChangeLog](#changelog) - [Inhaltverzeichnis](#inhaltverzeichnis) diff --git a/docs/Calibration_zh.md b/docs/Calibration_zh.md new file mode 100644 index 00000000..c5d47bc3 --- /dev/null +++ b/docs/Calibration_zh.md @@ -0,0 +1,95 @@ +# 校准 + +> iSpindle 漂浮在麦汁当中的倾斜角度可以转换成柏拉图度(ºPlato)、比重值(SG)或者其他单位。为了能够做到这一点,应该在 iSpindle 的倾斜度与所选择单位之间建立起参照.。必须对参考值进行测量,并使用 Excel 表格制作图表以及生成公式。 Excel 会计算 iSpindle 的倾斜角度与柏拉图度、比重值或其他单位之间的关系。 由于每个自己做的 iSpindle 会有所不同,因此需要对单独每个 iSpindle 进行参考测量,但只需要进行一次。 + +*** + +# 目录 +- [简易方法 (I)](#easy-method-(I)) +- [改进方法利用快速发酵 (II)](#improved-method-using-fast-fermenting-(II)) +- [ Excel 图表公式](#formula) + +*** + +## 简易方法 (I) + +建议您将 iSpindel 与 [Ubidots](https://ubidots.com/) 连接,方便读取测量的倾斜角度。此外,明智的做法是更改 iSpindel 中的设置,以便每 20 秒发送一次新的读数。在如此短的时间间隔内,可以在 [Ubidots](https://ubidots.com/) 网站上轻松地跟踪测量结果。 + +1. 将 iSpindel 放入干净的清水中 (柏拉图 0 度,比重值 1.000) +> ***记下 iSpindel 的倾斜角度*** + +2. 制作达到最大预期密度的糖水溶液。如果你要酿造初始比重较高的烈性啤酒,你应该在这个高比重范围内的预期参考测量值。对于大多数酿酒师来说,比重在 1.085 左右或 柏拉图 20 度 左右的目标密度溶液就够了。 +> *糖溶液示例: 400 毫升 和 100 克糖* +> ***测量比重值或者柏拉图度并和 iSpindel 倾斜角度一起记下来*** + +3. 用水稀释上述溶液,直到它达到 柏拉图 15 度 或者 比重 1.061 +>*示例:用 166 毫升水稀释第 2 点的溶液* +>***测量比重值或者柏拉图度并和 iSpindel 倾斜角度一起记下来*** + +4. 从上一点稀释溶液,直到达到约 柏拉图 10 度 或者 比重 1.040 +>*示例:用 333 毫升水稀释第 3 点的溶液* +>***测量比重值或者柏拉图度并和 iSpindel 倾斜角度一起记下来*** + +5. 从上一点稀释溶液,直到达到约 柏拉图 7.5 度 或者 比重 1.030 +>*示例:用 333 毫升水稀释第 4 点的溶液* +>***测量比重值或者柏拉图度并和 iSpindel 倾斜角度一起记下来*** + +6. 从上一点稀释溶液,直到达到约 柏拉图 5 度 或者 比重 1.020 +>*示例:用 666 毫升水稀释第 5 点的溶液* +>***测量比重值或者柏拉图度并和 iSpindel 倾斜角度一起记下来*** + +7. 从上一点稀释溶液,直到达到约 柏拉图 2.5 度 或者 比重 1.010 +>*示例:用 2000 毫升水稀释第 6 点的溶液* +>***测量比重值或者柏拉图度并和 iSpindel 的倾斜角度一起记下来 +>在 Excel 表格中输入测量点(见下文),此 Excel 表格将计算出参考公式*** + +*** + +## 改进方法利用快速发酵 (II) + +这种方法更为精确,因为它会考虑到发酵过程中产生的二氧化碳对 iSpindel 造成的影响。 + +建议您将 iSpindel 与 [Ubidots](https://ubidots.com/) 连接,方便读取测量的倾斜角度。此外,明智的做法是更改 iSpindel 中的设置,以便每 20 秒发送一次新的读数。在如此短的时间间隔内,可以在 [Ubidots](https://ubidots.com/) 网站上轻松地跟踪测量结果。 + +1. 将 iSpindel 放入干净的(自来)水中 (柏拉图 0 度,比重值 1.000) +>***记下 iSpindel 测量的倾斜角度*** + +2. 制作达到最大预期密度的糖水溶液。如果你要酿造初始比重较高的烈性啤酒,你应该在这个高比重范围内的预期参考测量值。对于大多数酿酒师来说,比重在 1.085 左右或 柏拉图 20 度 左右的目标密度溶液就够了。 +>*糖溶液示例: 800 毫升 水 + 200 克 冰糖* + +3. 加入酵母到糖溶液,让 iSpindel 在溶液中漂浮 +>***测量比重值或者柏拉图度并和 iSpindel 倾斜角度一起记下来*** + +4. 每隔一段时间测量液体的比重值以及 iSpindle 相应的倾斜角度,直至发酵结束。 +>***在 Excel 表格中输入记录下来的测量值,得出校准曲线公式*** +> +>***注意:如果使用折光仪来测量白利糖度,则必须重新计算得到的测量值,加上酒精度数以进行校正*** + +*** + +# 公式 + +- ## [在线比重校准工具](http://www.ispindel.de/tools/calibration/calibration.htm) + +可以在不同的选项 比重/柏拉图或者白利糖度 中输入相对应的测量值以及倾斜角度。它将计算出第二回和第三回的角度公式,获取倾斜角度的读数就可以预测出比重值或柏拉图度。必须在固件中输入角度公式才能得到比重值或柏拉图度的数值。 + +*** + +- ## Excel 表格 + +获取的测量值可以输入到Excel表格中,该表格将计算出一个公式来预测给定倾斜值的比重值或柏拉图度。这个公式必须输进固件配置中,以便能够获取比重值或柏拉图度的读数。 +其它读数例如表观衰减度或者酒精百分比,可以通过使用 [Ubidots](https://ubidots.com/) 中的 'Derived Variable'(衍生变量)以类似的方式获得。 + +1. 首先在 Excel 中输入测量值: +[下载 Excel 表格](https://github.com/universam1/iSpindel/blob/master/docs/Kalibrierung_zh.xlsm) +2. 通过点击按钮启动宏 **公式更新** ,接着公式将会被更新。 +![Excelcalc](/pics/Excelcalc.jpg) +3. 在 [Ubidots](https://ubidots.com/) 账号中必须添加 **Derived Variable** (衍生变量)。这是一个以其他变量为来源进行计算的变量,这可以通过执行接下来的步骤来完成。 +4. 在 [Ubidots](https://ubidots.com/) 中转到 **Source** 这一项 +5. 选择 iSpindel 为来源 +6. 点击 **(+) 添加变量** +7. 选择 **Derived** 这一项 +![Derived](/pics/Ubiderived.jpg) +1. 现在你可以将 Excel 中的公式填写进去。公式中 ***(tilt)*** 的部分必须被替换掉。为此请单击 ***insert variable*** 然后选取 **tilt**,给新创建的变量一个有意义的名字,比如比重或柏拉图。 +![Ubiplato](/pics/Ubiplato.jpg) +9. 在 **Dashboard** 你可以创建测量数据的图形演示。 diff --git a/docs/FAQ-zh.md b/docs/FAQ-zh.md new file mode 100644 index 00000000..8430c0dd --- /dev/null +++ b/docs/FAQ-zh.md @@ -0,0 +1,94 @@ +# 常见问题解答 + +- ***我是否必须通过增加克重来平衡 iSpindle ?*** +将螺母、铅球等重物添加到底部,直到与垂直方向倾斜 25° ,是使 iSpindle 功能正常运行必不可少的条件。另见文档里的示例图片,一般 20g 左右就够了,+/- 5° 偏差通常仍然使可以接受的。如果太接近 30 度,在高比重测量时就会太接近 90 度(你的初始比重将不准确);如果太接近 15 度,在低比重测量时就会太接近 0 度(你将无法读取低于 0.95 的比重值)。 + +- ***它没有在运行, 我看不到任何反应*** +找出 iSpindle 正在发生什么的最好方法是读取其日志,这可以通过像 HTerm 或 Arduino IDE 这样的串行监视器来完成。通过 Micro USB 连接设备,然后用上面的串口监视器打开 £COM 端口并读取它。设置波特率为 `115200` ,将给黑暗带来光明。 + + 这里有一个油管上的教程 (德语): https://youtu.be/6xDW5GbIbUw + +- ***如何进入 iSpindel 设置模式入口*** +打开设备, 按复位键 3-4 次,建立一个接入点。这就意味着你将看到一个新的 Wif i网络 "iSpindel_######" ,你可以用你的电脑、智能手机或平板电脑进行连接。网页浏览器应该会自动将您重定向到页面 [http://192.168.4.1](http://192.168.4.1), 如果不是,请自行导航到那里。 +如果你在设置模式的界面, 在 `配置` 一项里可以输入你的密钥和无线密码。然后点击 `保存` ,接着它会把数据上传到 Ubidots。这意味着 **正常操作下无法访问 iSpindel **,直到你再次手动启动设置模式。 + +- ***为什么我无法在正常操作中访问 iSpindle*** +电池寿命的关键部分是 iSpindle 处于活动状态的时间越短越好,并且要尽可能长时间处于深度睡眠状态!主动运行的 Wemos 需要超过 300 倍的电量,所以这个技巧对于实现目标运行时间是必不可少的。 + +- ***Micro USB 端口是用于程序更新?*** +没错,请参阅固件更新 + +- ***我如何校准电压显示?*** +从固件 3.0 开始,你可以调整转换系数。默认情况下的使用因子是 191.8,可以通过下面的公式进行调整: +```` +(displayed voltage / measured voltage) * current factor (191.8) = new factor + +新的系数应介于当前系数之间,或多或少约为20% (191.8*0.8 - 191.8*1.2) +```` +- ***我可以在不锈钢容器里连接上吗?信号是否有可能穿透法拉第牢笼?*** +为了达到足够的 WLAN 信号强度,你可以做以下事情: + + - 打开法拉第笼,将盖子从桶身电性分离开来,通过在两部分之间涂抹硅酮密封剂来实现。 + - 使用外部天线,从两端剥去的屏蔽电缆(即 Lambda/4),并让另一端朝向桶内,正好3.2毫米。这是从内部被动传递到外部,反之亦然。一个很好的例子可以在这里找到:http://hobbybrauer.de/forum/viewtopic.php?p=208782#p208782 + - 在桶旁边安装一个 wifi 放大器以增加信号强度 + +- ***如果我在刷入固件后 iSpindel 无法正常工作,我该怎么办?*** + +由于不明的原因,有时看起来 iSpindel 刷入过程非常顺利。但实际上并不是的,这可能导致各种不可预测的状况。 +状况的发生可能是但不限于以下几种: +- Wemos 的蓝色 LED 灯一直常亮 +- 部分配置未被保存,如倾角偏移 + +解决这个问题的办法是,在给 iSpindel 刷入固件之前,先初始化 wemos 的内存(就像你在使用一个新的硬盘之前对它进行格式化一样)。 + +以下是如何使用 NODEMUCU FIRMWARE PROGRAMMER 进行操作 + +初始化: + +在 Config 项 +```` + 1st column 2nd column +1st Line: INTERNAL://NODEMCU 0x00000 +2nd Line: INTERNAL://BLANK 0x01000 +```` +在 Advanced 项 +设置 Baudrate 为 115200 + +在 Operation 项 +点击 Flash(E),然后等待固件刷入完成 + +要和 iSpindel 的固件一同刷入: + +在 Config 项 +```` + 1st column 2nd column +1st Line: C:\iSpindel-6.0.6.bin 0x00000 +```` +替代 “C:\iSpindel-6.0.6.bin” 到你下载固件文件的路径,确保清除掉 Config 项里面的所有其它行,只有固件路径前面的复选框被选中。 + +在 Advanced 项 +设置 Baudrate 为 115200 + +在 Operation 项 +点击 Flash(E),然后等待固件刷入完成 + +现在它应该可以正常工作了。 + +来源: https://www.homebrewtalk.com/forum/threads/ispindle-diy-electronic-hydrometer.598187/page-19#post-8366882 + +- ***改进过后仍有问题*** +这些是 "经常建议的改进",其问题在一开始并不明显;勇于尝试,但要时刻关注问题的出现: + +1. "让我们把它密封起来,并使用无线充电!" + + a) Qi 充电器比瓶胚大,所以需要被弯曲。部分这样做会导致充电过热或着火,另一些可以正常工作但对 Qi 充电板的位置会 *非常* 挑剔。 + 有些感应式充电器能放在盖子里面 [不是 Qi] (例如: https://amzn.to/3wslaLO , 但还没有尝试过)。 + *试试看,但要注意热量!* + + b) 瓶胚的密封是在顶层内部, 酵母和细菌会进入 "螺纹区域" ,无法清洗掉。现在的建议是将瓶盖取下来,分别对盖子和瓶胚进行清洗、消毒。 + +2. 主发酵期产生的二氧化碳不会影响读数吗? + 商业版本的机器肯定也会有的。如果你认为它过早地沉淀下来,摇晃并搅拌你的麦汁,看看会发生什么。 + +3. iSpindel 能否用于加压发酵罐? + 你可以试试... 常规的瓶胚密封是 "在里面" 的,这样随着内部压力的增加,它的密封性能会更好 (苏打被碳酸化),这是一个错误的方向,但是螺纹的确可以密封,所以... diff --git a/docs/Firmware_zh.md b/docs/Firmware_zh.md new file mode 100644 index 00000000..879f5044 --- /dev/null +++ b/docs/Firmware_zh.md @@ -0,0 +1,53 @@ +# 固件 + +## 通过 网页接口 刷入 + +- 从项目仓库里下载最新的 .bin 固件 +### https://github.com/universam1/iSpindel/releases + +- 在 `Maintenance` 一项里选择固件文件并按更新 + +![flash web](/pics/maintenance.png) + +## 通过 USB 刷入 (Windows) + +- 下载并运行:[NodeMCU-Flasher](https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32 从 [/bin 路径文件夹](https://github.com/universam1/iSpindel/raw/master/bin/) +> 重要提示:选择 “下载” 按钮以正确下载文件 +- 选择 Wemos 的 COM 端口 +- 使用 ```Config``` 选项 悬着第一个 ```.bin``` 固件 +- 点击 ```Flashen``` 选项显示进度条 +- 刷入固件后, 点击 ```RESET``` 重置键 + +> 当 LED 灯以 1 秒的间隔闪烁时,```配置模式``` 会处于激活状态,可以通过退出设置模式或等待五分钟超时来退出该模式。 + +## 通过 USB 刷入 (Linux) + +- 下载并解压最新版本的 [esptool](https://github.com/igrr/esptool-ck/releases),然后使用终端命令将目录更改为新解压的目录,示例: +``` + wget https://github.com/igrr/esptool-ck/releases/download/0.4.12/esptool-0.4.12-linux64.tar.gz + tar xf esptool-0.4.12-linux64.tar.gz + cd esptool-0.4.12-linux64 +``` + +- 从 [iSpindel Releases page](https://github.com/universam1/iSpindel/releases) 下载最新的固件,例如: +``` + wget https://github.com/universam1/iSpindel/releases/download/5.6.1/firmware.bin +``` + +- 确定设备 iSpindel 的路径,这可以通过列出插入 iSpindel 前后的所有串行 USB 设备找到,比如可能在 iSpindel 插入之前。 +``` +ls -l /dev/ttyUSB* +ls: cannot access '/dev/ttyUSB*': No such file or directory +``` + +在 iSpindel 插入之后: +``` +ls -l /dev/ttyUSB* +crw-rw-rw- 1 root dialout 188, 0 Dec 11 23:20 /dev/ttyUSB0 +``` +上面显示 iSpindel 设备名称是 /dev/ttyUSB0 + + +- 用找到的 iSpindel 设备名称 (在这个例子是 /dev/ttyUSB0) 通过运行 esptool 指令来上传固件: + +```./esptool -vv -cd nodemcu -cb 921600 -cp /dev/ttyUSB0 -ca 0x00000 -cf ./firmware.bin``` diff --git a/docs/Kalibrierung_zh.xlsm b/docs/Kalibrierung_zh.xlsm new file mode 100644 index 00000000..076da28c Binary files /dev/null and b/docs/Kalibrierung_zh.xlsm differ diff --git a/docs/Parts_zh.md b/docs/Parts_zh.md new file mode 100644 index 00000000..6835d097 --- /dev/null +++ b/docs/Parts_zh.md @@ -0,0 +1,36 @@ +# 组件 + +需要以下部件: + +## 塑料圆形容器 + +- 塑料圆柱体 `瓶胚`,这些容器可在 eBay 上以 PET 定制件的形式买到。 + +*** + +## 草图 + +- 塑料模板 [下载](https://github.com/universam1/iSpindel/raw/master/drawer/) + +![Sled](/pics/Schlitten_cad.jpg) +*** + +## 电池盒 + +- `18650 锂电池` (例如` 松下 NCR18650B`) + +*** + +## 零部件 + +- [Wemos D1 mini](https://wiki.wemos.cc/products:d1:d1_mini) 开发板 +- `GY-521` 陀螺仪和加速传感器 ( MPU-6050 在适合的分线板上) +- [DS18B20 温度传感器](https://www.maximintegrated.com/en/products/analog/sensors-and-sensor-interface/DS18B20.html) +- 3x4cm 方形网格或印制电路板 +- 电阻 +  - 4k7 ohms +  - 220k ohms +  - 330 ohms or BAT43 二极管 +- [微型开关](http://www.reichelt.de/Schiebeschalter/SS-ESP201/3/index.html?ACTION=3&LA=446&ARTICLE=112179&GROUPID=7595&artnr=SS+ESP201&SEARCH=SS%2BESP201) +或 电路板上的 [换簧器](http://www.reichelt.de/Reedrelais/KSK-1C90/3/index.html?ACTION=3&LA=446&ARTICLE=27696&GROUPID=7617&artnr=KSK+1C90&SEARCH=KSK%2B1C90) +- 锂电充电板 `TP4056` (推荐 6 针) \ No newline at end of file diff --git a/docs/README_zh.md b/docs/README_zh.md new file mode 100644 index 00000000..2a92df1d --- /dev/null +++ b/docs/README_zh.md @@ -0,0 +1,189 @@ +# iSpindle 文档 + +***翻译工作正在进行中,欢迎大家贡献力量!此翻译基于英语文档进行翻译,可能与德文原文不一致,请悉知*** + + +iSpindle (ispindel) 文档 +=================== + +**DIY 无线比重计** +***请考虑支持这个项目*** + +[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.me/universam) + + +![iSpindle in clean water](/pics/floating.jpg) +![Dashboard](/pics/Dashboard.jpg) + + +## 目录 + + +- [常见问题](FAQ-zh.md) +- [组件](Parts_zh.md) +- [校准](Calibration_zh.md) +- [电路图](circuit_diagram_zh.md) +- [FHEM 上传](upload-FHEM_zh.md) +- [Ubidots 脚本](ubidotsscripting_zh.md) + + +- [iSpindle 文档](#ispindle-文档) + + - [目录](#目录) + - [声明许可](#声明许可) + - [原理](#原理) + - [*稳心高度*](#稳心高度) + - [构造](#构造) + - [详见 组件](#详见-组件) + - [详见 零部件](#详见-零部件) + - [详见 电路图](#详见-电路图) + - [详见 iSpindel 面包板接入](#详见-ispindel-面包板接入) + - [草图](#草图) + - [配置](#配置) + - [Ubidots](#ubidots) + - [设置模式](#设置模式) + - [Blynk](#blynk) + - [演示案例](#演示案例) + - [使用你自己的程序](#使用你自己的程序) + - [图形用户界面](#图形用户界面) + - [校准](#校准) + - [Ubidots 曲线图](#ubidots-曲线图) + - [CraftBeerPi](#craftbeerpi) + - [软件](#软件) + - [固件刷入](#固件刷入) + + +*** + +## 声明许可 + + +> 作者保留所有权利,特此禁止任何违反适用专利的商业用途 + +*** + +## 原理 + +受 [Alternative to the Spindle](http://hobbybrauer.de/forum/viewtopic.php?f=7&t=11157&view=unread#p170499) 帖子启发, 诞生了采用低成本组件来复刻商业电子倾斜测量仪器的想法。 + +该系统是基于倾斜圆柱体的应用,这是一个巧妙而简单的概念。你不需要任何其它外部的参考(重力除外),而且圆柱体也是非常容易保持清洁的。倾斜角度的变化和浮力有关,因此与糖含量直接相关。质量中心与浮力中心之间会形成一个角度公式,取决于所在液体的密度。 + + +![Kränung](/pics/kraengung.jpg) + +因此我们的想法是将一个带有加速度传感器以及温度传感器的无线物联网设备放进一个能浮起的圆柱体当中。该系统利用传感器进行测量,每隔x分钟连接到 Wifi 并将其倾斜角度、即时温度以及电池电量发送到云端服务器,比如 Ubidots.com ,以便存储数据。 + +在 30 分钟的更新间隔下,它可以实现 3 个月左右的电池寿命! + +### *稳心高度* + +实际上这就是 “稳心”,圆柱体会随着液体密度与其质量中心和浮力中心的变化而倾斜,倾斜角度可以被测量。 + +调整圆柱体可以通过在底部增加些少许克重,使圆柱体更加直立,或在盖子增加几克,使其更加倾斜。 + +软件会从 XYZ 加速器得到的 X 和 Y 的数值计算欧拉角度并形成绝对角度,我们通过柏拉图度、比重值或类似相关的测量参考值的校准参数来进行计算。 + + +*** + +## 构造 + +### 详见 [组件](Parts_zh.md) + +### 详见 [零部件](Parts_zh.md) + +### 详见 [电路图](circuit_diagram_zh.md) + +### 详见 [iSpindel 面包板接入](iSpindelbreadboard_zh.md) + +*** + +### 草图 +- 如下图所示,3D打印的板用来固定塑料外壳内部的电子元件和电池,该 3D 模型可以在代码仓库里找到 +![Sled](/pics/Schlitten_cad.jpg) +![Assembled](/pics/assembled2.jpg) +![Assembled](/pics/assembled.jpg) + + + + + +*** + +## 配置 + +### Ubidots + +- 首先,必须在 [Ubidots.com](https://ubidots.com) 创建一个免费的帐户 +- 接下来, 你需要转至菜单 ```API Credentials``` 以获取 ```Token``` 用于 iSpindel 授权向 Ubidots 账户写入数据。 +***把它记下来*** +![Token](/pics/UbiToken.jpg) + +### 设置模式 + +通过按下 ```复位按钮``` 创建一个接入点,将允许你进行必要的设置来配置设备。在 `操作模式` 下的接入口是不显示的而且也不可访问,因为设计的原则是基于尽可能地缩短活跃时间。基本上它从醒来到发送数据并再次深度睡眠,需要不到三秒的时间,这样能使系统长时间运行下去。 + +> ```iSpindel``` 通过以 1s 的间隔闪烁 LED 指示灯显示进入 `配置模式` 。 +通过保存您的设置或等待五分钟的超时,它将结束访问接入点并尝试回到 `操作模式` 。 + + + ![Setup](/pics/configuration.png) + + ![AccessPoint](/pics/AP.png)![Portal](/pics/Portal.png) + + ![Info](/pics/info.png) + +> 在 Ubidots ```Sources``` 一栏你可以监控更新的数据,iSpindel 会自行创建一个新的设备. +现在你可以在 ```Dashboard``` 中创建好看的图表。 + +### Blynk + +#### 演示案例 + +* 以这个例子来说,你需要 1800 (4x200 + 100 + 900) 个能量值才可以使用免费的版本; +* 下载 Blynk 应用程序:[Android](http://j.mp/blynk_Android) [iOS](http://j.mp/blynk_iOS) +* 扫描点击二维码图标并将相机对准底下的代码。 +

+ + + +* 请享用! + +#### 使用你自己的程序 + +* 如果你想使用自己的应用程序或者尝试进行修改,传输端口的定义如下: +1. V20 - 不含单位的温度; +2. V30 - 不含单位的电量; +3. V1 - 倾斜角度数值; +4. V2 - `摄氏/华氏/开尔文` 温度数值; +5. V3 - 电量数值 `伏特`; +6. V4 - 重力; + +*** +## 图形用户界面 + +### 校准 + +> 为了将测量的 iSpindle 角度转换为柏拉图度(°Plato)、比重值(SG)或其他单位,有必要首先对传感器进行校准,通过已知比重的糖溶液进行多次参考测量。然后可以将这些参考测量值转换为一个数学函数,存储起来以供后续的测量和显示。由于每个自行组装的 iSpindle 会有不一样的测量数值,所以每个设备在组装或重装后必须单独进行校准,以获得准确的测量结果,详细的过程如下所示。 + +[校正程序](Calibration_zh.md) + +### Ubidots 曲线图 + +- [柏拉图度计算公式](Calibration_zh.md#forumla) + +### CraftBeerPi + +[CraftBeerPi](https://github.com/universam1/iSpindel/issues/3) +*** + +## 软件 + +### 固件刷入 + +[刷入固件](Firmware_zh.md) + +***如果你喜欢, 请多多支持*** :beers: + +[![Donate](https://www.paypalobjects.com/de_DE/DE/i/btn/btn_donate_LG.gif)](https://www.paypal.me/universam) diff --git a/docs/circuit_diagram_zh.md b/docs/circuit_diagram_zh.md new file mode 100644 index 00000000..08a16c67 --- /dev/null +++ b/docs/circuit_diagram_zh.md @@ -0,0 +1,39 @@ +# 电路图 + +![Schematic](/pics/schematic-en.png) + +## 连接分配 + +### GY-521 + +- D4 -> SCL of the GY-521 +- D3 -> SDA of the GY-521 +- 5V -> VCC +- GND -> GND +- 剩余的端口不被占用 +- 拆下 GY LED 的电阻!(不再需要) + +### 电阻 + +- BAT43 或者更好的肖特基二极管 (负极 to D0) 或在 D0 与 RST 之间的 330 欧姆电阻 +- 230k ohms of A0 -> 5V +- 4k7 ohms of D6 -> 5V + +### DS18B20 + +- DQ goes to D6 +VCC and 5V +- GND -> GND + +### Wemos + +- 移除输入二极管 (通过 Lipomodul 充电板短路!) +- 切换 / 簧片 在 + 5V 和 Lipomodul `+ OUT` 之间 +- GND -> GND + +### 锂电池充电模块 + +- 电池 to `B +` and `B-` +- GND -> GND +- `+ OUT` switch to + 5V Wemos D1 mini +- `+ IN` to USB + 5V of the Wemos D1 mini (选项) diff --git a/docs/iSpindelbreadboard_zh.md b/docs/iSpindelbreadboard_zh.md new file mode 100644 index 00000000..72cb8bc4 --- /dev/null +++ b/docs/iSpindelbreadboard_zh.md @@ -0,0 +1,30 @@ +# 结构变体A:穿孔网格&底座 + +> 图片的视角始终是 ***左边*** 显示 Wemos cover/USB 端口的方向. + +1. 从下面固定住引脚,这样可以降低堆积的高度,从而使所有的东西都能放入瓶中 +![](/pics/BB/1.jpg) +2. 插入长短排针并焊接 Wemos +![](/pics/BB/2.jpg) +3. 留下 4 个左边的针脚 +![](/pics/BB/3.jpg) +4. 移除 GY-521 LED,右侧的 4 个引脚不能有任何接触 +![](/pics/BB/4.jpg) +5. 放置线桥、电阻和开关,焊接顶部使其操作更容易 +![](/pics/BB/5.jpg) +![](/pics/BB/6.jpg) +6. 根据下图连线处于低位 +![](/pics/BB/7.jpg) + +7. 焊接 DS18B20,只有中间的引脚被 WeMo 引脚上的电阻夹住,不要将另外两个(Vcc、GND)连接到 Wemos +![](/pics/BB/8.jpg) + +8. 移除 Wemos 二极管 +Install the 4 pins for the lipo charger TP4056. The connections are marked in red. +![](/pics/BB/9.jpg) + +9. 焊接充电模块,放置固定电池 +![](/pics/BB/10.jpg) + +10. 从俯视视角装配底座 +![](/pics/BB/11.jpg) \ No newline at end of file diff --git a/docs/ubidotsscripting_zh.md b/docs/ubidotsscripting_zh.md new file mode 100644 index 00000000..63b64488 --- /dev/null +++ b/docs/ubidotsscripting_zh.md @@ -0,0 +1,39 @@ +# Ubidots 脚本 + +## Curl +Curl 是一个开源命令行工具。例如, HTML 消息可以发送到 Ubidots.- https://curl.haxx.se/ + +## Ubidots API +许多 Ubidots 的功能可以通过 HTML-messages 进行脚本控制。 +例如,当一个变量不再需要时,可以完全删除它的数据。 +- https://ubidots.com/docs/api/#rest-api-reference + +## Curl 脚本 用于数据擦除 +- 下载 [压缩包](https://github.com/universam1/iSpindel/raw/master/tools/delete_all_values_ispindel.zip) +- 随即解压文件 +- 使用文本编辑器编辑里面的 "delete_all_values_ispindel.bat" ,然后替换成 + + `` + +  清空 ID of the variable, 使用你 Ubidots 上的进行代替 + + `` + + 你的密钥。 +- 当然你可以随意多次复制该行,如果你想同时清空几个变量的话。 +- 启动 "delete_all_values_ispindel.bat" 然后 variable (s) 应该会被清空 + +## Curl 脚本显示最后一次测量值 +- 下载 [压缩包](https://github.com/universam1/iSpindel/raw/master/tools/get_five_values_ispindel.zip) +- 随即解压文件 +- 使用你文本编辑器编辑里面的 "get_five_values_ispindel.bat" ,然后替换成 + + `` + + 这个 ID of the variable,你能在 Ubidots 上找到并代替 + + `` + +  你的密钥。 +- 当然你可以随意多次复制该行,如果你想同时清空几个变量的话。 +- 启动 "get_five_values_ispindel.bat" 读取最后五个 variable (s) 数值。 \ No newline at end of file diff --git a/docs/upload-FHEM_zh.md b/docs/upload-FHEM_zh.md new file mode 100644 index 00000000..3520ce53 --- /dev/null +++ b/docs/upload-FHEM_zh.md @@ -0,0 +1,76 @@ +# 数据上传到 FHEM + + + iSpindel 可以将数据传输到本地的 [FHEM](http://fhem.de/fhem.html) 服务器上,在那里可以对数据进行可视化和进一步处理 (例如,控制发酵温度)。 +FHEM 通过 Http Get 请求获取数据: + + http://server:8083/fhem?cmd.Test=set%20iSpindel%2011.5%2022.3%203.3&XHR=1 + +目标地址和端口 (服务器: 8083) 以及设备的名称 (这里是 "iSpindel") 必须在 spindel 的 configurationUI 里设置好。所以要传输的数据都通过 Get 在 URL 中进行传输。顺序是 倾斜角度 - 温度 电量。空格必须用 % 20 替代。 + +在 FHEM (ie fhem.cfg),设备必须创建一个名称 (这里是:"iSpindel")以及一些 Perl logic 运算符,以便将数据记录拆分为各个值。产生的数据结果被分配给设备 iSpindelData 并且从那里进一步处理。 + + + ``` + define iSpindel dummy + define iSpindelData dummy + + define iSpindel_Notify notify iSpindel { \ + my @x= split(/\s/,ReadingsVal("iSpindel","state",0));; \ + my $Neigung=$x[0];; \ + my $Temp=$x[1];; \ + my $Battery=$x[2];; \ + my $Plato=CalcPlato($Neigung, $Temp);; \ + fhem "setreading iSpindelData Neigung $Neigung";;\ + fhem "setreading iSpindelData Temp $Temp";;\ + fhem "setreading iSpindelData Battery $Battery";;\ + fhem "setreading iSpindelData Plato $Plato";;\ + } + + define iSpindel_Values readingsGroup iSpindelData:Temp iSpindelData:Neigung iSpindelData:Battery iSpindelData:Plato + attr iSpindel_Values room Bier + + define FileLog_iSpindel FileLog ./log/iSpindel-%Y.log iSpindelData.* + attr FileLog_iSpindel logtype text + + define weblink_iSpindel SVG FileLog_iSpindel:SVG_FileLog_iSpindel_1:CURRENT + attr weblink_iSpindel room Bier +``` + +函数 CalcPlato (曲线斜率,温度) 可以存储在 99_MyUtils.pm: + +``` + sub CorrectPlato($$) #(P, T) + { + my $mPlato=shift; + my $Temp=shift; + my @k=(56.084, -0.17885, -0.13063); + if ($mPlato>=5) { @k=(69.685, -1.367, -0.10621);}; + if ($mPlato>=10){ @k=(77.782, -1.7288, -0.10822);}; + if ($mPlato>=15){ @k=(87.895, -2.3601, -0.10285);}; + if ($mPlato>=20){ @k=(97.052, -2.7729, -0.10596);}; + + my $cPlato=$k[0]+$k[1]*$Temp+$k[2]*$Temp*$Temp; + return $mPlato-$cPlato/100; + } + + sub CalcPlato($$) #(Angle, T) + { + my $tilt=shift; + my $Temp=shift; + # Get this from Excel Calibration at 20 Degrees + my $mPlato=0.00438551*($tilt)*($tilt) + 0.13647658*($tilt) - 6.968821422; + return CorrectPlato($mPlato,$Temp); + } +``` + + $mPlato 的公式必须取自校准样本表,CorrectPlato () 还用于对 Platower 进行温度校正 (需要在 20 度下进行校准)。温度校正在 5 到 30 摄氏度的范围内有效。 + +最后,只剩下图表中的设备测量数值还需定义,使用 FHEM -GPlot 编辑器很容易做到这一点,看起来像这样: +![Definition iSpindel Diagram](/pics/FHEM-iSpindel-gplot.png) + +定义 iSpindel 图表 + + attr WEB endPlotNow 1 + +