Arduino

Arduino

Uno / Nano / 101 ……
开源、便宜、无尽创想
ESP物联网

ESP物联网

掌控板
ESP8266 / ESP32
App Inventor

App Inventor

手机平板应用开发
……
卡片电脑

卡片电脑

树莓派
虚谷号
3D打印

3D打印

三维立体绘图
打印机操作及技巧
激光切割

激光切割

2D矢量绘图
切割机操作及技巧
大开眼界

大开眼界

围观神级作品
学习软硬兼施
源创分享

源创分享

自撰美文
经验分享

Arduino-IDE mpython环境构建

掌控板陈峻宇 发表了文章 • 2 个评论 • 506 次浏览 • 2019-05-26 14:16 • 来自相关话题

众所皆知,掌控板是基于esp-32架构的板子。 蓝牙自带,  但Mind+就是不支持。 有块屏幕,但IDE怎么就用不了! ...查看全部

众所皆知,掌控板是基于esp-32架构的板子。



蓝牙自带, 



但Mind+就是不支持。



有块屏幕,但IDE怎么就用不了!



实在影响使用。



所以—— 这是就需要点技术了



移花接木



首先,我们先同时下载IDE和Mind+



在IDE中打开文件>首选项>附加开发版管理器网址



输入附加网址https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/package_esp32_index.json



这其实只是做个底子,





windows用户可以



在路径



C:\Users\Administrator(你自己的管理员用户名)\AppData\Local\Arduino15\packages\esp32\hardware\DFRobot_FireBeetle-ESP32



找到安装文件夹





要替换什么见



https://github.com/JunYu-Chen/mpython--


本地WiFi热点

掌控板XUNUO678 发表了文章 • 0 个评论 • 384 次浏览 • 2019-04-15 13:10 • 来自相关话题

开启本机WiFi热点,连接掌控板 用管理员权限打开命令窗 1、设置热点的名称和密码   netsh wlan set hostednetwork mode=allow ssid=gymaker key=12345 ...查看全部
开启本机WiFi热点,连接掌控板 用管理员权限打开命令窗

1、设置热点的名称和密码

  netsh wlan set hostednetwork mode=allow ssid=gymaker key=12345678

2、启动WiFi热点

  netsh wlan start hostednetwork

3、停止WiFi热点

  netsh wlan stop hostednetwork

FireBeetleESP-32 and 掌控板 ——蓝牙使用指南

掌控板陈峻宇 发表了文章 • 1 个评论 • 812 次浏览 • 2019-04-14 14:28 • 来自相关话题

前言:我拿到掌控板以后, 一直在是用mpython,Mind+ 一类的软件练习, BUT—— Mind+,mpython ESP的蓝牙功能去哪里了!!!!!  回家以后,我爸才告诉我, ...查看全部
前言:我拿到掌控板以后,
一直在是用mpython,Mind+
一类的软件练习,
BUT——
Mind+,mpython
ESP的蓝牙功能去哪里了!!!!!
 回家以后,我爸才告诉我,
Arduino IDE
ESP-32有蓝牙的示例。
---------------------------------------------------------
本文使用掌控板为例
//This example code is in the Public Domain (or CC0 licensed, at your option.)
//By Evandro Copercini - 2018
//
//This example creates a bridge between Serial and Classical Bluetooth (SPP)
//and also demonstrate that SerialBT have the same functionalities of a normal Serial

#include "BluetoothSerial.h"

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

BluetoothSerial SerialBT;

void setup() {
Serial.begin(115200);
SerialBT.begin("ESP32test"); //Bluetooth device name
Serial.println("The device started, now you can pair it with bluetooth!");
}

void loop() {
if (Serial.available()) {
SerialBT.write(Serial.read());
}
if (SerialBT.available()) {
Serial.write(SerialBT.read());
}
delay(20);
}

 好简单……
可以看到,ESP-32的蓝牙在一定程度上,特别像一个——串口
捕获.PNG

开发板参数。

捕获1.PNG


捕获3.PNG

以上结果必须关掉电脑管家,
好坑

捕获2.PNG

手机端不放了

Nodemcu v3 的使用方法

