O2OA平台搭建

O2OA的开发环境非常简单,安装服务器后即可通过浏览器进行开发了和使用。具体可参考文档库中的其他文档,有比较详细的介绍,这里就不再赘述了。

Arduino开发发环境搭建

安装Arduino IDE

首先需要到Arduino官网下载并安装Arduino IDE。

下载地址:https://www.arduino.cc/en/software

安装好之后,我们就可以直接用Arduino IDE直接开发了,不过官方的IDE实在不怎么好用,做一些试验性的例子还行,想正真开发一个项目就有点力不从心了。以我个人的经验,使用VS Code的Arduino插件,以及基于Eclipse的sloeber都是不错的选择。

VS Code集成Arduino

下载和安装VS Code就不再细说了,安装完成后,进入“扩展”,搜索“Arduino”,安装“Arduino for Visual Studio Code”,Microsoft那个。

安装完成后,进入首选项设置(Ctrl+,)搜索“Arduino”,在“Arduino: Path”中输入你的Arduino IDE安装目录:

这样我们的VS Code就可以进行Arduino开发了。

安装开发板

我们使用ESP8266开发板进行开发,所以要安装ESP8266的开发板文件。

按F1,搜索“Arduino”,打开“Arduino: Board Manager”

并搜索“ESP8266”,选择最新的版本,点击“install”。

安装完成后就添加了对ESP8266芯片的各类开发板的支持了。

安装库文件

我们的项目中需要用到一些库,比如读取DHT22温度的库,WebSocket连接的库,Json解析库等,都需要事先安装。安装库也非常简单,按F1,搜索“Arduino”,打开“Arduino Library Manager”.

再搜索需要的库名称,如我们的项目中使用了ArduinoJson库来解析json,所以此处搜索“ArduinoJson”

选择最新的版本,点击“install”即可。

安装了库后,一般都会有一些样例,我们可以在左下角的“ARDUINO EXAMPLES”中找到

在我们这样项目中,需要安装的库如下:

  • ArduinoJson (An efficient and elegant JSON library for Arduino) by Benoit Blanchon
  • WebSockets (WebSockets for Arduino) by Markus Sattler
  • SimpleDHT (Arduino Temp & Humidity Sensors for DHT11 etc) by Winlin
  • DallasTemperature  (Arduino Library for Dallas Temperature ICs) by Miles Burton

安装驱动

此时,我们通过mirco usb线将ESP8266开发板连接到电脑,操作系统可能无法识别设备,需要安装USB转串口CH340驱动。大家自行根据不同操作系统搜索驱动程序,安装即可。

到此,我们的需要的开发环境都已经准备好了,下一步就可以进入实际的开发工作了。

