arduino

Volatile variable in class: “expected unqualified-id before 'volatile'”?

。_饼干妹妹 提交于 2021-01-27 06:52:51
问题 I have two static volatile variables defined in my class ADC . The class is written as: (cropped to save space) #pragma once #include "../PeriodicProcess/PeriodicProcess.h" #include <stdint.h> #include <stdlib.h> class ADC { private: static inline unsigned char SPI_transfer(unsigned char data); void read(uint32_t tnow); static const unsigned char adc_cmd[9]; static volatile uint32_t _sum[8]; static volatile uint16_t _count[8]; public: ADC(); void raw(); void init(PeriodicProcess * scheduler);

ArduinoUNO+ESP8266实现MQTT简单发布(不烧录ESP8266)

我与影子孤独终老i 提交于 2021-01-23 12:49:30
分为以下部分: 1:接线并使用AT指令验证连接 2:使用软串口 3:搭建/配置/测试MQTT服务端 4:在Arduino实现MQTT的PUB客户端 5:总结 接线并使用AT指令验证连接 需要各种线+10k电阻*1 ESP8266的3V3/VCC 接到 3.3V ESP8266的EN 串联一个10k电阻 接到3.3V ESP8266的RX 接到 Arduino的RX0 ESP8266的TX 接到 Arduino的TX1 ESP8266的GND 接地 //验证程序 const int tx = 1 ; const int rx = 0 ; void setup ( ) { pinMode ( rx , INPUT_PULLUP ) ; pinMode ( tx , INPUT_PULLUP ) ; } void loop ( ) { } 将Serial Monitor调整为Both NL&CR,115200 baud 输入AT,ESP8266蓝色灯光闪烁,返回OK 输入AT+GMR,返回版本等信息 如下: 至此,可以验证连接成功。 一些其他常用的AT命令: AT + RST 重置wifi模块 AT + CWLAP 扫AP AT + CWJAP = ”SSID” , ”PASSWORD” 连接到AP AT + CWJAP = ”” , ”” 与所有访问点断开连接 AT + CIFSR

ImportError: cannot import name 'Serial' from 'serial' (unknown location)

半世苍凉 提交于 2021-01-22 06:38:37
问题 Whenever i execute the code below it gives me following Error: ImportError: cannot import name 'Serial' from 'serial' (unknown location) Code: from serial import Serial arduinodata = Serial('com4',9600) print("Enter n to ON LED and f to OFF LED") while 1: input_data = raw_input() print ("You Entered"+input_data) if (input_data == 'n'): arduinodata.write(b'1') print("LED ON") if (input_data == 'f'): arduinodata.write(b'0') print("LED OFF") I have installed all the required python modules. Like

2021-01-16

隐身守侯 提交于 2021-01-18 14:15:39
** 基于Wemos的wifi控制的避障小车总结 一.使用的基本元器件 1.L9110电机 2.超声波模块 3.Wemos集成电路板 4.可以传输数据的type-A接口 5.和一个带有DC头和装有开关电池盒(4节5号电池) 6.电烙铁 7.热熔枪 二.开发环境 1.基于ArduiNo开发环境 三.开发小车时候需要的其他的开发软件 1.夜神模拟器 2.串口调试助手 3.USB下载驱动程序 4.eclipse软件 5.TCP连接 ** 四.中间改造是遇到的问题以及注意事项 1.每次烧录程序是先观察串口,波特率以及对应的板子名称是否选择正确。 2.上传成功后显示的画面 3.烧写代码需要调整代码字体,在平台文件选择栏中找到首选项就可以看见,编辑器字体大小就可以调整字体。 4 .如果遇到图片中的错误,是在烧写代码的过程中没有关闭串口引起的。 5.在小车的接线口完全有自己定义(但建议尽量选择D2-D8接口这个范围内)。 6.如果烧写过程中无法烧写成功的话,把其他元器件的接线都拔掉先烧写程序,后面在接线其他模块上。 7.在设置wifi的IP的时候可以把家中的路由器的动态地址改为静态地址。 8.组装元器件的时候一定要注意静电防护,在插线的时候切勿用力过大导致的接触不良等问题。 9.ipconfig和arp-a去检查自己的网络连接及IP地址。 10.程序上传成功后

【Arduino】使用C#实现Arduino与电脑进行串行通讯

时光毁灭记忆、已成空白 提交于 2021-01-13 19:06:10
在给Arduino编程的时候,因为没有调试工具,经常要通过使用串口通讯的方式调用Serial.print和Serial.println输出Arduino运行过程中的相关信息,然后在电脑上用Arduino IDE的Serial Monitor来查看print出来的信息。Serial Monitor不仅可以接受Arduino发送到电脑的数据,还可以向Arduino发送数据,进行双向通讯。但是这种通讯方式太过于简陋,是纯粹的手工方式,只适合调试。如果需要在电脑上通过可视化界面与Arduino进行交互,或者对Arduino发送到电脑上的数据进行处理,就需要在电脑上编程了。说的专业一点就是上位机与下位机的通讯。本文就介绍一下如何使用C#实现Arduino与电脑进行串行通讯。 1、C#串口编程基础 在C#中有一个串口类System.IO.Ports.SerialPort,这个类的实例就对应设备管理器中的串口。 比如 SerialPort port = new SerialPort("COM4") 这句代码就定义了一个串口实例,对应下图中的USB Serial Port(COM4) SerialPort常用方法包括Open, Close, Read, ReadLine, Write, WriteLine。这些方法通过名称就很容易理解它们的用法。 具体类信息可以参考MSDN: http:/