ESP8266 / ESP32haojunmei 发表了文章 • 1 个评论 • 1952 次浏览 • 2018-06-30 10:18 • 来自相关话题

上个星期,我骗走了老师了一块esp8266,是由nodemcu做整块开发板 我拿到了一个星期,才知道怎么用 先看下面 打开Arduino IDE-> 首选项 -> 附加开发板管理器网址,填入:http://arduino.e ...查看全部
上个星期,我骗走了老师了一块esp8266,是由nodemcu做整块开发板
我拿到了一个星期,才知道怎么用
先看下面
打开Arduino IDE-> 首选项 -> 附加开发板管理器网址,填入:http://arduino.esp8266.com/stable/package_esp8266com_index.json
然后重启ide
 如图

下一步是打开开发板管理器,你有小飞机就开小飞机
等待一会
搜索8266
如图

安装2.3.0版本
安装好选择nodemcu 1.0
比特率不要相信板子上的9600
反正默认就好
 
接下来是上传一个测试程序
选择示例中的esp8266➡blink
上传
程序中注释已经翻译
在下面
 

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     //设置D0口为输出模式
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, LOW);   // 设置D0为LOW
                                    // 但实际上LED是开着的
                                    // 只不过不亮
  delay(1000);                      // 等待一秒
  digitalWrite(LED_BUILTIN, HIGH);  // 把D0口设置为HIGH
  delay(2000);                      // 等待2秒(让我们能看清楚)
}
 
记得在D0口接个LED,不然你怎么做都没用
这篇文章结束
暑假我会把这个坑填完
 

ESP8266和OLED组合版的Arduino&LUA示例代码

ESP8266 / ESP32admin 发表了文章 • 0 个评论 • 382 次浏览 • 2018-06-10 00:34 • 来自相关话题

https://github.com/lspoplove/D-duino   https://github.com/ThingPulse  ...查看全部

ESP8266使用Arduino IDE开发

ESP8266 / ESP32admin 发表了文章 • 2 个评论 • 470 次浏览 • 2018-06-09 11:36 • 来自相关话题

1、在Arduino IDE首选项添加开发板管理器地址 http://arduino.esp8266.com/stable/package_esp8266com_index.json ...查看全部
1、在Arduino IDE首选项添加开发板管理器地址
http://arduino.esp8266.com/stable/package_esp8266com_index.json
2018-06-09_11-42-34.png

2、在开发板管理器搜索8266并安装
2018-06-09_11-41-14.png

ESP8266使用MicroPython开发

ESP8266 / ESP32admin 发表了文章 • 0 个评论 • 304 次浏览 • 2018-06-09 11:27 • 来自相关话题

MicroPython tutorial for ESP8266官网页面 1、下载固件   2、下载固件烧录工具   Mac&Linux:pip install esptool 或者 pip3 install e ...查看全部
MicroPython tutorial for ESP8266官网页面
1、下载固件
 
2、下载固件烧录工具
  Mac&Linux:pip install esptool 或者 pip3 install esptool
  Windows:
 
3、终端访问:
  Mac&Linux:
  Windows:下载putty工具

ESP with PubSubClient.h

ESP8266 / ESP32陈峻宇 发表了文章 • 1 个评论 • 361 次浏览 • 2018-06-08 21:45 • 来自相关话题

关于ESP-32的使用

ESP8266 / ESP32陈峻宇 发表了文章 • 3 个评论 • 678 次浏览 • 2018-06-08 15:20 • 来自相关话题

搭建环境 1.确认你的arduino IDE是不是最新版本。 PS:我之前就是因为没安装最新版本就搭建不了的。 2.找到arduino IDE里的   文件>>首选项中的附加开发板管理器网址。 ...查看全部
搭建环境
1.确认你的arduino IDE是不是最新版本。
PS:我之前就是因为没安装最新版本就搭建不了的。
2.找到arduino IDE里的   文件>>首选项中的附加开发板管理器网址

a.PNG

把下面的东东复制到弹出的框框里
https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/package_esp32_index.json
完成以后,重启arduino IDE,找到 工具>>开发板>>开发板管理器。等待一会以后,搜索ESP-32.
选择最新版本,点“安装”。
然后就完事了。
 