开源OA办公平台搭建教程:O2OA+Arduino实现物联网应用(二)的更多相关文章

  1. 开源OA办公平台搭建教程:O2OA+Arduino实现物联网应用(一)

    O2OA平台是一个企业办公类系统的低代码开发平台,更够方便的开发和部署协同办公.流程管理等应用,但它能做的远不止这些,今天这个案例就为大家介绍一下,O2OA可以做的更多. 最近对养鱼产生了浓厚的兴趣, ...

  2. 开源OA办公平台搭建教程:O2OA表单中的事件

    1. 概述 我们设计表单的时候经常会有这样的需求:在表单或者组件加载前/加载后,能够执行一些脚本来改变表单或组件的样式和行为.或者用户在点击组件的时候能够执行脚本.表单的事件就是为这样的场景而设计. ...

  3. 开源OA办公平台搭建教程:基于nginx的快速集群部署——端口分发

    主机信息 主机1:172.16.98.8(linux) 主机2:172.16.98.9(linux) 集群需求 172.16.98.8:WEB服务器,应用服务器,文件存储服务器,中心服务器 172.1 ...

  4. 开源协同办公平台部署教程:O2OA PAAS平台部署

    一.镜像制作1.将安装介质o2server-5.0.3-linux.zip上传至镜像制作服务器上.(上传目录为/paas/xxhpaas/moka/o2oa)2.使用unzip命令解压安装包,参考命令 ...

  5. 开源OA办公平台功能介绍:应用市场-固定资产管理(一)功能设计

    概述 应用市场-固定资产管理,是用来维护管理企业固定资产的一个功能.其整个功能包括对固定资产的台账信息.领用.调拨.借用.维修.盘点.报废等一整个生命周期的动态管理过程.力求客户安装就可以使用. 本应 ...

  6. 开源OA办公系统的“应用市场”,能够为协同办公开拓什么样的“前路”?

    在我们的日常生活中,应用市场这个词,总是与智能手机划上等号,不管使用的是iPhone还是安卓,总会接触到手机上的APP应用市场,我们可以在应用市场中,选择自己所需要的APP应用软件,下载使用后,可以让 ...

  7. 小白都会超详细--ELK日志管理平台搭建教程

    目录 一.介绍 二.安装JDK 三.安装Elasticsearch 四.安装Logstash 五.安装Kibana 六.Kibana简单使用 系统环境:CentOS Linux release 7.4 ...

  8. 开源协同OA办公平台教程:O2OA服务管理中,接口的调用权限

    ​ 本文介绍O2OA服务管理中,接口的权限设定和调用方式. 适用版本:5.4及以上版本 创建接口 具有服务管理设计权限的用户(具有ServiceManager角色或Manager角色)打开" ...

  9. syslog-ng收集日志+ELK平台搭建教程

    syslog-ng部署: 用于接收交换机输出的日志. syslog-ng安装很简单,可以顺便搜一下,文章有很多.我是yum直接安装的. syslog-ng配置: vi /etc/syslog-ng/s ...

随机推荐

  1. Jenkins ( jenkins+harbor)

    Harbor 是咱们国产的docke仓库具体详细了解请参考以下连接 https://blog.csdn.net/csdn_duomaomao/article/details/78036331 http ...

  2. js创建map

    function Map() { var struct = function(key, value) { this.key = key; this.value = value; } var put = ...

  3. mysql错误(Incorrect key file for table)

    Incorrect key file for table 'C:\Windows\TEMP\#sql578_6e2_68d.MYI'; try to repair it mysql错误:mysql需要 ...

  4. 织梦dedecms自由列表的"不使用目录默认主页"错误修正

    站长用织梦做站时常常发现织梦自由列表有个致命的问题: 即修改"不使用目录默认主页"就永远不会自己勾选啦 打开这个文件 makehtml_freelist_action.php 搜索 ...

  5. phpstorm如何设置字体

    最近上手了一款轻量级IDE phpStorm,可是就在调整编辑器字体大小时却遇到问题了, 发现字体大小无法调整,另外还有字体大小往左还有个"√",始终无法去掉,这个勾限制了字体系列 ...

  6. Python单元测试框架pytest常用测试报告类型

    先前博客有介绍pytest测试框架的安装及使用,现在来聊聊pytest可以生成哪些测试报告 1.allure测试报告 关于allure报告参见先前的一篇博文:https://www.cnblogs.c ...

  7. 【poj 2478】Farey Sequence(数论--欧拉函数 找规律求前缀和)

    题意:定义 Fn 序列表示一串 <1 的分数,分数为最简分数,且分母 ≤n .问该序列的个数.(2≤N≤10^6) 解法:先暴力找规律(代码见屏蔽处),发现 Fn 序列的个数就是 Φ(1)~Φ( ...

  8. Unmanaged Exports not creating a .lib file

    别用VS2017!别用VS2017!别用VS2017!去吧.

  9. windows创建p12格式的ios开发证书的流程

    现在做ios开发,原生的开发已经不是第一选择,现在有很多不同的H5开发框架,在性能上都不输原生开发,而UI方便却能做得比原生更炫,比如CSS得灵活度肯定是比原生开发出来得应用更灵活的. 我们在开发IO ...

  10. leetcode5 最长回文字符串 动态规划 Manacher法

    dp 注意没有声明S不空,处理一下 o(n^2) class Solution { public: string longestPalindrome(string s) { if (s.empty() ...