ESP8266与STM32串口数据交互

一笑奈何 提交于 2021-01-13 13:18:18
ESP8266与STM32串口数据交互(通过JSON) ESP8266部分 JSON解析库的安装 串口接收的实现 ArduinoJson库实现数据解析 ArduinoJson库实现数据的打包发送 STM32部分 JSON解析库的安装 串口接收的实现 JSON库实现数据解析 JSON数据的打包发送 程序分享 在这篇文章中我会通过介绍ESP8266和STM32两部分的代码来实现两块MCU串口数据的交互,交互的数据格式采用的是JSON格式,ESP8266的开发环境使用的是arduino,STM32使用的是KEIL5。 ESP8266部分 ESP8266我会从以下三部分介绍:①ArduinoJson解析库的安装②串口接收的实现③ArduinoJson库实现数据解析④ArduinoJson库实现数据的打包发送 JSON解析库的安装 本篇博客中使用的JSON库为 ArduinoJson ,版本是V5版本,目前最新的是V6版本,大家可以选择V6版本安装,只需看下示例,修改下我分享的工程即可。 串口接收的实现 在ESP8266程序中需要将 usartEvent(); 函数放到 loop() 函数中。 /*串口数据接收*/ void usartEvent ( ) { comdata = "" ; while ( Serial . available ( ) ) //时刻读取硬件串口数据 {

「雕爷学编程」Arduino动手做(39)——DS18B20温度传感器

可紊 提交于 2021-01-10 08:48:27
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉。 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真) 实验三十九:DS18B20单总线数字温度传感器模块 DS18B20 是世界第一片支持"一线总线"接口的温度传感器,一线总线独特而且经济的特点,使用户可轻松组建传感器网络,为测量系统构建系统引入全新要概念。 DS18B20 的内部结构主要由64 位ROM、温度灵敏元件、内部存储器和配置寄存器4 部分组成,如上图所示。 ( 1) 64 位ROM。它的内容是64 位序列号,它可以被看作是该DS18B20 的地址序列码,其作用是使每个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。 ( 2) 温度灵敏元件。它完成对温度的测量,测量后的结果存储在2 个8 b 的温度寄存器中。 ( 3) 内部存储器。内部存储器包括一个高速暂存RAM 和一个非易失性的可电擦除的E2 PROM,后者存放高温度和低温度触发器TH、TL 以及配置寄存器。 测温原理 用一个高温度系数的振荡器确定一个门周期

「雕爷学编程」Arduino动手做(24)——水位传感器模块

旧时模样 提交于 2021-01-10 08:38:35
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉。 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真) 实验二十四:水位水滴传感器模块(Water Sensor) Water Sensor液位(水位)传感器是一款简单易用、小巧轻便、性价比较高的水位/水滴识别检测传感器,其是通过具有一系列的暴露的平行导线线迹测量其水滴/水量大小从而判断水位。轻松完成水量到模拟信号的转换,输出的模拟值可以直接被程序中函数所应用,达到水位报警的功效,低功耗,灵敏度是其又一大特点。配合Arduino 控制器可直接插接到传感器扩展板上应用,效果更加明显。 规格参数: 工作电压:DC3-5V 工作电流:小于20mA 传感器类型:模拟 检测面积:40mm x 16mm最深只能测4cm 制作工艺:FR4双面喷锡 工作温度:10℃-30℃ 工作湿度:10%-90%无凝结 模块重量:3.5g 板子尺寸:62mm x 20mm x 8mm 接口说明 把水位传感器连接到扩展板A0号模拟管脚 1、+(VCC):接电源正极(3-5V); 2、-(GND)

Understanding IR codes for Samsung TV

自古美人都是妖i 提交于 2021-01-01 05:09:02
问题 Can somebody help me to understand how could I use RAW IR data in an project using ESP8266-HTTP-IR-Blaster library ? I've created a NodeMCU board with an IR sender and receiver according to https://github.com/mdhiggins/ESP8266-HTTP-IR-Blaster Everything is working fine as long as I'm using the captured codes for ex.: http://NodeMCU-IP/msg?code=E0E040BF:SAMSUNG:32 This is the Code for the Power button (E0E040BF) As I'm using it in a home automation system, it would very beneficial for me if I

Understanding IR codes for Samsung TV

你说的曾经没有我的故事 提交于 2021-01-01 05:07:06
问题 Can somebody help me to understand how could I use RAW IR data in an project using ESP8266-HTTP-IR-Blaster library ? I've created a NodeMCU board with an IR sender and receiver according to https://github.com/mdhiggins/ESP8266-HTTP-IR-Blaster Everything is working fine as long as I'm using the captured codes for ex.: http://NodeMCU-IP/msg?code=E0E040BF:SAMSUNG:32 This is the Code for the Power button (E0E040BF) As I'm using it in a home automation system, it would very beneficial for me if I