使用WiFi.h
你得把原来的arduino IDE 的WiFi.h剪切到其他地方。
不然
因为编译器优先级问题,你用的是原来的库,因为不兼容,所以编译错误。
[b]函数介绍[/b]

实现建议使用mqtt协议,本文以mqtt协议为例
#include 
#include
必不可少的两个库。PS:第二个是IDE自带的mqtt协议的库。
WiFiClient espClient;
PubSubClient client(espClient);
全局变量的定义(mqtt协议的)
WiFi.begin(ssid, password);
wifi连接。ssid是wifi名,password是密码。
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.print(".");
}
这个过程必不可少。是等待连接成功。等超过两秒,多半是失败了,
这时要重启以及检查路由器。
WiFi.localIP()
这个函数可以获得局域网的IP地址
如果以上代码都以运行完了,那wifi就连上了
 
MQTT协议
总的来说,这是一个比较省电的协议了。十分适合做物联网。
client.setServer(mqtt_server, pass);

这个函数用来连接服务器
mqtt_server服务器的地址,而pass端口
 
接下来有个要手打的函数。是用来保证与服务器的连接以及订阅的——reconnect()。
我直接把代码贴出来
void reconnect()//建立连接
{
while (!client.connected())
{
Serial.print("Attempting MQTT connection...");
if (client.connect("ESP32Client")) {Serial.println("connected");}
else
{
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 500 ms");
delay(1000);
}
}
if(bk)//mqtt订阅
{
bk=false;
client.subscribe(title);
delay(2000);
client.setCallback(callback);
}
}


title是订阅的标题。
PS:有兴趣的同学自行了解一下标题是什么。bk是一个bool值(还是全局变量),标记订阅过没有
只能这么订阅,不要问我为啥,这是玄学callback是识别函数
通常他回传的都是字符串。
所以可以暴力识别(双重for循环)。
追求运行速度自行百度一下KMP,AC自动机,后缀自动机等字符串识别算法。
PS:大约30分钟以后,mqtt订阅会取消
 
上传数据函数
client.publish(mqtt_topic,mqttmsg);

mqtt_topic是数据标题(通常在物联网里是你设备的编码),mqttmsg是你要传的字符串,必须严格按照网站给的格式上传
注意事项:mqttmsg的长度大于120就会挂掉的
 
ESP-32的引脚

900px-ESP32pinout.png


ESP-32由于不兼容任何一块arduino原生板,所以引脚是要特别小心的。
  • 数字口:在原生arduino中,数字口x就写成x,but,在ESP中,数字口x要写成Dx
  • 模拟口:和原生一样——Ax。

 最最最变态的来了,它不可以用AnalogWrite(),你会编译错误,这就很尴尬了。
先来看看下面的代码
//设置通道 0
#define LEDC_CHANNEL_0 0
//设置 13 位定时器
#define LEDC_TIMER_13_BIT 13
//设置定时器频率位 5000Hz
#define LEDC_BASE_FREQ 5000
//设置 LED 灯
#define LED_PIN D9
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
//设置 led 灯的亮度
void ledcAnalogWrite(uint32_t value, uint32_t valueMax = 255) {
//计算占空比
uint32_t duty = (LEDC_BASE_FREQ / valueMax) * min(value, valueMax);
//设置占空比
ledcWrite(LEDC_CHANNEL_0, duty);
}
void setup() {
ledcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);
ledcAttachPin(LED_PIN, LEDC_CHANNEL_0);
}
void loop() {
ledcAnalogWrite(brightness);
brightness += fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(30);
}

仔细看会发现有一个替代品——ledcAnalogWrite
再仔细看会发现开头有一些看不懂的东西
 
先来说明一下PWM信号的本质。
PWM(pulse-width modulation)脉冲宽度调制,MCU(微控制器)通过对开关器件的通断进行控
制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需的波形。
正弦波先不管是什么(那是初三的知识,有兴趣自行百度)。只要知道PWM是脉冲就OK
代码中提到的占空比是指高电平持续时间占整个周期的比例。
valueMax = 255可以理解为一个周期的长度
仔细看看,就会发现value/valueMax =占空比亮度
而valuemax又是可变的。
在一定程度上岂不是——无限精度的亮度。
至少是可以用小数亮度了吧